What are your plans for the Standard Portable Intermediate Representation SPIR ( OpenCL portable and vendor-independent IL ).Do you plan to update your SKA tool with it+
If you don-t know whats SPIR, take a look to
I must say we're very excited about that.
FINALLY Khronos undestood no commercial app would use OpenCL if they have to release the kernel source code.
So, are you going to create some kind of CUDA-like nvcc.exe/DirectX fxc.exe compiler to allow us to precompile our kernels into an intermediate language finally, yay?
Your bet would be correct at the moment since SPIR was just added as an extension in the update to OpenCL 1.2. Hopefully a new driver/sdk will be released soon to add support for this and several other goodies in the update.
As of Catalyst 12.10 and the just released APP SDK 2.8, SPIR is not supported, at least on my AMD CPUs and GPUs. Since the SDKs are released around twice a year, you'll probably be waiting a bit longer.
AFAIK these are the contents of an AMD OpenCL ELF image:
- OpenCL source code
- LLVMIR - it's the ocl source compiled/preoptimized into a binary representation
- AMD_IL - it's generated from LLVMIR (you called it Radeon IL), it is in text, not binary. It's targeted to specific hardware.
- EXE - the old CAL ELF image, compiled and optimized from the previous AMD_IL section. It's a standalone elf image, can be used in CAL directly.
The EXE section contains 2 subsections:
- AMD_IL binary representation.
- ISA microcode that can be uploaded to the hardware as it is.
I think, the functionality you want can be done with the LLVMIR section:
- There will be no OpenCL source in the file.
- Also it will be hardware independent.
Just compile the kernel with "-fno-bin-source -fbin-llvmir -fno-bin-amdil -fno-bin-exe" parameters, and it will contain only a binary LLVMIR section.
>>Just compile the kernel with "-fno-bin-source -fbin-llvmir -fno-bin-amdil -fno-bin-exe" parameters, and it will contain only a >>binary LLVMIR section.
The point of SPIR is that will be also compatible with NVIDIA and Intel. Propably the LLVMIR that AMD is using is not really compatible with latest LLVM-SPIR branch,