我可以使用外部OpenCl库吗?
我想使用一些外部库(http://trac.osgeo.org/geos/)对几何体对象(GIS)执行某些分析任务。我想在Cuda上使用OpenCL执行这些任务,这样我就可以使用GPU的并行功能在大数据集上并行执行这些任务。所以我的问题是:我可以使用外部OpenCl库吗?,opencl,Opencl,我想使用一些外部库(http://trac.osgeo.org/geos/)对几何体对象(GIS)执行某些分析任务。我想在Cuda上使用OpenCL执行这些任务,这样我就可以使用GPU的并行功能在大数据集上并行执行这些任务。所以我的问题是: 我可以使用这些库编写内核吗 另外,如何将这些库的复杂数据结构的对象作为参数传递给内核/(具体来说,如何创建这些复杂对象的缓冲区 程序主要由两部分组成 宿主代码-这是在OpenCL运行时调用函数的常规C/C++代码,与任何其他代码一样工作。此代码需要与可能为您
< St>No.<强> -您不能直接从内核中使用常规C++库<强>。但是,您可以在主机代码中任意操作。
< P>不,在OpenCL内核中不能使用外部库。记住,当OpenCL应用程序运行时,任何内核都需要编译,因为它不知道什么平台。“CUDA上的OpenCL”是什么意思?CUDA和OpenCL是两个完全不同的东西。你想问什么?你的问题不一定只有一个答案适用于两者。我的意思是,我正在使用OpenCL为Nvidia图形卡开发(或者我不知道在Cuda驱动程序之上使用OpenCL构建应用程序是正确的)您的第一点是错误的(或者至少与上面的问题1不符)。你不能只在CUDA或OpenCL内核中使用任何主机库。目前,两种编程模型都不支持外部链接的概念。但我在这篇文章中读到,我可以包含头文件。这对我不起作用吗???我可以包含为x86上的ARM处理器编写的库的头文件,但该库不起作用k、 类似地,您可以在内核中包含x86库的头,但这并不意味着它将在GPU上运行。(这是一个过于简化的示例,但您明白了重点。该库需要专门为OpenCL/CUDA编写)@Talonmes我没有说使用OpenCL内部的库(我甚至不明白有人怎么会这么想)。我应该知道,我已经编写了自己的绑定。我说是的,你可以在OpenCL或CUDA中使用任何你想要的库。它们只是计算库,不关心你想要处理什么数据或数据来自哪里from@PaulS-我不认为OP想要直接使用内核中的库。我已经澄清了我的ans我们来反思一下。虽然你不能在内核中使用外部库,但你可以通过在内核和外部库之间传递设备指针,轻松地将外部库与OpenCL内核连接起来。谷歌“OpenCL gpu库”可以找到一些。