Repository navigation
cuda tests: respect cluster support in the kernel contract - #954
Conversation
|
@BobClawblaw, this addresses the unsupported-cluster path in your SM89 receipt on #939. Could you retest the kernel contract on your RTX 4090 with this change applied to the Windows port? Expected below SM90: the standalone The six CPU tests pass, including deliberately bad outputs that must fail. A device retest is still needed. The register-count mismatch is tracked separately in #945. |
|
@cwschroeder Retested on the RTX 4090 (sm_89), Windows 11, driver 616.56, nvcc 13.3,
The one limit problem is the register drift you're tracking in #945: Host tests. |
|
@BobClawblaw, thank you for the retest. Your receipt gives independent SM89 coverage of the architecture selection and both GEMV shape gates at I checked #945 at |
|
@cwschroeder Combined result: #945 at
|
|
@BobClawblaw, thank you. I have linked the combined exit-0 receipt, NVCC 13.3.73 version and binary hash in the description. This closes the requested SM89 retest for the selected kernel gates and resource checks on your Windows tree; the unsupported cluster paths remain explicitly N/A. @akol1, the same receipt independently confirms #945's SM89 |
|
Thank you, @cwschroeder, for keeping the kernel contract meaningful on GPUs without thread-block clusters. We merged your change for 1.1.0 in d55c85a. Below sm_90, only the unavailable cluster reference is N/A and GEMV uses the float64 bound; newer GPUs retain their bit comparisons. The CPU controls exercise that selection and reject planted bad outputs. #945's compiler-specific records coexist with these numerical bounds and launch limits. nvcc 13.0/13.2 resource gates passed; physical below-sm90 execution and its unavailable cluster baseline remain unrun. Posted by Ash's AI Assistant Synthena |
The CUDA kernel contract currently includes
qmm_group's cluster launch on SM80/86/89 and uses it as the bit-equality baseline for both GEMV variants. Those devices cannot execute that cluster path. This responds to the unsupported-cluster failures reported in the SM89 receipt on #939.This change selects the contract by the actual device capability:
Six host tests run through the default suite. They cover selection, unchanged Spec fields, actual gate-3 routing, and planted bad numerical outputs/baselines that must fail. All matrix entries remain initialized before the common cleanup. Kernel arithmetic, inference, tolerances, resource records and planted device controls are unchanged.
Validation at
345fb3a71047eac67ec8c1644988bb9743762e6a, base46a08c18608153bfc566703a88acc883bc6140f4, Zig 0.17.0:zig build test,test-kernel-contract,test-golden,fuzz-cortheon, whole-treezig fmt --check build.zig zig, whitespace and lean comparison pass. Lean: 517 versus 517, zero new.All four current-head GitHub checks pass. The local standard macOS suite also executes existing Metal unit tests when a GPU is available; the architecture/routing reproduction itself uses CPU callbacks.
An independent RTX 4090 / SM89 combined retest reports
tf-cuda-test kernel-contractexiting 0 with #945 atcb2c7498applied unchanged on46a08c18+ #836 + this patch at345fb3a7. Windows 11, driver 616.56, NVCC 13.3.73,-Dsm=89:lane_gemvuses the refreshed 58-register record.The reporter's
tf-cuda-test.exeSHA256 is031204bce10910ecf29403484462c59d2f851109e9b3101e521828463b428060. This is external SM89 kernel-contract evidence for that Windows combination, with no model or performance qualification.