Marawacc supports differents options to track the kernel generation, graalIR information and OpenCL internal debug information and also explore different optimimizations.
There are two options to change the vendor selection and platform. I recommend the VM option. I just kept the env for compatibility with previous versions.
Choose a specific OpenCL vendor for CPU. It could be "INTEL" or "AMD"
$ export GRAAL_CPU_PLATFORM="INTEL"
Chosse a specific OpenCL vendor for GPU. It could be "NVIDIA" or "AMD"
$ export GRAAL_GPU_PLATFORM="NVIDIA"
CPU: The platform could be INTEL or AMD.
-Dmarawacc.cpu.platform=INTEL
GPU: The platform could be NVIDIA or AMD
-Dmarawacc.gpu.platform=NVIDIA
-Dmarawacc.printOCLKernel=true
-Dmarawacc.printGraalIR=true
-Dmarawacc.printOCLInfo=true
-Dmarawacc.dumpGraph=true
-Dmarawacc.debugOCLKernel=true // false by default
-Dmarawacc.relaxMathKernel=true // false by default
-Dmarawacc.guards=true
-Dmarawacc.useVectorTypes=true
It runs an empty kernel in a separated thread for switching the GPU to high-performance. When the real application comes in, the thread is stopped and the new kernel is executed on the GPU. This has a positive impact in performance for AMD GPUs.
-Dmarawacc.gpu.warmingup=TRUE
Alternatively, for older Graal versions:
$ export GRAAL_WARMINGUP="TRUE"
-jvmci -XX:-BootstrapJVMCI -XX:-UseJVMCIClassLoader -Dmarawacc.printOCLKernel=true -Dmarawacc.printOCLInfo=true