可以说我有一个虽然有支持能力的设备,但目前不支持OpenCL。我有ISA,硬件设计文档和许多其他文档。我设备所在的系统目前拥有C和C++编译器,并且支持许多Linux发行版。需要采取哪些步骤在设备上实现OpenCL?
现在我想添加OpenCL(可以说最新版本2.2)支持到我的设备。为了让我的设备得到支持,我实际上需要做些什么?我在他们的网站上看到SPIR-V的文件,即:SPIR-V registry page,opencl extended instruction set overview,normal spir-V overview。
现在让我说我实现了SPIR-V-to-my-device-ISA编译器,我现在是否支持OpenCL 2.2?我看到another registry for OpenCL,但我没有看到一句话说:“如果你实现这些功能,编写这样的代码等等,你现在已经在你的系统上实现了OpenCL 2.2规范。
为了实现设备的OpenCL,我需要采取哪些实际步骤?
我不支持通过opencl扩展编译为SPIR-V来支持opencl内核吗?我认为这些内核从2.0开始编译为SPIR-V。我正在为一个没有opencl规范的GPU编写这个程序。据我所知,这个GPU组件没有LLVM。我对如何制作支持OpenCL的东西感到困惑。我只是从SPIR-V或LLVM编写一个编译器到我的程序集?我认为我的SOC上的CPU已经支持OpenCL,这只是在同一块主板上的一个独立设备。允许主机cl访问设备的步骤是什么? – snb
您还需要运行时功能,只是编译器可能不够。像@Dithermaster也表示,从POCL开始可能是最安全的选择。不幸的是,他们都以某种形式使用llvm。 – MichaelE1000