m4rs-mt / ILGPU

ILGPU JIT Compiler for high-performance .Net GPU programs
http://www.ilgpu.net
Other
1.35k stars 116 forks source link

Debug.Assert is not take effect on opencl #1049

Open tianmafly opened 1 year ago

tianmafly commented 1 year ago

There are no discrete graphics. The integrated graphics is Intel(R) UHD Graphics. The Debug.Assert take effect when use the cpu accelerator. But the Debug.Asset take no effect when use the opencl accelerator. Is something wrong? thanks.

image image

m4rs-mt commented 1 year ago

Hi @tianmafly, welcome to the ILGPU community. Thank your for submitting this issue. Indeed, the OpenCL accelerator does not support debug assertions and interop output, in general. You can still verify your algorithms using the CPU accelerator by choosing the appropriate virtual device configuration to match your target accelerators. However, we consider supporting those functions in one of the next releases.

tianmafly commented 1 year ago

Hi @tianmafly, welcome to the ILGPU community. Thank your for submitting this issue. Indeed, the OpenCL accelerator does not support debug assertions and interop output. You can still verify your algorithms using the CPU accelerator by choosing the appropriate virtual device configuration to match your target accelerators. However, we consider supporting those functions in one of the next releases.

thank you. But I find this. Does it mean that Debug.Assert can be used with gpu of Opencl? https://ilgpu.net/docs/03-advanced/06-debugging-and-profiling/ image And the interop output of OpenCL is effective,but it has no line breaks. image

m4rs-mt commented 1 year ago

Thanks for your response regarding this topic. It's important to be precise when discussing the implications of supporting certain aspects. ILGPU lowers the Interop.WriteLine instructions by leveraging the printf function exposed within OpenCL shader API. However, some drivers may not properly support the printf function, resulting in no visible output on the command line or poorly formatted strings appearing on the screen.

Regarding Debug.Assert instructions, it's important to note that ILGPU does not lower these instructions to any counterpart on the OpenCL side due to a lack of proper support for such operations at this time. To ensure clarity and accuracy within our documentation, we should explicitly mention that debug assertions are currently unsupported in OpenCL contexts.

@NullandKale we should properly adapt the documentation to explicitly mention that debug assertions are not supported on OpenCL at the moment. @kilngod @Yey007 Any idea on how we can support debug assertions on Vulkan?

Yey007 commented 1 year ago

@m4rs-mt, hi, just saw this. I'm not sure right off the bat but I'll try to get back to you with something soon.