@@ -290,13 +290,33 @@ function probe_max_bytecode_version()
290290 " ($(join (reverse (SUPPORTED_BYTECODE_VERSIONS), " , " )) ); last log:\n $last_log " )
291291end
292292
293+ """
294+ tile_ir_requirement(cap::VersionNumber) -> Union{Tuple{String,VersionNumber}, Nothing}
295+
296+ The architecture-family name and the minimum bytecode version Tile IR requires
297+ on a device of compute capability `cap`, or `nothing` if Tile IR is not
298+ supported on that capability at all. Pure (no device access) so the gate logic
299+ in [`check_tile_ir_support`] can be unit-tested without a GPU.
300+ """
301+ function tile_ir_requirement (cap:: VersionNumber )
302+ if cap >= v " 10.0" # Blackwell
303+ return (" Blackwell" , v " 13.1" )
304+ elseif cap >= v " 9.0" # Hopper
305+ return (" Hopper" , v " 13.3" )
306+ elseif cap >= v " 8.0" # Ampere / Ada
307+ return (" Ampere/Ada" , v " 13.2" )
308+ else
309+ return nothing
310+ end
311+ end
312+
293313"""
294314 check_tile_ir_support()
295315
296316Validate that the current `tileiras` toolkit supports Tile IR on the active
297317device. Returns the bytecode version cuTile should emit for this device
298318(per [`bytecode_version`]), provided it meets the device's minimum
299- requirement (Blackwell ≥ v13.1, Ampere/Ada ≥ v13.2).
319+ requirement (Blackwell ≥ v13.1, Hopper ≥ v13.3, Ampere/Ada ≥ v13.2).
300320"""
301321function check_tile_ir_support ()
302322 if tileiras_override === nothing && ! CUDA_Compiler_jll. is_available ()
@@ -310,23 +330,16 @@ function check_tile_ir_support()
310330
311331 cap = capability (dev)
312332 sm_str = format_sm_arch (cap)
313- if cap >= v " 10.0" # Blackwell
314- if ver < v " 13.1"
315- @error " Tile IR on Blackwell ($sm_str ) requires bytecode ≥ v13.1, detected v$ver "
316- return nothing
317- end
318- elseif cap >= v " 9.0" # Hopper — not supported
319- @error " Tile IR is not supported on Hopper ($sm_str )"
320- return nothing
321- elseif cap >= v " 8.0" # Ampere / Ada
322- if ver < v " 13.2"
323- @error " Tile IR on Ampere/Ada ($sm_str ) requires bytecode ≥ v13.2, detected v$ver "
324- return nothing
325- end
326- else
333+ req = tile_ir_requirement (cap)
334+ if req === nothing
327335 @error " Tile IR is not supported on compute capability $cap ($sm_str )"
328336 return nothing
329337 end
338+ arch, min_ver = req
339+ if ver < min_ver
340+ @error " Tile IR on $arch ($sm_str ) requires bytecode ≥ v$min_ver , detected v$ver "
341+ return nothing
342+ end
330343
331344 return ver
332345 end
0 commit comments