[code-reflection] RFR: Support for Generalized Buffer Type in Hat SPIR-V Backend
    hanklo6 
    duke at openjdk.org
       
    Mon Dec 16 22:24:27 UTC 2024
    
    
  
This PR introduces support for generalized buffer by creating SPIRV type structure and arrays in the generated module. Most of the implementation references the OpenCL Hat builder. The SPIR-V module assumes the same memory layout as the java buffer object, provided there is not additional customized padding between fields. Also, generated dependent functions from callgraph instead of using code model to resolve the issue where private functions can't be accessed.
The blackscholes, mandel, and violajones examples now run successfully. However, the violajones example still gets wrong value when accessing `threshold` from `stage` inside `isAFaceStage` function, so I currently update the condition to `sumOfThisStage > threshold`.
For machines that don't have `float64` capability, enable `FP64` emulation by setting the environment variable: `OverrideDefaultFP64Settings=1` and `IGC_EnableDPEmulation=1` before running. For more details: https://github.com/intel/compute-runtime/blob/master/opencl/doc/FAQ.md#feature-double-precision-emulation-fp64
-------------
Commit messages:
 - Remove whitespace
 - Support iface buffer
 - Print log during building module
Changes: https://git.openjdk.org/babylon/pull/298/files
  Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=298&range=00
  Stats: 518 lines in 5 files changed: 462 ins; 16 del; 40 mod
  Patch: https://git.openjdk.org/babylon/pull/298.diff
  Fetch: git fetch https://git.openjdk.org/babylon.git pull/298/head:pull/298
PR: https://git.openjdk.org/babylon/pull/298
    
    
More information about the babylon-dev
mailing list