From 0344a3fbb82e22df7bd607811d9e917e24d56c61 Mon Sep 17 00:00:00 2001 From: dylanyunlon Date: Sat, 1 Aug 2026 02:08:40 +0800 Subject: [PATCH] [muh] add tuning_transform_tile.cuh: BI-V100 tuning header for transform_tile Translated from CCCL cub/device/dispatch/tuning/tuning_transform_tile.cuh. Uses hardware_capability dispatch instead of compute_capability. --- .../muh/tuning/tuning_transform_tile.cuh | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 muh/include/muh/tuning/tuning_transform_tile.cuh diff --git a/muh/include/muh/tuning/tuning_transform_tile.cuh b/muh/include/muh/tuning/tuning_transform_tile.cuh new file mode 100644 index 00000000..8ea61528 --- /dev/null +++ b/muh/include/muh/tuning/tuning_transform_tile.cuh @@ -0,0 +1,33 @@ +// muh/include/muh/tuning/tuning_transform_tile.cuh — BI-V100 +// +// Mirrors: cccl_upstream/cub/cub/device/dispatch/tuning/tuning_transform_tile.cuh +// CCCL: tile-based transform, shares bytes-in-flight target with transform +// +// vllm relevance: fused activation+normalization tiles +// SMEM risk: tile size is compile-time shape, not threads*items + +#pragma once + +#include "muh/hardware.cuh" +#include "muh/tuning/common.cuh" + +namespace muh::tuning::transform_tile { + +struct TransformTilePolicy { + int tile_size; + int min_bytes_in_flight; +}; + +struct policy_selector { + int elem_size; + + constexpr TransformTilePolicy operator()(const hardware_capability& hw) const { + // BI-V100 per-SM BW ≈ A100 → bytes_in_flight = 16KB + int bytes_in_flight = 16 * 1024; + int tile = bytes_in_flight / elem_size; + if (tile < 128) tile = 128; + return {tile, bytes_in_flight}; + } +}; + +} // namespace muh::tuning::transform_tile