[AMD] Enable gfx1250 sgl-kernel builds (#32466)

Co-authored-by: Lianmin Zheng <lianminzheng@gmail.com>
This commit is contained in:
Oguz Ulgen
2026-08-06 15:47:17 -07:00
committed by GitHub
co-authored by Lianmin Zheng
parent 18e6c61c21
commit b38caebf09
2 changed files with 14 additions and 4 deletions
@@ -77,12 +77,23 @@ union BufferResource {
};
};
// llvm.amdgcn.raw.buffer.* instructions do not exist on RDNA4 (gfx12).
// QuickReduce remains runtime-disabled on gfx1250; these stubs only allow the
// shared ROCm extension to compile for that target.
#if !defined(__gfx1250__)
__quickreduce_device_inline__ static int32x4_t buffer_load_dwordx4(
int32x4_t srsrc, int32_t voffset, int32_t soffset, int32_t aux) __asm("llvm.amdgcn.raw.buffer.load.v4i32");
__quickreduce_device_inline__ static void
buffer_store_dwordx4(int32x4_t data, int32x4_t srsrc, int32_t voffset, int32_t soffset, int32_t aux) __asm(
"llvm.amdgcn.raw.buffer.store.v4i32");
#else
__quickreduce_device_inline__ static int32x4_t
buffer_load_dwordx4(int32x4_t srsrc, int32_t voffset, int32_t soffset, int32_t aux) {}
__quickreduce_device_inline__ static void
buffer_store_dwordx4(int32x4_t data, int32x4_t srsrc, int32_t voffset, int32_t soffset, int32_t aux) {}
#endif
__quickreduce_device_inline__ static void set_fp16_ovfl(bool const value) {
#if defined(__gfx942__)
+3 -4
View File
@@ -74,9 +74,9 @@ if torch.cuda.is_available():
else:
print(f"Warning: torch.cuda not available. Using default target: {amdgpu_target}")
if amdgpu_target not in ["gfx942", "gfx950"]:
if amdgpu_target not in ["gfx942", "gfx950", "gfx1250"]:
print(
f"Warning: Unsupported GPU architecture detected '{amdgpu_target}'. Expected 'gfx942' or 'gfx950'."
f"Warning: Unsupported GPU architecture detected '{amdgpu_target}'. Expected 'gfx942', 'gfx950', or 'gfx1250'."
)
sys.exit(1)
@@ -87,7 +87,7 @@ fp8_macro = (
# Dynamic shared-memory budget for the TopK kernels.
# - gfx942 (MI300/MI325): LDS is typically 64KB per workgroup -> keep dynamic smem <= ~48KB
# (leaves room for static shared allocations in the kernel).
# - gfx95x (MI350): LDS is larger (e.g. 160KB per CU) -> allow the original 128KB dynamic smem.
# - gfx95x (MI350) and gfx1250: LDS is larger -> allow the original 128KB dynamic smem.
topk_dynamic_smem_bytes = 48 * 1024 if amdgpu_target == "gfx942" else 32 * 1024 * 4
hipcc_flags = [
@@ -126,5 +126,4 @@ setup(
package_dir={"": "python"},
ext_modules=ext_modules,
cmdclass={"build_ext": BuildExtension.with_options(use_ninja=True)},
options={"bdist_wheel": {"py_limited_api": "cp39"}},
)