mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-19 20:40:07 +00:00
* Implement layernorm kernel and deviceOp
* verify gpu kernel with host code
* 1. Separate gamma aand beta from affine
2. Check if argument is valid
* clean
* Sync the naming
* Support sweep once mode if we can put k dimension data inside one block
* [What] Get length from upper length.
[Why] if we get length directly, we may get length after padding.
* We only use one block in K dimension.
Hence, we can simplify the indexing of global R/W.
* Use 1d descriptor for gamma and beta
* Add accElementwiseOp
* Extract layernorm host code
* Support different YVectorDim in GridwiseLayernorm
* Rename XSrcVectorDim to XYSrcVectorDim. Because we use same parameter in deviceOp
* Gamma and beta can share the VGPR.
* Add test for fp32 and fp16
* Fix bug of concurrency and add test case which may fail orignally
* Propagate NaN for layernorm
Co-authored-by: Chao Liu <chao.liu2@amd.com>
[ROCm/composable_kernel commit: 7f21662089]
49 lines
1.8 KiB
CMake
49 lines
1.8 KiB
CMake
include_directories(BEFORE
|
|
${PROJECT_SOURCE_DIR}/include
|
|
${PROJECT_SOURCE_DIR}/library/include
|
|
)
|
|
|
|
add_custom_target(examples)
|
|
|
|
function(add_example_executable EXAMPLE_NAME FILE_NAME)
|
|
message("adding example ${EXAMPLE_NAME}")
|
|
add_executable(${EXAMPLE_NAME} ${FILE_NAME})
|
|
target_link_libraries(${EXAMPLE_NAME} PRIVATE host_tensor)
|
|
add_test(NAME ${EXAMPLE_NAME} COMMAND $<TARGET_FILE:${EXAMPLE_NAME}> ${ARGN})
|
|
add_dependencies(examples ${EXAMPLE_NAME})
|
|
add_dependencies(check ${EXAMPLE_NAME})
|
|
endfunction(add_example_executable EXAMPLE_NAME)
|
|
|
|
function(add_example_executable_no_testing EXAMPLE_NAME FILE_NAME)
|
|
message("adding example ${EXAMPLE_NAME}")
|
|
add_executable(${EXAMPLE_NAME} ${FILE_NAME})
|
|
target_link_libraries(${EXAMPLE_NAME} PRIVATE host_tensor)
|
|
add_dependencies(examples ${EXAMPLE_NAME})
|
|
endfunction(add_example_executable_no_testing EXAMPLE_NAME)
|
|
|
|
add_subdirectory(01_gemm)
|
|
add_subdirectory(02_gemm_bilinear)
|
|
add_subdirectory(03_gemm_bias_relu)
|
|
add_subdirectory(04_gemm_add_add_fastgelu)
|
|
add_subdirectory(06_conv2d_fwd_bias_relu)
|
|
add_subdirectory(07_conv2d_fwd_bias_relu_add)
|
|
add_subdirectory(09_convnd_fwd)
|
|
add_subdirectory(10_conv2d_bwd_data)
|
|
add_subdirectory(11_conv2d_bwd_weight)
|
|
add_subdirectory(12_reduce)
|
|
add_subdirectory(13_pool2d_fwd)
|
|
add_subdirectory(14_gemm_xdl_requant_relu_requant)
|
|
add_subdirectory(15_grouped_gemm)
|
|
add_subdirectory(16_gemm_reduce)
|
|
add_subdirectory(17_convnd_bwd_data_xdl)
|
|
add_subdirectory(18_batched_gemm_reduce)
|
|
add_subdirectory(19_binary_elementwise)
|
|
add_subdirectory(20_convnd_bwd_weight_xdl)
|
|
add_subdirectory(21_gemm_layernorm)
|
|
add_subdirectory(22_cgemm)
|
|
add_subdirectory(23_softmax)
|
|
add_subdirectory(24_batched_gemm_c_permute)
|
|
add_subdirectory(25_gemm_bias_c_permute)
|
|
add_subdirectory(26_contraction)
|
|
add_subdirectory(27_layernorm)
|