Articles of opencl

在没有root权限的Linux上安装OpenCL

我想在Linux机器上使用OpenCL,我只有用户权限。 我发现只有.rpm文件,这是不是选项,直到我没有得到root的权限。 我可以做一些其他的方式吗? 我可以在哪里下载源代码?

OpenCL的。 奇怪的数组寻址/指针错误

我有这个简单的内核进行testing。 __kernel void nfa(__global const int *a, __global int *output) { output[0] = a[0]; } 注意:这是在CPU上运行,内存可能在主机上。 它导致这个错误。 * glibc检测到 ./program:malloc():smallbin双链表损坏:0x0000000000a4a540 * * 我怀疑这是破坏程序的一部分,因为它正在访问主机内存。 但据我所知,所有内存分配正确。 它在堆栈上,但在运行时停留在范围内。 但是,如果我这样做: __kernel void nfa(__global const int *a, __global int *output) { a = a; output[0] = a[0]; } 这导致答案2,这是正确的,因为a是一个数组[2,4,8]; 对自己的分配解决了这个问题… 这也很好,导致4。 __kernel void nfa(__global const int *a, __global int *output) […]

OpenCL:将“clinfo”作为非root用户运行所需的权限(能力)

我试图摆脱运行使用OpenCL的应用程序(在英特尔GPU上,使用beignet)作为根目录。 我似乎已经遇到了一些权限问题。 clinfo似乎显示相同的权限问题。 是否有一些简单的方法来找出需要什么权限/function? 当我作为普通用户从Linux控制台运行clinfo ,我得到以下结果: drm_intel_gem_bo_context_exec() failed: Invalid argument /dev/dri/card0 not authenticated Device open failed, aborting… error in /home/magnus/lcam-deb/libbeignet-lcam/src/cl_api.c line 298 Invalid device 作为root它工作正常。 如果我以同样的用户启动X,然后在clinfo中运行clinfo ,它也可以工作。

在Linux的多个平台上启用OpenCL? 如何处理ICD文件?

细节 为了在多种平台上启用OpenCL,必须安装哪些驱动程序/软件包:CPU(英特尔),集成GPU(英特尔),专用GPU(NVIDIA)? 拥有运行OpenCL 1.2或更高版本的所有平台将是非常好的 我知道这可能是一个简单的修复,也许只是正确的库/ SKDselect,但我有一些麻烦得到更多的一个平台上class。 运行Ubuntu 14.04:我有一个英特尔核心I5与集成的英特尔graphics和专用的NVIDIA GeForce 710m板。 我用过的资源 https://wiki.tiker.net/OpenCLHowTo 这里(在Debian下)它告诉我,我只需要: ICD装载机的包装:(你只需要其中的一个) ICD的软件包 包头 我已经尝试过了 安装的CUDA7.5(是的所有) 有一个黑屏由于司机冲突 解决所有的NVIDIA驱动程序和安装352 还剩下Cuda SDK安装 From: 如何让OpenCL在14.10 + Nvidia 331.89驱动上运行? sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe 这些软件包将我的司机降级到331和340 同样来自: 如何使OpenCL在14.10 + Nvidia 331.89驱动程序上工作? 链接库与: sudo ln -s /usr/include/nvidia-352/GL /usr/local/include sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so OpenCL 1.1为NVIDIA GPU工作 无法获得OpenCL […]

让OpenCL在Optimus技术的Linux笔记本电脑上工作

我在我的笔记本电脑上安装了Kubuntu 13.10,它配有Optimus技术的Nvidia GT555m。 我在使用OpenCL编译C ++代码时遇到了一些麻烦。 我不断收到的错误是Cannot find -lOpenCL 。 使用GNU find实用程序进行快速search给了我以下内容: /usr/lib32/nvidia-319/libOpenCL.so.1 /usr/lib32/nvidia-319/libOpenCL.so /usr/lib32/nvidia-319/libOpenCL.so.1.0 /usr/lib32/nvidia-319/libOpenCL.so.1.0.0 /usr/lib/x86_64-linux-gnu/libOpenCL.so /usr/lib/nvidia-319/libOpenCL.so.1 /usr/lib/nvidia-319/libOpenCL.so /usr/lib/nvidia-319/libOpenCL.so.1.0 /usr/lib/nvidia-319/libOpenCL.so.1.0.0 我安装了以下OpenCL开发包: opencl-headers nvidia-opencl-dev 我也尝试了实用clinfo ,看看我是否得到任何信息,但我得到以下错误: clinfo: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory 有没有人有任何经验在他们的optimus笔记本电脑上使用OpenCL设置Linux开发环境? 我的印象是,我不需要做任何事情就能做到这一点。 编辑 :好吧,似乎我没有pipe理编译的原因是因为我混合了头和库。 使用以下编译我的代码: g++ -std=c++11 -I /usr/local/cuda-5.5/include vadd.cpp -L /usr/lib/nvidia-331 -lOpenCL […]

Android上的OpenCL i.MX6(udoo板)

正如我试图比较Renderscript和OpenCL,我想得到的OpenCL在Udoo板的i.MX6处理器上工作。 我从linux udoo安装中取出了libOpenCL.so,并将其放到Android udoo板上(因为Android版本上没有libOpenCL.so)。 当我试图加载它,它错过了这些library's: ld-2.15.so / ld-linux.so.3 / libc.so.6 / libc-2.15.so / librt.so.1 and librt-2.15.so我已经在Linux Udoo上find了这些库,并将它们移到了Android udoo板上。 但现在我得到这个错误: 01-02 00:01:12.810 E / dalvikvm(3206):dlopen(“/ system / lib / libOpenCL.so”)失败:无法加载库:soinfo_link_image(linker.cpp:1635):无法加载库“librt .so.1“所需的”libOpenCL.so“; 由soinfo_link_image(linker.cpp:1635)引起:无法加载“librt.so.1”所需的库“libc.so.6”; 由soinfo_relocate(linker.cpp:1178)引起:未知的reloctypes19 @ 0x689a13e0(1193) 我在网上find的(不是那么多)告诉我,这些.so文件是用一个Android编译器编译的,在Android上不支持。 我也在freescale论坛上发表了关于它的文章,但是我没有回复。 问:没有人在i.MX6(或udoo板)上使用Android上的OpenCL吗? 或者可以帮助我在正确的方向看?

OpenCL / OpenGL互操作性纹理segfault

我正在尝试使用OpenCL与OpenGL互操作。 在GPU上计算path追踪algorithm,然后将GL纹理绘制成四边形。 按照英特尔CPU上的预期工作,但是当我尝试在GTX 970上运行时,出现段错误,解锁了GL纹理。 不知道,如果这是原因或正在运行的内核。 我会让代码自己说话。 我正在使用OpenCL C ++包装。 GL纹理创build glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, framebuffer); glBindTexture(GL_TEXTURE_2D, 0); //Unbind texture CL纹理分配 m_textureCL = cl::ImageGL(m_context, CL_MEM_READ_WRITE, GL_TEXTURE_2D, 0, texture, &errCode); RunKernel函数 //—————————————————————————– // Lock texture //—————————————————————————– std::vector<cl::Memory> […]

如何让OpenCL在ATI Radeon显卡上工作

我正在编译海豚 ,一个任天堂的模拟器。 我下载了主干,它编译得很好,但不会链接。 相反,我得到这个错误: 链接CXX共享库../../../Binaries/plugins/libPlugin_VideoOGL.so / usr / bin / ld:找不到-lOpenCL collect2:ld返回1退出状态 make [2]:*** [Binaries / plugins / libPlugin_VideoOGL.so]错误1 make [1]:*** [Source / Plugins / Plugin_VideoOGL / CMakeFiles / Plugin_VideoOGL.dir / all]错误2 make:*** [all]错误2 看起来我需要某种OpenCL库。 我做了一些研究,不知何故有一个想法,我需要安装fglrx。 它不顺利。 事实上,当我尝试运行fglrxinfo时,我遇到了一个seg故障。 我的video并没有被彻底洗净,所以我尝试了一下,得到了上面的OpenCL错误。 我只想让海豚工作。 我有什么select? 这是我的规格: Ubuntu 10.4 Radeon X1200(RS690M)

将OpenCL与OpenGL混合使用

在一个程序中同时使用OpenGL和OpenCL可以吗? 两者都在GPU上运行,恐怕OpenCL和OpenGL之间的切换是在“背景”下处理的(例如,寄存器被覆盖)。 我正在使用Linux与一些nVidiagraphics8k的计算机上工作,所以我可以使用在CUDA顶部实施的OpenCL。

如何在Linux中为opencl编程(Intel OpenCL SDK Installed)准备eclipse

我在opensuse 13.1上安装了英特尔OpenCL SDK,我想知道如何为opencl编程准备Eclipse cpp,如果是简单的问题,我很抱歉,我是opencl的新手,在search后发现了有关NVIDIA和AMD实现的文章。 编辑:添加包含path“/ opt / intel / opencl-xxx / inlcude”以将/opt/intel/opencl-xxx/lib64/libOpenCL.so链接到/usr/lib64/libOpenCL.so,eclipse将findCL \ ch.h但是gcc返回这个错误: 构build文件:../src/HelloWorld.cpp调用:GCC C ++编译器g ++ -I / opt / intel / opencl-1.2-3.2.1.16712 / include / -O0 -g3 -Wall -c -fmessage-length = 0 -MMD -MP -MF“src / HelloWorld.d”-MT“src / HelloWorld.d”-o“src / HelloWorld.o”“../src/HelloWorld.cpp”../src/HelloWorld.cpp:11: 16:致命错误:cl.h:没有这样的文件或目录#include ^编译终止。 make: * [src / HelloWorld.o]错误1 编辑: HelloWorld.cpp: #include <iostream> […]