Assembly 在设备上实现OpenCL需要采取哪些步骤?
假设我有一个设备,虽然它有能力支持,但目前不支持OpenCL。我有ISA、硬件设计文档和许多其他文档。我所在的系统目前拥有C和C++编译器,并支持许多Linux发行版。p> 现在我想在我的设备上添加OpenCL(比如说最新版本2.2)支持。为了支持我的设备,我实际上需要做什么?我在他们的网站上看到了SPIR-V的文档,即: 现在让我们假设我实现了一个SPIR-V-to-my-device-ISA编译器,我现在支持OpenCL2.2吗?我明白了,但我没有看到一句话说“如果你实现了这些功能,那么就编写实现这些功能的代码……你现在已经在你的系统上实现了OpenCL2.2规范”Assembly 在设备上实现OpenCL需要采取哪些步骤?,assembly,compilation,opencl,specifications,spir-v,Assembly,Compilation,Opencl,Specifications,Spir V,假设我有一个设备,虽然它有能力支持,但目前不支持OpenCL。我有ISA、硬件设计文档和许多其他文档。我所在的系统目前拥有C和C++编译器,并支持许多Linux发行版。p> 现在我想在我的设备上添加OpenCL(比如说最新版本2.2)支持。为了支持我的设备,我实际上需要做什么?我在他们的网站上看到了SPIR-V的文档,即: 现在让我们假设我实现了一个SPIR-V-to-my-device-ISA编译器,我现在支持OpenCL2.2吗?我明白了,但我没有看到一句话说“如果你实现了这些功能,那么就编
为了在我的设备上实现OpenCL,我需要采取哪些实际步骤 您必须提供开放式cl api的实现。这个api实现需要为您的体系结构高效地编译opencl内核 要支持一组特定的功能(意味着OpenCL版本和扩展),您需要支持api和OpenCLC/c++内核语言中的特定功能。所有这些都在开放式cl标准中指定,您可以在上找到 为了简化整个流程,英特尔、英伟达、amd等公司,。。。所有的编译器都基于LLVM。如果您需要进一步减少工作量,查看POCL也可能是一种选择
您的系统有自定义体系结构还是只是一个自定义软件堆栈?我将从pocl开始,并添加一个后端()。其他一切都已经完成。我是否会通过支持使用opencl扩展编译到SPIR-V来支持opencl内核?我以为那些内核是从2.0开始编译成SPIR-V的。我写这篇文章是为了一个在SOC上没有opencl规范的GPU。据我所知,这个GPU程序集没有LLVM。我对如何制作支持OpenCL的东西感到困惑。我是否只是从SPIR-V或LLVM向我的程序集编写编译器?我相信我的SOC上的cpu已经支持OpenCL了,这只是同一块板上的一个单独的设备,没有。允许主机cl访问设备的步骤是什么?您还需要运行时功能,仅仅一个编译器可能是不够的。就像@Dithermaster也说过的,从POCL开始可能是你最安全的赌注。不幸的是,它们都以某种形式使用llvm。