Skip to content

Commit 9d3a0ba

Browse files
committed
save code
1 parent bbcb059 commit 9d3a0ba

1 file changed

Lines changed: 10 additions & 9 deletions

File tree

csrc/xpu_cutlass_fusion.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static constexpr float quant_map_static[16] = {
6161
};
6262
#endif
6363

64-
using TileShape = Shape<_32, _128, _64>;
64+
using TileShape = Shape<_32, _256, _64>;
6565
using TiledMma =
6666
typename TiledMMAHelper<MMA_Atom<XE_8x16x16_F32BF16BF16F32_TT>, Layout<TileShape>,
6767
Layout<Shape<_1, _8, _1>, Stride<_8, _1, _0>>>::TiledMMA;
@@ -231,7 +231,7 @@ inline float dDequantizeNF4(unsigned char val) {
231231
? BlockIdxX() : BlockIdxY();
232232
const int l_coord = BlockIdxZ();
233233

234-
#if 0
234+
#if 1
235235
//float* quant_map;
236236
//static constexpr std::array<float, 16> quant_map{};
237237
// {
@@ -383,20 +383,21 @@ inline float dDequantizeNF4(unsigned char val) {
383383

384384
//if(cute::thread0()) printf("params.group_size = %d, k_reload_factor = %d, k_tile_count = %d, N = %d, K = %d, src_compress_size = %d, src_vec_size = %d, dst_compress_size = %d, dst_vec_size = %d\n",params.group_size, k_reload_factor, k_tile_count, N, K, src_compress_size, src_vec_size, dst_compress_size, dst_vec_size);
385385

386-
src_compress_type src[src_vec_size];
387-
ElementMMA dst[K];
386+
src_compress_type src[N*src_loop_num*src_vec_size];
387+
ElementMMA dst[N*K];
388388

389-
reinterpret_cast<sycl::vec<src_compress_type, src_vec_size>*>(src)[0] = reinterpret_cast<sycl::vec<src_compress_type, src_vec_size>*>(cute::raw_pointer_cast(dequant_frag.data()))[0];
390-
391389
#pragma unroll
392390
for (int n = 0; n < N; n++) {
393391
float scale_value = fragment_scale(n);
394392
#pragma unroll
395393
for (int l = 0; l < src_loop_num; l++) {
394+
//src_compress_type src[src_vec_size];
395+
//ElementMMA dst[K/dst_loop_num];
396+
reinterpret_cast<sycl::vec<src_compress_type, src_vec_size>*>(src)[n*src_loop_num + l] = reinterpret_cast<sycl::vec<src_compress_type, src_vec_size>*>(cute::raw_pointer_cast(dequant_frag.data()))[n*src_loop_num + l];
396397
#pragma unroll
397398
for (int v = 0; v < src_vec_size; v++) {
398-
src_compress_type src_value = src[n * src_loop_num * src_vec_size + l * src_vec_size + v];
399-
int dst_idx = n * src_loop_num * src_vec_size * src_compress_size + l * src_vec_size * src_compress_size + v * src_compress_size;
399+
src_compress_type src_value = src[(n*src_loop_num + l)*src_vec_size + v];
400+
int dst_idx = ((n*src_loop_num + l)* src_vec_size + v) * src_compress_size;
400401
#pragma unroll
401402
for (int c = 0; c < src_compress_size; c++) {
402403
uint8_t bit_value = (src_value >> (4 * (((c + 1) & 1) + (c >> 1) * 2))) & 0xF;
@@ -407,7 +408,7 @@ inline float dDequantizeNF4(unsigned char val) {
407408

408409
#pragma unroll
409410
for (int l = 0; l < dst_loop_num; l++) {
410-
reinterpret_cast<sycl::vec<dst_compress_type, dst_vec_size>*>(cute::raw_pointer_cast(mma_B.data()))[0] = reinterpret_cast<sycl::vec<dst_compress_type, dst_vec_size>*>(dst)[l];
411+
reinterpret_cast<sycl::vec<dst_compress_type, dst_vec_size>*>(cute::raw_pointer_cast(mma_B.data()))[n*dst_loop_num + l] = reinterpret_cast<sycl::vec<dst_compress_type, dst_vec_size>*>(dst)[n*dst_loop_num + l];
411412
}
412413
}
413414
};

0 commit comments

Comments
 (0)