Commit Graph
41 Commits
Author SHA1 Message Date
Dean 6a28efaa27 Merge pull request #12266 from MarcZX10/fix/tools-deeply-nested-json-and-web-test
fix(tools): report deeply nested JSON as invalid input and run the reserved-name archive test
2026-10-29 00:30:16 +13:00
Dean f18d333e9e Merge pull request #12084 from legendary-cookie/fix/hw-oracle-utf8-assembly
fix(hw-oracle): read the template and write the assembly source as UTF-8
2026-10-28 22:47:05 +13:00
MarcZX10 8c045ebe37 test(hw-oracle): compare a report nested far deeper than the JSON parser allows
The command has to exit with 2 and say the file is nested too deeply, without a
traceback, instead of exiting with the code that means different outputs.
2026-10-28 06:04:59 +00:00
MarcZX10 70d2036621 fix(hw-oracle): report a deeply nested JSON report as invalid
read_report passes the file to json.loads, and a report nested a few hundred
thousand levels deep raised RecursionError, which main does not catch. The
command ended in a traceback with exit code 1, the code the tool documents as
'different outputs', so a corrupt file looked like a hardware difference. The
error is now a ValueError naming the file, and main reports it with exit code 2
like every other invalid report.
2026-10-28 06:04:42 +00:00
legendary-cookieandClaude Opus 5.5 3a91f8ab8e fix(hw-oracle): read the template and write the assembly source as UTF-8
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 03:09:58 +08:00
StoneDC d2577ad3b0 fix(tools): accept UTF-8 BOMs in oracle reports 2026-10-27 09:59:22 +08:00
Mohamed Malek Aifa c9ffec68f8 fix(hw-oracle): protect HIP inputs from output aliases 2026-10-26 11:51:27 +01:00
MarcusandClaude Opus 5.5 9e3cac0d89 feat(hw-oracle): run on Windows through the AMD driver's HIP runtime and comgr
tools/hw-oracle needed Linux with ROCm, so Windows measurements went
through private runners. oracle_hip.py assembles and links template.s
kernels with the driver's amd_comgr and dispatches them with its HIP
runtime, with the same rows, padding, dispatch splitting and report as
oracle.c. hw_oracle.py selects it with HW_ORACLE_RUNTIME, by default on
Windows, and loads it in-process so the DLLs are loaded once per run.

The driver's comgr 2.9 numbers its assemble and link actions 0x8 and
0x7, not 0xA and 0x9, so each step tries both and keeps the one that
returns exactly one output of the expected kind.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 11:07:06 -04:00
Adrià 30fda0a03a Merge pull request #7688 from jotitadev/fix/hw-oracle-compare-test-in-process
fix(tools): run the oracle comparison test cases in process
2026-10-20 15:19:07 +02:00
orezraeyandClaude Opus 5.5 e5de2a9b7d test(tools): run the hw-oracle oracle.cmd fixture from non-ASCII paths
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 07:40:52 -03:00
Adrià ae1ad35c42 Merge pull request #7442 from MrMha/feat/oracle-difference-limit-20261018
feat: bound hardware-oracle comparison diagnostics
2026-10-19 23:27:23 +02:00
Jota dd4f79332f fix(tools): run the oracle comparison test cases in process
hardware_oracle_compare started compare_results.py in a new Python
process for every case, 77 interpreter starts. That takes 5-16 s
on the macOS relinker runners against the test's 20 s timeout, and the
x86_64 job timed out at 20.14 s in run 39103831688 on a pull request
that does not touch the oracle tools.

Call compare_results.main() in the test process with sys.argv patched
and stdout and stderr captured, and keep the identical and differing
cases as real subprocesses so the exit status of the script entry point
stays covered. The test drops to under 1 s.
2026-10-18 12:00:52 -03:00
MrMha d19e3f125b feat: bound hardware-oracle comparison diagnostics 2026-10-18 10:21:05 +04:00
MrMha 4ed7c7aeb6 feat: validate hardware-oracle inputs without GPU tools 2026-10-18 10:16:19 +04:00
Dean 3d9ba7fce1 Merge pull request #7171 from MrMha/fix/oracle-cli-input-errors-20261017
fix: report oracle CLI input errors before running tools
2026-10-18 14:50:08 +13:00
Dean f599860471 Merge pull request #6770 from MrMha/fix/oracle-path-compiler-20261016
fix: key oracle builds by the compiler selected through PATH
2026-10-18 12:56:57 +13:00
MrMha f83b6c0ee0 fix: report oracle CLI input errors before running tools 2026-10-17 18:41:57 +04:00
Dean 94e67bd135 Merge pull request #6433 from MrMha/fix/oracle-output-freshness-20261015
fix: require fresh exact-size output for every oracle dispatch
2026-10-18 02:15:39 +13:00
Adrià 40255d774b Merge pull request #6081 from MiniRML/fix/oracle-device-selection-cache
fix(tools): cache oracle targets per visible device selection
2026-10-17 00:18:07 +02:00
MrMha 7e383a8943 fix: key oracle builds by the compiler selected through PATH 2026-10-16 15:02:22 +04:00
MrMha 9ab52fefc4 fix: require fresh exact-size output for every oracle dispatch 2026-10-15 18:57:14 +04:00
MiniRML a76fcc6648 test(tools): support Python 3.9 in oracle cache regression 2026-10-14 16:25:47 -07:00
MiniRML 0f0aecea85 fix(tools): cache oracle targets per visible device selection 2026-10-14 14:32:08 -07:00
MiniRML 99f7f6fe06 fix(tools): reject empty hardware oracle input files 2026-10-14 14:22:51 -07:00
lorkydey af66601f41 feat(hw-oracle): compare captured results bit for bit 2026-10-14 15:53:11 +02:00
lorkydey 0c62cd4a66 feat(hw-oracle): export results with run settings as JSON 2026-10-14 04:06:05 +02:00
Adrià 39890031e3 Merge pull request #4591 from MiniRML/fix/oracle-input-rows
fix(oracle): validate input words before tool lookup
2026-10-13 17:25:30 +02:00
MiniRML 17a3d8a1a0 fix(oracle): honor current target override 2026-10-12 09:27:33 -07:00
MiniRML 521cc95b18 fix(oracle): validate input words before tool lookup 2026-10-12 09:26:05 -07:00
MrMha cf1195ad20 fix(hw-oracle): narrow cache PR and normalize runtime paths 2026-10-11 19:31:39 +04:00
MrMha 563b4738a5 fix(hw-oracle): invalidate cached builds when inputs change 2026-10-11 18:24:42 +04:00
Adrià f4b7151097 Merge pull request #2510 from Edd016/fix/hw-oracle-mingw-lld
fix(hw-oracle): select the AMDGPU ELF emulation when linking kernels
2026-10-11 11:33:58 +02:00
MarcZX100 70d4903158 fix(hw-oracle): batch wave64 probes into 512-row dispatches 2026-10-10 18:28:46 +00:00
edandClaude Opus 5.5 a83bfa6813 fix(hw-oracle): select the AMDGPU ELF emulation when linking kernels
LLD built for a MinGW host runs the COFF linker when ld.lld gets no -m option,
so it rejects the AMDGPU object with "unknown file type" and the
hardware_oracle test fails on Windows with WinLibs LLVM in PATH. Passing
-m elf64_amdgpu selects the ELF linker on every host.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 17:09:53 -07:00
aleandClaude Fable 5.1 8d30c27589 feat(hw-oracle): make the group segment size an option
The template allocated a fixed 4 KiB of LDS, so kernels with immediate
offsets past it could not run. --lds (Python lds) sets the group segment
size in bytes, up to 64 KiB, with 4096 as the default.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-09 12:47:59 -03:00
Dean Galvin e0a8297a7b fix(hw-oracle): skip the wave64 assembly test when clang has no AMDGPU target 2026-10-09 23:05:41 +13:00
Dean b7218b3cec Merge pull request #1962 from CouchRiv/fix-hw-oracle-wave64
fix(hw-oracle): assemble wave64 bodies in wave64 mode
2026-10-09 22:43:05 +13:00
AlexandClaude Opus 5.5 dc902b2eae fix(hw-oracle): assemble wave64 bodies in wave64 mode
clang assembled every body as wave32, so a --wave64 body that used vcc
or an SGPR pair as a condition failed with "operands are not valid for
this GPU or mode". Pass -mwavefrontsize64 on wave64 runs.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-08 23:03:22 -04:00
SK Arin 466ebde23c fix(oracle): publish cached executable only after successful build 2026-10-08 17:16:36 +05:30
Muhammad Umair f2b6b5a1a9 fix(oracle)!: require explicit float modes
BREAKING CHANGE: CLI and Python callers must supply all seven float
controls. Add clamp, rounding and FP16 overflow settings so hardware
measurements cannot silently use an unintended mode.

Refs #981
2026-10-07 14:58:28 +05:00
Adrià FranchandClaude f617b40a45 feat(tools): add a hardware oracle for RDNA instruction semantics
Co-Authored-By: Claude <[email protected]>
2026-10-06 13:54:28 +02:00