Pull requests / #2183

#2183 Windows HIP: dynamically resolve hipKernelNameRefByPtr and map auto PCIe mode to DMA

open · @dvasdekis · 0 comentarios · En GitHub

BenchmarksAMD / HIPNVIDIA / CUDAModels & quantsWindowsLinux

Descripción

### Summary

Fixes two Windows HIP runtime issues:

1. **Loader crash STATUS_ENTRYPOINT_NOT_FOUND (0xC0000139)**:
   - src/core/verify.cpp uses hipKernelNameRefByPtr for node inspection under STRATA_VERIFY_NODES.
   - On Windows, amdhip64_7.dll (from AMD TheRock wheels / ROCm 10.2 / 7.2.4 nightly) does not export hipKernelNameRefByPtr, although the symbol exists in the import library amdhip64_7.lib.
   - As a result, strata.exe linked cleanly but terminated immediately upon execution before entering main().
   - Resolved by dynamically resolving hipKernelNameRefByPtr via GetProcAddress under _WIN32, gracefully returning nullptr if unexported.

2. **PCIe offload auto mode on Windows HIP**:
   - On Windows HIP, device kernels cannot dereference host virtual memory directly (hipHostGetDevicePointer does not provide an alias).
   - --pcie-mode auto previously selected kernel mode (mode 2).
   - Added resolve_pcie_mode(), routing --pcie-mode auto to host-to-device DMA streaming (mode 0) on Windows HIP.

### What it leaves alone
- Linux HIP, CUDA, and SYCL paths are unchanged.
- Output logits and token generation remain bit-identical.

### Verification
- Tested on Windows 11 with AMD Radeon RX 9070 XT (gfx1201), ROCm 10.2.
- strata.exe launches normally without DLL entry point errors.
- Verified on Qwen3.8-Flash-Next Coder IQ1_M with 15/15 passed on bench/quality_suite.py.

En el sitio

Enlaces a install, modelos, releases.