草庐IT

c++ - [OpenCL] 使用欧氏距离的最近邻

我正在使用OpenCL查找两组3D点之间的最近邻居。最近邻:对于数据集中的每个点(x,y,z),我必须在模型中找到最近的一个。平方距离=(Ax-Bx)^2+(Ay-By)^2+(Az-Bz)^2这是我到目前为止所做的:structpoint{intx;inty;intz;};__kernelvoidnearest_neighbour(__globalstructpoint*model,__globalstructpoint*dataset,__globalint*nearest,constunsignedintmodel_size){intg_dataset_id=get_global

c++ - 性能 : boost. 计算对比opencl C++ 包装器

以下代码分别使用boost.compute和openclc++包装器添加两个vector。结果显示boost.compute比openclc++包装器慢了近20倍。我想知道我是否错过了使用boost.compute或者它确实很慢。平台:win7、vs2013、boost1.55、boost.compute0.2、ATIRadeonHD4600代码使用c++包装器:#define__CL_ENABLE_EXCEPTIONS#include#include#include#include#include#include#includeintmain(){staticcharkernelSo

c++ - 无法在 1.1 版本中使用 1.2 header 编译 OpenCL 应用程序

我正在使用KhronosGroup的cl.hpp编写一个小的helloworldOpenCL程序适用于OpenCL1.2和nVidia的openCL库。我拥有的驱动程序和ICD支持OpenCL1.1。由于nVidia方面尚不支持1.2,因此我在OpenCL1.2所需的功能上遇到了一些错误。另一方面,OpenCL1.2的cl.hpp有一个标志,准确地说是CL_VERSION_1_1,用于在1.1模式下运行header,但它不起作用。有没有人有类似的经验或解决方案?注意:1.1版的cl.hpp可以工作,但在编译期间会生成许多警告。这就是我尝试使用1.2版本的原因。

c++ - 您可以在不下载 SDK 的情况下开始 OpenCL 编程吗?

我正在尝试获得一个可以同时在ATI和NVidia上运行的程序,因此,我想避免使用任何一个SDK。是否可以在没有SDK的情况下仅使用VS2010和Windows(XP或7)来执行此操作?如果是这样,我该如何配置VS2010链接器使其正常工作? 最佳答案 严格来说,不需要SDK。事实上,不需要SDK,因为NVIDIA和AMD/ATISDK都将代码绑定(bind)到它们的环境,进而扩展到它们的硬件。你需要的是:1)将运行OpenCL代码的GPU。看到这个问题:ListofOpenClCompliantCPU/GPU2)OpenCL库(Li

windows - 使用 Nvidia 显卡安装 AMD OpenCL CPU 驱动程序

我已经多次看到这个问题,但从未找到适用于Windows的答案。我最近将我的CUDA代码移植到了OpenCL。当使用ATI卡进行测试时,Catalyst驱动程序包含一个CPUOpenCL驱动程序,因此我可以在CPU上运行OpenCL代码。使用NVIDIA卡进行测试时,没有CPU的驱动程序。问题是:使用Nvidia卡运行时如何安装(和部署)CPU驱动程序?非常感谢 最佳答案 要在CPU上使用OpenCL,您不需要任何驱动程序,您只需要支持CPU的OpenCL运行时,它(在AMD/ATI的情况下)是APPSDK的一部分.无论你有什么GPU

c++ - OpenCL 浮点精度

我发现OpenCL中主机-客户端float标准存在问题。问题是在x86中编译时,由Opencl计算的float与我的visualstudio2010编译器不在相同的float限制内。但是,在x64中编译时,它们处于相同的限制。我知道它必须与http://www.viva64.com/en/b/0074/有关我在测试期间使用的来源是:http://www.codeproject.com/Articles/110685/Part-1-OpenCL-Portable-Parallelism当我在x86中运行该程序时,当内核和C++程序采用1269760个数字的平方时,它会给我202个相等的数

windows - 可以以低优先级运行 OpenCL 程序(是 "nice")?

我有一个OpenCLWindows程序,它执行大量的数字运算并愉快地消耗100%的GPU。我希望能够在正常使用计算机时在后台运行它,但现在它会导致相当大的桌面延迟并使任何3d应用程序无法使用。有没有办法在OpenCL中设置优先级,以便将GPU能力让给其他进程并且只使用空闲周期? 最佳答案 不幸的是,大多数GPU不支持一次运行多个任务,因此无法分配优先级。这意味着当您的OpenCL内核正在运行时,它是GPU正在执行的唯一任务,并且在内核完成之前一直如此。如果您希望计算机在运行内核时可用(正常的桌面事件、浏览、视频、游戏),每个内核迭代

windows - 无法将 Windows 上的 OpenCL 与 GHC 链接起来

我正在努力使OpenCLRaw绑定(bind)达到可以在Windows上使用它们的程度。我已经在github上fork了OpenCLRaw存储库,因此我可以根据需要进行修改。我的分支在这里:https://github.com/dagit/OpenCLRaw我大部分时间都在我的“FunPtr”分支上工作。我遇到的问题是:我安装了AMD的OpenCLSDK,将其特定于VisualStudio的.lib文件转换为gcc可以处理的文件(.a文件),但ghc似乎无法与其链接。我在OpenCLAPI中使用的所有内容都得到undefinedsymbol。我能够构建一个“简单的”C程序并使用我生成的

windows - 在 Mingw Nvidia SDK 上编译 OpenCL

是否可以使用Mingw和NvidiaSDK编译OpenCL?我知道它没有得到官方支持,但这没有意义。这些库不是作为静态链接库提供的吗?我的意思是一旦用任何可能的编译器编译并成功链接,应该是什么问题?我设法编译并成功地将我的代码链接到NvidiaSDK提供的OpenCL库,但是可执行文件在clGetPlatformIDs处抛出段错误,这是我代码中的第一个OpenCL调用。这是我的编译命令x86_64-w64-mingw32-g++-std=c++11File.cpp\-L"C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v5.0\lib\x6

python - 对于多平台 GPGPU 计算,是否有 OpenCL+PyOpenCL 的替代方案?

Mac上对OpenCL的支持是goingtoendinmacOS10.15,因此人们投资于PyOpenCL+OpenCL作为进行通用GPU(+CPU)计算的手段将很快开始失去一个关键平台。所以我的问题是:近期是否有PyOpenCL+OpenCL的任何可行的多平台GPGPU计算替代方案?会Vulkan有可能使用Python包装器吗? 最佳答案 (此答案包含一些实用的建议,并附有意见和个人猜测。如果其中一些被认为不合适,我很乐意根据收到的评论编辑此答案。)我的观点是,macOS上可用的CL实现一直几乎没有用,因为它们有很多错误。另一方面