gpgpu相关内容

已安装beignet以在Intel上使用OpenCL,但是OpenCL程序仅在以root身份运行时才能工作

我有一个Intel HD图形4000第三代处理器,我的操作系统是Linux Mint 17.1 64位.我安装了beignet以便能够使用OpenCL并因此在GPU上运行程序.我在使用pyOpenCL绑定时遇到了很多问题,所以我决定卸载当前的beignet版本并安装最新的版本(您可以看到我问过的上一个问题,并对此得到了回答升级beignet成功,现在我可以通过python和C/C++绑定在我的GP ..
发布时间:2020-05-20 18:56:24 Python

可以跨越一个OpenCL内核以在CPU和GPU上同时运行

让我们假设我有一台装有多核处理器和GPU的计算机.我想编写一个在平台的所有内核上运行的OpenCL程序.这可能吗,还是我需要选择一个可以在其上运行内核的设备? 解决方案 理论上可以,CL API允许.但是平台/实现必须支持它,我认为大多数CL实现都不支持. 要执行此操作,请获取CPU设备和GPU设备的cl_device_id,并使用clCreateContext创建与这两个设备的上下 ..
发布时间:2020-05-20 18:56:04 其他开发

在OpenCL中,相对于barrier(),mem_fence()的作用是什么?

与barrier()(我想我理解)不同,mem_fence()不会影响工作组中的所有项目.对于mem_fence(): ,OpenCL规范说(第6.11.10节): 命令加载和存储执行内核的工作项. (因此它适用于单个工作项). 但是,与此同时,在第3.3.1节中,它表示: 在工作项内存中具有加载/存储一致性. 在一个工作项之内,内存是一致的. 那么mem_f ..
发布时间:2020-05-20 18:55:18 其他开发

具有OpenCL或其他GPGPU框架的现代x86硬件上的CPU和GPU之间的数据共享

CPU和GPU硬件的逐步集成已得到证明,AMD Kaveri具有hUMA(异构统一内存访问)和Intel第四代CPU证明,应该允许CPU和GPU之间无拷贝共享数据.我想知道,最新的OpenCL(或其他GPGPU框架)实现是否允许在CPU和GPU上运行的代码之间实现真正的无复制大数据结构共享(无显式或隐式数据复制). 解决方案 OpenCL从1.0版开始通过CL_MEM_ALLOC_HOST ..
发布时间:2020-05-20 18:54:37 其他开发

在OpenCL中以编程方式选择最佳GPU的最佳方法是什么?

在我的笔记本电脑上,我有两张图形卡-Intel Iris和Nvidia GeForce GT 750M.我正在尝试使用OpenCL做一个简单的矢量添加.我知道Nvidia卡的速度要快得多,并且可以做得更好.原则上,我可以在代码中放置一个if语句,该语句将在VENDOR属性中查找NVIDIA.但是我想要些优雅的东西.在OpenCL C/C++中以编程方式选择更好(更快)GPU的最佳方法是什么? ..
发布时间:2020-05-20 18:54:16 C/C++开发

如何在Nvidia GPU上调试OpenCL?

是否可以在Nvidia GPU上调试OpenCL内核,即设置断点并检查变量?我的理解是 Nvidia的工具不允许OpenCL调试,并且 AMD的和解决方案 gDEBugger可能会对您有所帮助(虽然从未使用过),但除此之外,我所知道的任何工具都无法设置断点或检查变量在内核中.如果是长内核,也许尝试保存内核的中间输出.抱歉,我无法给您一个神奇的解决方案,调试OpenCL很难. ..
发布时间:2020-05-20 18:53:57 其他开发

在混合供应商的硬件上运行OpenCL

我一直在他们的Stream 2.0 beta中使用ATI OpenCL实现.当前Beta版中的OpenCL目前仅使用CPU,下一个版本应该支持GPU内核.我下载Stream是因为我的工作机中装有ATI GPU. 我编写的软件将通过使用GPU获得巨大收益.但是,该软件可以在客户计算机上运行,​​我没有奢望(像许多科学计算环境一样)选择要开发的硬件并为此进行优化.所以我的问题是,如果我将ATI ..
发布时间:2020-05-20 18:53:52 其他开发

可以同时运行多少个线程(或工作项)?

我是GPGPU编程的新手,并且正在使用NVIDIA OpenCL实施. 我的问题是如何计算GPU设备的限制(以线程数为单位). 据我了解,有许多工作组(相当于CUDA中的块),其中包含许多工作项(〜cuda线程). 如何获得卡上存在的工作组数量(并且可以同时运行)和一个工作组中存在的工作项目数量? CL_DEVICE_MAX_COMPUTE_UNITS对应什么? khrono ..
发布时间:2020-05-20 18:53:48 其他开发

OpenCL中的重叠传输和设备计算

我是OpenCL的初学者,很难理解. 我想改善主机和设备之间的图像传输. 我制定了一个计划以更好地了解我. 顶部:我现在拥有的|下:我想要什么 HtD(主机到设备)和DtH(设备到主机)是内存传输. K1和K2是内核. 我考虑过使用映射内存,但是第一次传输(从主机到设备)是通过clSetKernelArg()命令完成的,不是吗? 还是我必须将输入图像切成子图像并使用映射来获取输出图像? ..
发布时间:2020-05-20 18:53:42 其他开发

如何获取OpenCL SDK?

我正在仔细阅读 http://www.khronos.org/网站,仅找到OpenCL的标头(不是我不在乎的OpenGL).如何获取OpenCL SDK? 解决方案 AMD的ATI Stream SDK非常适合我,它使用多核cpu.我有一个Intel CPU和一个NVIDIA卡,但是可以与CPU一起使用.只需要注册,就不需要像Nvidia这样的特殊选择: http://developer. ..
发布时间:2020-05-20 18:53:15 其他开发

OpenCL与OpenMP的性能

是否有任何研究将OpenCL与OpenMP性能进行比较?我特别感兴趣的是使用OpenCL启动线程的开销成本,例如,如果要将域分解为大量的单个工作项(每个工作项都由做一个小工作的线程来运行),而在OpenMP中使用较重的线程则是该域被分解为子域,其数量等于核心数. 似乎OpenCL编程模型更针对大规模并行芯片(例如GPU),而不是具有更少但更强大的内核的CPU. OpenCL可以有效替代 ..
发布时间:2020-05-20 18:53:11 其他开发

OpenGL vs. OpenCL,选择哪个,为什么选择?

哪些功能使OpenCL可以在GLSL和GLSL上进行计算时独树一帜?尽管图形相关的术语和不切实际的数据类型,OpenGL是否有真正的警告? 例如,可以通过使用其他纹理将a渲染到纹理来完成并行函数评估.缩小操作可以通过迭代渲染越来越小的纹理来完成.另一方面,不可能以任何有效的方式进行随机写访问(唯一的方法是通过纹理驱动的顶点数据渲染三角形). OpenCL有可能吗? OpenGL无法实现的其他 ..
发布时间:2020-05-20 18:53:08 其他开发

在opencl中使用cpu设备访问文件系统

我是opencl的新手.我对opencl在cpu设备上运行时的运行功能有疑问,假设我们有一个cpu设备上运行的内核,它可以从磁盘上的文件中读取数据.如果是,那怎么办?如果没有,那为什么不呢? 能否请您提供详细信息的来源? 预先感谢. 解决方案 您不能. OpenCL试图统一对计算能力的访问,而文件系统则取决于操作系统.如果您需要此功能,则有线程(C ++ 11线程,pthread等)或Op ..
发布时间:2020-05-20 18:52:59 其他开发

可以优化此OpenCL代码吗?

我正在为一个专门的矩阵函数编写一段OpencL代码:对于Dx1向量v,两个DxD矩阵A和B和一个常量c,返回向量r,其中r[i] = c * sum_over_j (v[j] * A[i][j] * B[i][j]) 以下是我到目前为止的内容,但是运行异常缓慢.不求和返回DxD矩阵的版本大约快十倍.如果有任何区别,可以从PyOpenCL调用它. 做错什么了吗?可以优化吗? #de ..
发布时间:2020-05-20 18:52:35 其他开发

NVidia是否支持OpenCL SPIR?

我想知道nvidia是否支持spir后端?如果是,我找不到任何有关此的文档和示例示例.但是,如果没有,是否有任何方法可以将spir后端工作到nvidia gpus上? 预先感谢 解决方案 由于SPIR基于OpenCL 1.2版构建,并且到目前为止Nvidia尚未提供任何OpenCL 1.2驱动程序,因此无法将SPIR与Nvidia GPU一起使用.如评论中所述,Nvidia已将PTX用作中 ..
发布时间:2020-05-20 18:52:19 其他开发

OpenCL全局内存获取

我正在考虑重新设计我的GPU OpenCL内核以加快速度.问题在于,存在很多尚未合并的全局内存,而访存实际上会降低性能.因此,我计划将尽可能多的全局内存复制到本地,但是我必须选择要复制的内容. 现在我的问题是:多次获取小块内存是否比减少较少的大块内存遭受的伤害更大? 解决方案 您可以使用clGetDeviceInfo来查找设备的缓存行大小. ( clGetDeviceInfo ,CL ..
发布时间:2020-05-20 18:52:02 其他开发

OpenCL本地内存是否有限制?

今天,我在内核中添加了另外四个__local变量以转储中间结果.但是,仅将另外四个变量添加到内核的签名中并添加相应的Kernel参数会将内核的所有输出渲染为"0". cl函数均未返回错误代码. 我进一步尝试仅添加两个较小的变量之一.如果我仅添加其中一个,则可以使用,但是如果我同时添加它们,则将无法使用. 那么OpenCL的这种行为是否意味着我分配了很多__local内存?我如何找出我可 ..
发布时间:2020-05-20 18:51:52 其他开发

OpenCL-如何查询设备的SIMD宽度?

在CUDA中,有一个 warp 的概念,它被定义为可以在单个处理元素中同时执行同一条指令的最大线程数.对于NVIDIA,目前市场上所有卡的翘曲尺寸均为32. 在ATI卡中,有一个类似的概念,但是在这种情况下,术语是 wavefront .经过一番摸索后,我发现我拥有的ATI卡的波前大小为64. 我的问题是,在运行时如何为OpenCL查询此SIMD宽度? 解决方案 我找到了想要的 ..
发布时间:2020-05-20 18:51:46 其他开发