[code-reflection] RFR: Support for Generalized Buffer Type in Hat SPIR-V Backend
hanklo6
duke at openjdk.org
Thu Dec 19 21:19:53 UTC 2024
On Mon, 16 Dec 2024 22:02:23 GMT, hanklo6 <duke at openjdk.org> wrote:
> 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
I got the same result after swapping the `Cascade.Stage stage` and `Cascade cascade` method parameters.
For verification, I compared the detected faces and the number of faces with the results from the code running on my MacOS OpenCL backend, and both detected the same faces and number of faces.
-------------
PR Comment: https://git.openjdk.org/babylon/pull/298#issuecomment-2555789594
More information about the babylon-dev
mailing list