opencl相关内容

clGetDeviceInfo和clGetPlatformInfo在OpenCL中失败,错误代码为-30(CL_INVALID_VALUE)

我开始为使用OpenCL编写一个小“引擎".现在,我遇到了一个非常奇怪的问题. 当我调用clGetDeviceInfo()来查询特定设备的信息时,参数param_name的某些选项返回错误代码-30(= CL_INVALID_VALUE).一个非常著名的选项是CL_DEVICE_EXTENSIONS选项,无论我使用的是什么sdk或平台,该选项都应返回一串扩展名.我检查了每条边,并仔细检查了参 ..
发布时间:2020-05-20 19:02:06 C/C++开发

printf出错并且不显示结果

我在opencl中的printf有问题 这是我的代码的一部分: clGetEventProfilingInfo(timing_event, CL_PROFILING_COMMAND_START, sizeof(time_start), &time_start, NULL); clGetEventProfilingInfo(timing_event, CL_PROFILING_COMMAND_ ..
发布时间:2020-05-20 19:02:03 其他开发

具有标量参数的OpenCL Select方法

我有以下代码行,如果标量不为零,我希望a4的每个分量等于c4的对应分量,否则将其设置为b4的对应分量: uint4 a4 = select(b4, c4, (uint4)(scalar != 0)); 但是,阅读选择文档后,似乎必须为要选择的c4组件设置MSB. 以上行正确吗?我感觉不是. 解决方案 原来,我只需要将第三个参数调整为: (uint4)标 ..
发布时间:2020-05-20 19:02:01 其他开发

OpenCL的意外CPU利用率

我编写了一个简单的OpenCL内核来计算GPU上两个图像的互相关.但是,当我用enqueueNDRangeKernel执行内核时,一个内核的CPU使用率会上升到100%,但是主机代码除了等待排队的命令完成之外,什么也不做.这是OpenCL程序的正常行为吗?那里发生了什么事? OpenCL内核(如果相关): kernel void cross_correlation(global dou ..
发布时间:2020-05-20 19:01:56 服务器开发

BFS的最短路径,将代码从CUDA移植到openCL

我目前正在移植一个CUDA代码,该代码可查找(无向)图中从每个节点到其他节点的最短路径. 因此,基本上,CUDA代码构造了一个从文本文件读取的图形.然后继续构建相邻的数组h_v和h_e. For example A B A C B C gives h_v[0] = 0, h_e[0]=1 h_v[1] = 0, h_e[1]=2 h_v[2] = 1, h_e[2]=2 然后,它调用内 ..
发布时间:2020-05-20 19:01:53 其他开发

如何检查系统在C#中是否具有AMD或NVIDIA?

我正在尝试使用C#创建一个以太坊挖矿客户端,并且我需要检查系统是否具有AMD或NVIDIA.这是因为程序需要知道是否应该通过CUDA或OpenCL挖掘以太坊. 解决方案 您需要使用System.Management命名空间(可以在引用/程序集下找到) 添加名称空间后,需要导航ManagementObject的所有属性,并导航propertydata的所有属性,直到在name属性上创建 ..
发布时间:2020-05-20 19:01:50 C#/.NET

如何创建OpenCL命令队列?

我正在尝试学习OpenCL,但是我什至无法制作一个简单的内核来工作. 下面的代码来自《 OpenCL编程示例》,我对其进行了修改,修改,修改……但仍然不知道是什么问题. 每次我在PC(带有Radeon R3的AMD Athlon 5350 APU)上执行程序时,它都会将结果打印为"0.0000". 如果我在具有NVIDIA 1080 TI的另一台计算机(这是该HD的副本,因此所有内容都 ..
发布时间:2020-05-20 19:01:47 其他开发

如何从OpenCL设备写入/读取单个浮点值(缓冲区)

关于如何从设备读取数组有很多问题,但是我只想从设备读取单个浮点值.还是只能从设备读取数组? 我为(浮动)总和创建一个缓冲区,如下所示. ocl.sum = clCreateBuffer(context, CL_MEM_READ_WRITE, 1, NULL, &err); 像这样设置arg. clSetKernelArg(kernel, 0, sizeof(cl_men), ..
发布时间:2020-05-20 19:01:45 其他开发

如何通过利用Intel OpenCL SVML使用_mm256_log_ps?

我发现_mm256_log_ps不能与GCC7一起使用.关于stackoverflow的最常见建议是使用ICC或利用OpenCL SDK. 下载SDK并提取RPM文件后,共有三个.so文件:__ocl_svml_l9.so,__ocl_svml_e9.so,__ocl_svml_h8.so 有人可以教我如何使用这些.so文件调用_mm256_log_ps吗? 谢谢. 解决方 ..
发布时间:2020-05-20 19:01:42 其他开发

OpenCL全局错误在Haswell& amp;上有不同的解释. Kabylake iGPU

我们的内核初始化为: size_t localWorkSize[1] = {1}; size_t globalWorkSize[2] = {60, 80}; 内核在图像文件上实现典型的卷积. 在配备Kabylake iGPU的机器上可以正常工作,但是在Haswell或Bay Trail机器上执行时,全局工作量被解释为{60,60},因此执行时使用了错误的NDRange. 在所有系统 ..
发布时间:2020-05-20 19:01:38 其他开发

非递归随机数生成器

我已经搜索了伪RNG算法,但是我所能找到的似乎都是通过使用前一个结果作为种子来生成下一个数字的.有没有一种非递归的生成它们的方法? 我需要的场景是在OpenCL并发编程期间,每个线程/像素需要一个独立的RNG.我尝试使用BIG_NUMBER + work_id为它们播种,但是结果中具有很强的视觉模式.我尝试了几种不同的RNG算法,但都遇到了这个问题.显然,它们仅在递归生成时才保证数字是独立的 ..
发布时间:2020-05-20 19:01:36 其他开发

OpenCL性能评估

呈现OpenCL应用程序(尤其是计算内核)性能的最合适方法是什么? 我已经实现了一些算法,并且正在考虑呈现速度和效率图表,但是根据定义,我需要知道我在计算中使用了多少个处理器.如果使用OpenCL,则无法完成. 解决方案 创建带有CL_QUEUE_PROFILING_ENABLE标志集的命令队列,然后使用clGetEventProfilingInfo提取时序数据.有关更多详细信息,请参见" ..
发布时间:2020-05-20 19:01:33 其他开发

openCV 3.0,openCL和meanShiftFiltering

基于openCV 3.0和openCL的更改,我似乎无法使pyrMeanShiftFiltering使用openCL正常工作.我知道openCV 2.4.10支持ocl :: meanShiftFiltering.下面的两个功能执行相同的时间. 我什至如何检查openCL所支持的openCV 3.0中的哪些功能?有什么建议? #include ..
发布时间:2020-05-20 19:01:31 其他开发

使用“字符串"在openCl内核中

我对OpenCl编程有疑问.场景是:我有一个列表,该列表取自具有不同长度的文件中的单词,并且我必须将此列表传递给OpenCl内核.我尝试使用由包含单词的char数组和包含大小的int数组构成的结构.但是这种解决方案不起作用,因为在内核中,我必须创建一个具有结构中指示的大小的新数组,但是内核不喜欢可变大小的数组.有一种方法可以实现此解决方案(我的意思是为每个不同大小的线程创建一个数组)?如果没有这种 ..
发布时间:2020-05-20 19:01:23 其他开发

OpenCL(Cuda)中的元素操作

我构建了一个用于两个矩阵元素相乘的内核,但是至少在我的配置下,我的OpenCL内核仅在每个矩阵大于2GB时才更快.所以我在想,这是因为我的天真的内核(请参阅下文)还是由于元素操作的性质,这意味着元素操作不会因使用GPU而受益. 感谢您的输入! 内核: KERNEL_CODE = """ // elementwise multiplication: C = A .* B. __ke ..
发布时间:2020-05-20 19:01:21 其他开发

OpenCV:无法加载OpenCL运行时

我正在运行一个程序,在该程序中我的问题标题出现错误.我在此处找到了一个答案,建议从github下载OpenCV,然后使用ENABLE_OPENCL=OFF进行编译(使用CMake),并针对应用程序使用内置的库. 或者有没有办法在程序本身中设置此标志而不修改OpenCV中的任何内容? 我想知道是否有可能无需删除并重新安装OpenCV-3.0吗? 解决方案 我通过运行以下方法解决了 ..
发布时间:2020-05-20 19:01:16 其他开发

使用OpenCL的欧式距离

我正在尝试计算一组5D点(像素)到5D单点(中心)的欧式距离并将其存储在另一个结果向量中,我想使用向量索引将所有信息存储在一个向量中,因此对于第i个像素,这5个维度是(5i),(5i + 1),... 我是OpenCL的新手,我只是出于自己的意图在Internet上编辑了示例代码.理论是正确的,但是代码没有给出正确的答案! 这是内核: //d_kernel.cl __kernel void ..
发布时间:2020-05-20 19:01:14 C/C++开发

在OpenCL 1.2中使用cl_arm_import_memory扩展进行零拷贝缓冲区-Arm Mali Midgard GPU

我希望分配一个向量,并使用它的数据指针在GPU上分配一个零拷贝缓冲区.有此cl_arm_import_memory扩展名可用于执行此操作.但是我不确定是否所有马里Midgard OpenCL驱动程序都支持它. 我正在通过此链接,我是以下几行让我很困惑:- 如果公开了扩展字符串cl_arm_import_memory_host,则从普通用户空间分配(例如通过malloc创建的分配)中导入 ..
发布时间:2020-05-20 19:01:12 其他开发

无法使用缓冲存储器对象设置OpenCL内核参数

我有以下简单的OpenCL内核,该内核简单地将指向a的所有条目复制到b __kernel void mmcopy(__global float* a, __global float* b) { unsigned pos = get_global_id(0); b[pos] = a[pos]; } 以下代码片段显示了opencl函数调用,这些调用用于从四个浮点中创建一个缓冲 ..
发布时间:2020-05-20 19:01:09 其他开发