Commit 8116d2b3 authored by Po-Yen, Chen's avatar Po-Yen, Chen
Browse files

Modularize ckProfiler operations

parent df021e9d
# ck_profiler # ckProfiler
set(PROFILER_SOURCE set(PROFILER_SOURCES
main.cpp profiler.cpp
profile_gemm.cpp profile_gemm.cpp
profile_gemm_splitk.cpp profile_gemm_splitk.cpp
profile_gemm_bilinear.cpp profile_gemm_bilinear.cpp
...@@ -24,34 +24,37 @@ set(PROFILER_SOURCE ...@@ -24,34 +24,37 @@ set(PROFILER_SOURCE
profile_softmax.cpp profile_softmax.cpp
) )
add_executable(ckProfiler ${PROFILER_SOURCE}) set(PROFILER_EXECUTABLE ckProfiler)
target_link_libraries(ckProfiler PRIVATE utility) add_executable(${PROFILER_EXECUTABLE} ${PROFILER_SOURCES})
target_link_libraries(ckProfiler PRIVATE device_gemm_instance) target_compile_options(${PROFILER_EXECUTABLE} PRIVATE -Wno-global-constructors)
target_link_libraries(ckProfiler PRIVATE device_gemm_splitk_instance)
target_link_libraries(ckProfiler PRIVATE device_gemm_bilinear_instance)
target_link_libraries(ckProfiler PRIVATE device_gemm_add_add_fastgelu_instance)
target_link_libraries(ckProfiler PRIVATE device_gemm_reduce_instance)
target_link_libraries(ckProfiler PRIVATE device_gemm_bias_add_reduce_instance)
target_link_libraries(ckProfiler PRIVATE device_batched_gemm_instance)
target_link_libraries(ckProfiler PRIVATE device_batched_gemm_gemm_instance)
target_link_libraries(ckProfiler PRIVATE device_batched_gemm_add_relu_gemm_add_instance)
target_link_libraries(ckProfiler PRIVATE device_batched_gemm_reduce_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_gemm_instance)
target_link_libraries(ckProfiler PRIVATE device_conv2d_fwd_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_conv1d_fwd_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_conv2d_fwd_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_conv3d_fwd_instance)
target_link_libraries(ckProfiler PRIVATE device_conv1d_bwd_data_instance)
target_link_libraries(ckProfiler PRIVATE device_conv2d_bwd_data_instance)
target_link_libraries(ckProfiler PRIVATE device_conv3d_bwd_data_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_conv1d_bwd_weight_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_conv2d_bwd_weight_instance)
target_link_libraries(ckProfiler PRIVATE device_grouped_conv3d_bwd_weight_instance)
target_link_libraries(ckProfiler PRIVATE device_conv2d_fwd_bias_relu_instance)
target_link_libraries(ckProfiler PRIVATE device_conv2d_fwd_bias_relu_add_instance)
target_link_libraries(ckProfiler PRIVATE device_normalization_instance)
target_link_libraries(ckProfiler PRIVATE device_softmax_instance)
target_link_libraries(ckProfiler PRIVATE device_reduce_instance)
rocm_install(TARGETS ckProfiler COMPONENT profiler) target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE utility)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_gemm_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_gemm_splitk_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_gemm_bilinear_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_gemm_add_add_fastgelu_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_gemm_reduce_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_gemm_bias_add_reduce_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_batched_gemm_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_batched_gemm_gemm_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_batched_gemm_add_relu_gemm_add_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_batched_gemm_reduce_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_gemm_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_conv2d_fwd_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_conv1d_fwd_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_conv2d_fwd_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_conv3d_fwd_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_conv1d_bwd_data_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_conv2d_bwd_data_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_conv3d_bwd_data_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_conv1d_bwd_weight_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_conv2d_bwd_weight_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_grouped_conv3d_bwd_weight_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_conv2d_fwd_bias_relu_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_conv2d_fwd_bias_relu_add_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_normalization_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_softmax_instance)
target_link_libraries(${PROFILER_EXECUTABLE} PRIVATE device_reduce_instance)
rocm_install(TARGETS ${PROFILER_EXECUTABLE} COMPONENT profiler)
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_batched_gemm_impl.hpp" #include "profiler/profile_batched_gemm_impl.hpp"
#include "profiler_operation_registry.hpp"
enum struct GemmMatrixLayout enum struct GemmMatrixLayout
{ {
...@@ -195,3 +196,5 @@ int profile_batched_gemm(int argc, char* argv[]) ...@@ -195,3 +196,5 @@ int profile_batched_gemm(int argc, char* argv[])
return 1; return 1;
} }
} }
REGISTER_PROFILER_OPERATION("batched_gemm", profile_batched_gemm)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_batched_gemm_add_relu_gemm_add_impl.hpp" #include "profiler/profile_batched_gemm_add_relu_gemm_add_impl.hpp"
#include "profiler_operation_registry.hpp"
using F16 = ck::half_t; using F16 = ck::half_t;
using F32 = float; using F32 = float;
...@@ -207,3 +208,5 @@ int profile_batched_gemm_add_relu_gemm_add(int argc, char* argv[]) ...@@ -207,3 +208,5 @@ int profile_batched_gemm_add_relu_gemm_add(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("batched_gemm_add_relu_gemm_add", profile_batched_gemm_add_relu_gemm_add)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_batched_gemm_gemm_impl.hpp" #include "profiler/profile_batched_gemm_gemm_impl.hpp"
#include "profiler_operation_registry.hpp"
using F16 = ck::half_t; using F16 = ck::half_t;
using F32 = float; using F32 = float;
...@@ -179,3 +180,5 @@ int profile_batched_gemm_gemm(int argc, char* argv[]) ...@@ -179,3 +180,5 @@ int profile_batched_gemm_gemm(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("batched_gemm_gemm", profile_batched_gemm_gemm)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_batched_gemm_reduce_impl.hpp" #include "profiler/profile_batched_gemm_reduce_impl.hpp"
#include "profiler_operation_registry.hpp"
int profile_batched_gemm_reduce(int argc, char* argv[]) int profile_batched_gemm_reduce(int argc, char* argv[])
{ {
...@@ -151,3 +152,5 @@ int profile_batched_gemm_reduce(int argc, char* argv[]) ...@@ -151,3 +152,5 @@ int profile_batched_gemm_reduce(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("batched_gemm_reduce", profile_batched_gemm_reduce)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_conv_bwd_data_impl.hpp" #include "profiler/profile_conv_bwd_data_impl.hpp"
#include "profiler_operation_registry.hpp"
namespace { namespace {
...@@ -182,3 +183,5 @@ int profile_conv_bwd_data(int argc, char* argv[]) ...@@ -182,3 +183,5 @@ int profile_conv_bwd_data(int argc, char* argv[])
return 1; return 1;
} }
REGISTER_PROFILER_OPERATION("conv_bwd_data", profile_conv_bwd_data)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_conv_fwd_impl.hpp" #include "profiler/profile_conv_fwd_impl.hpp"
#include "profiler_operation_registry.hpp"
namespace { namespace {
...@@ -184,3 +185,5 @@ int profile_conv_fwd(int argc, char* argv[]) ...@@ -184,3 +185,5 @@ int profile_conv_fwd(int argc, char* argv[])
return 1; return 1;
} }
REGISTER_PROFILER_OPERATION("conv_fwd", profile_conv_fwd)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_conv_fwd_bias_relu_impl.hpp" #include "profiler/profile_conv_fwd_bias_relu_impl.hpp"
#include "profiler_operation_registry.hpp"
enum struct ConvDataType enum struct ConvDataType
{ {
...@@ -114,3 +115,5 @@ int profile_conv_fwd_bias_relu(int argc, char* argv[]) ...@@ -114,3 +115,5 @@ int profile_conv_fwd_bias_relu(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("conv_fwd_bias_relu", profile_conv_fwd_bias_relu)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_conv_fwd_bias_relu_add_impl.hpp" #include "profiler/profile_conv_fwd_bias_relu_add_impl.hpp"
#include "profiler_operation_registry.hpp"
enum struct ConvDataType enum struct ConvDataType
{ {
...@@ -115,3 +116,5 @@ int profile_conv_fwd_bias_relu_add(int argc, char* argv[]) ...@@ -115,3 +116,5 @@ int profile_conv_fwd_bias_relu_add(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("conv_fwd_bias_relu_add", profile_conv_fwd_bias_relu_add)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_gemm_impl.hpp" #include "profiler/profile_gemm_impl.hpp"
#include "profiler_operation_registry.hpp"
enum struct GemmMatrixLayout enum struct GemmMatrixLayout
{ {
...@@ -184,3 +185,5 @@ int profile_gemm(int argc, char* argv[]) ...@@ -184,3 +185,5 @@ int profile_gemm(int argc, char* argv[])
return 1; return 1;
} }
} }
REGISTER_PROFILER_OPERATION("gemm", profile_gemm)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_gemm_add_add_fastgelu_impl.hpp" #include "profiler/profile_gemm_add_add_fastgelu_impl.hpp"
#include "profiler_operation_registry.hpp"
int profile_gemm_add_add_fastgelu(int argc, char* argv[]) int profile_gemm_add_add_fastgelu(int argc, char* argv[])
{ {
...@@ -150,3 +151,5 @@ int profile_gemm_add_add_fastgelu(int argc, char* argv[]) ...@@ -150,3 +151,5 @@ int profile_gemm_add_add_fastgelu(int argc, char* argv[])
return 1; return 1;
} }
} }
REGISTER_PROFILER_OPERATION("gemm_add_add_fastgelu", profile_gemm_add_add_fastgelu)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_gemm_bias_add_reduce_impl.hpp" #include "profiler/profile_gemm_bias_add_reduce_impl.hpp"
#include "profiler_operation_registry.hpp"
int profile_gemm_bias_add_reduce(int argc, char* argv[]) int profile_gemm_bias_add_reduce(int argc, char* argv[])
{ {
...@@ -159,3 +160,5 @@ int profile_gemm_bias_add_reduce(int argc, char* argv[]) ...@@ -159,3 +160,5 @@ int profile_gemm_bias_add_reduce(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("gemm_bias_add_reduce", profile_gemm_bias_add_reduce)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_gemm_bilinear_impl.hpp" #include "profiler/profile_gemm_bilinear_impl.hpp"
#include "profiler_operation_registry.hpp"
int profile_gemm_bilinear(int argc, char* argv[]) int profile_gemm_bilinear(int argc, char* argv[])
{ {
...@@ -144,3 +145,5 @@ int profile_gemm_bilinear(int argc, char* argv[]) ...@@ -144,3 +145,5 @@ int profile_gemm_bilinear(int argc, char* argv[])
return 1; return 1;
} }
} }
REGISTER_PROFILER_OPERATION("gemm_bilinear", profile_gemm_bilinear)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_gemm_reduce_impl.hpp" #include "profiler/profile_gemm_reduce_impl.hpp"
#include "profiler_operation_registry.hpp"
int profile_gemm_reduce(int argc, char* argv[]) int profile_gemm_reduce(int argc, char* argv[])
{ {
...@@ -146,3 +147,5 @@ int profile_gemm_reduce(int argc, char* argv[]) ...@@ -146,3 +147,5 @@ int profile_gemm_reduce(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("gemm_reduce", profile_gemm_reduce)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_gemm_splitk_impl.hpp" #include "profiler/profile_gemm_splitk_impl.hpp"
#include "profiler_operation_registry.hpp"
enum struct GemmMatrixLayout enum struct GemmMatrixLayout
{ {
...@@ -146,3 +147,5 @@ int profile_gemm_splitk(int argc, char* argv[]) ...@@ -146,3 +147,5 @@ int profile_gemm_splitk(int argc, char* argv[])
return 1; return 1;
} }
} }
REGISTER_PROFILER_OPERATION("gemm_splitk", profile_gemm_splitk)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <numeric> #include <numeric>
#include "profiler/profile_grouped_conv_bwd_weight_impl.hpp" #include "profiler/profile_grouped_conv_bwd_weight_impl.hpp"
#include "profiler_operation_registry.hpp"
namespace { namespace {
...@@ -174,3 +175,5 @@ int profile_grouped_conv_bwd_weight(int argc, char* argv[]) ...@@ -174,3 +175,5 @@ int profile_grouped_conv_bwd_weight(int argc, char* argv[])
return 1; return 1;
} }
REGISTER_PROFILER_OPERATION("grouped_conv_bwd_weight", profile_grouped_conv_bwd_weight)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_grouped_conv_fwd_impl.hpp" #include "profiler/profile_grouped_conv_fwd_impl.hpp"
#include "profiler_operation_registry.hpp"
namespace { namespace {
...@@ -252,3 +253,5 @@ int profile_grouped_conv_fwd(int argc, char* argv[]) ...@@ -252,3 +253,5 @@ int profile_grouped_conv_fwd(int argc, char* argv[])
return 1; return 1;
} }
REGISTER_PROFILER_OPERATION("grouped_conv_fwd", profile_grouped_conv_fwd)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <cstdlib> #include <cstdlib>
#include "profiler/profile_grouped_gemm_impl.hpp" #include "profiler/profile_grouped_gemm_impl.hpp"
#include "profiler_operation_registry.hpp"
enum struct GemmMatrixLayout enum struct GemmMatrixLayout
{ {
...@@ -161,3 +162,5 @@ int profile_grouped_gemm(int argc, char* argv[]) ...@@ -161,3 +162,5 @@ int profile_grouped_gemm(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("grouped_gemm", profile_grouped_gemm)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "profiler/data_type_enum.hpp" #include "profiler/data_type_enum.hpp"
#include "profiler/profile_groupnorm_impl.hpp" #include "profiler/profile_groupnorm_impl.hpp"
#include "profiler_operation_registry.hpp"
using ck::index_t; using ck::index_t;
...@@ -104,3 +105,5 @@ int profile_groupnorm(int argc, char* argv[]) ...@@ -104,3 +105,5 @@ int profile_groupnorm(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("groupnorm", profile_groupnorm)
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "profiler/data_type_enum.hpp" #include "profiler/data_type_enum.hpp"
#include "profiler/profile_layernorm_impl.hpp" #include "profiler/profile_layernorm_impl.hpp"
#include "profiler_operation_registry.hpp"
using ck::index_t; using ck::index_t;
...@@ -96,3 +97,5 @@ int profile_layernorm(int argc, char* argv[]) ...@@ -96,3 +97,5 @@ int profile_layernorm(int argc, char* argv[])
return 0; return 0;
} }
REGISTER_PROFILER_OPERATION("layernorm", profile_layernorm)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment