Added comments explaining thread block size selection logic based on row count and column size, derived from historical commit context (#18212)
This commit is contained in:
@@ -63,6 +63,9 @@ void ggml_cuda_op_mean(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
|
|||||||
|
|
||||||
const int id = ggml_cuda_get_device();
|
const int id = ggml_cuda_get_device();
|
||||||
const int nsm = ggml_cuda_info().devices[id].nsm;
|
const int nsm = ggml_cuda_info().devices[id].nsm;
|
||||||
|
|
||||||
|
// Heuristic for block size selection to optimize occupancy.
|
||||||
|
// See discussion in: https://github.com/ggml-org/llama.cpp/pull/15132
|
||||||
if ((nrows / nsm) < 2) {
|
if ((nrows / nsm) < 2) {
|
||||||
const dim3 block_dims(512, 1, 1);
|
const dim3 block_dims(512, 1, 1);
|
||||||
reduce_rows_f32</*norm=*/true><<<block_nums, block_dims, 0, stream>>>(src0_d, dst_d, ncols);
|
reduce_rows_f32</*norm=*/true><<<block_nums, block_dims, 0, stream>>>(src0_d, dst_d, ncols);
|
||||||
|
|||||||
Reference in New Issue
Block a user