mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-18 03:49:41 +00:00
Grouped Gemm with looping over the tiles. (#788)
* Introduce LocalBlockToCTileMap.
* Change the signature of CalculateBottomIndex() function which now does
not accept any argument. The B2C map which is already passed as an
argument to the kernel Run function is calculating block's local id
already outside at kernel entry point __global__ function.
The LocalB2C map stores as members local block ID.
* Use LocalBlockToCTile map in device ops.
* First draft of tile loop work distribution.
* Fix typo.
* Simplify kernel arguments.
Calculate descriptors & B2C maps on the device.
* Use looping kernel.
* Fix B2C constructor.
* Fix Navi21 errors.
* Calculate tile start/end in device kernel.
* Change Run API to accept user provided workspace buffer.
* Add new line at EOF.
* Move Gemm KernelArguments to device op interface.
* Remove unused code.
* Update API.
* Launch grid size which is min of occupancy vs tile count
* Get back to use constant memory for gemm descriptors.
* Remove unused code.
* Add default virtual method implementation.
* Update comments to conform with doxygen style.
* Fix doc style and unused parameters.
* Add thread cluster lengths to kernel name.
* Remove old splitk impl and replace it with tile looping one.
* Modify instances.
* set KPerBlock to 64
* maximize wherever possible vector load size.
* Fix instances cluster lengths.
* Change comment style.
* Use 128b store where possible in instances.
* Update test cases, since KPerBlock has doubled.
* Update output stream operator for Sequence.
* Add pipeline version to GroupedGEMM device op type string.
* Fix pipeline version type logging.
* Fix input tensors type after merge.
* Fix compiler error.
* Fix output stream operator for Pipeline version.
* Store using 128b.
* Set of instances with kpb 32/64
* Limit number of instances
* Remove commented out instances.
* Fix function name.
* Limit the number of instances.
Add pipline version to the regular instances
* Change thr cluster layout for reading B tensor.
* disabled failed instances
---------
Co-authored-by: Adam Osewski <aosewski@amd.com>
Co-authored-by: zjing14 <zhangjing14@gmail.com>
Co-authored-by: Jing Zhang <jizha@amd.com>
[ROCm/composable_kernel commit: a4f72a314a]
This commit is contained in:
@@ -14,27 +14,27 @@ namespace ck {
|
||||
namespace tensor_operation {
|
||||
namespace host {
|
||||
|
||||
//
|
||||
// @brief Reference implementation for forward convolution.
|
||||
//
|
||||
// @paragraph
|
||||
// Tensor descriptor in GNCHW/GKCXY/GNKHW dimensional order
|
||||
// Supports both GNCHW/NGCHW as well as GNHWC/NHWGC physical layout
|
||||
// as long as dimensions in tensor descriptor is in GNCHW order
|
||||
//
|
||||
// @tparam InDataType Input tensor data type.
|
||||
// @tparam WeiDataType Weights tensor data type.
|
||||
// @tparam OutDataType Output tensor data type.
|
||||
// @tparam InElementwiseOperation Functor for input tensor elementwise
|
||||
// operation.
|
||||
// @tparam WeiElementwiseOperation Functor for weights tensor elementwise
|
||||
// operation.
|
||||
// @tparam NDimSpatial Number of spatial dimensions.
|
||||
//
|
||||
// input descriptor in [G, N, C, Do, Ho, Wo] order
|
||||
// weight descriptor in [G, K, C, Z, Y, X] order
|
||||
// output descriptor in [G, N, K, Di, Hi, Wi] order
|
||||
// phyiscal layout is irrelavent
|
||||
///
|
||||
/// @brief Reference implementation for forward convolution.
|
||||
///
|
||||
/// @paragraph
|
||||
/// Tensor descriptor in GNCHW/GKCXY/GNKHW dimensional order
|
||||
/// Supports both GNCHW/NGCHW as well as GNHWC/NHWGC physical layout
|
||||
/// as long as dimensions in tensor descriptor is in GNCHW order
|
||||
///
|
||||
/// @tparam InDataType Input tensor data type.
|
||||
/// @tparam WeiDataType Weights tensor data type.
|
||||
/// @tparam OutDataType Output tensor data type.
|
||||
/// @tparam InElementwiseOperation Functor for input tensor elementwise
|
||||
/// operation.
|
||||
/// @tparam WeiElementwiseOperation Functor for weights tensor elementwise
|
||||
/// operation.
|
||||
/// @tparam NDimSpatial Number of spatial dimensions.
|
||||
///
|
||||
/// input descriptor in [G, N, C, Do, Ho, Wo] order
|
||||
/// weight descriptor in [G, K, C, Z, Y, X] order
|
||||
/// output descriptor in [G, N, K, Di, Hi, Wi] order
|
||||
/// phyiscal layout is irrelavent
|
||||
template <ck::index_t NDimSpatial,
|
||||
typename InDataType,
|
||||
typename WeiDataType,
|
||||
|
||||
Reference in New Issue
Block a user