opencl 相关问题

OpenCL(开放计算语言)是一个用于编写程序的框架,这些程序跨CPU,GPU和其他处理器组成的异构平台执行。

使用 OpenCL 的 GPU 比 CPU 慢。为什么?

环境: 英特尔 i7-9750H 英特尔超核芯显卡 630 Nvidia GTX1050(笔记本电脑) 视觉工作室 2019 / C++ OpenCV 4.4 OpenCL 3.0(英特尔)/1.2(英伟达) 我正在尝试使用 OpenCL 来加速我的代码。但是...

回答 2 投票 0

OpenCL 动态并行 enqueue_kernel() 功能

我正在尝试使用 OpenCL 2.0 提供的功能从内核内部调用内核,但似乎无法使其工作。 例如我有这些内核: __内核无效测试2(){ 原则...

回答 1 投票 0

OpenCL 找不到 Intel HD 4000

我会提前警告你我的书面英语不好,所以请耐心等待,因为我会犯很多错误。 我需要暴露显卡才能进行一些基准测试...

回答 1 投票 0

如何将结构体数组移动到GPU?

假设我创建了树并初始化了它。 现在,我如何在 openCL 中将节点向量移动到 GPU? 结构 BVHNode { 边界框bbox; BoundingSphere bsphere; std::向量 假设我创建了树并初始化了它。 现在,我如何在 openCL 中将节点向量移动到 GPU? struct BVHNode { BoundingBox bbox; BoundingSphere bsphere; std::vector<int> obj_triangles; // Store triangle indices that is inside node's volume int parentIndex; // Index of the parent node (-1 for root) int level; std::vector<int> childrenIndices; // Indices of the child nodes } class BVHTree { public: std::vector<BVHNode> nodes; int maxDepth; int nodeSize; } I tried to move like this size_t dataSize = bvhTree.nodes.size() * sizeof(BVHNode); cl::Buffer d_BVHtree_buf(context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, dataSize, BVHTree.nodes.data()); but it didn't work. GPU 既不支持函数递归,也不支持类,并且内存带宽对于 AoS 来说非常差(无合并)。 将树形数据结构扁平化为数组布局结构。您可能需要限制树深度并添加填充节点,以便数据索引规则间隔。或者,您可以使用间接寻址,这意味着添加一个额外的数组,其中包含节点的内存位置;这可以节省内存容量,但会破坏内存合并。您可以将固定深度递归作为函数调用的循环或链进行。

回答 1 投票 0

在执行完成之前将参数传递给 OpenCL 内核

我有以下关于执行 OpenCL 内核的问题。令 kernel 为某个 OpenCL 内核。我想用不同的参数执行它两次。 我可以在调用后为此内核设置新参数吗...

回答 1 投票 0

使用 Intel(R)Xeon(R)Gold 6240 CPU 的 CL_DEVICE_NOT_AVAILABLE

我在调试 openCL exe 时收到错误 CL_DEVICE_NOT_AVAILABLE。CPU 是 Intel(R)Xeon(R)Gold 6240 [email protected](32 处理器),并且我已经安装了 cl_runtime_14.2_x86_setup.msi。有吗

回答 1 投票 0

在问题空间上启动单个内核与在较小的问题空间上多次启动相同的内核

最近我被要求在我的公司维护一个旧的图像处理项目(5年) 它使用 openCL。 有一段代码的工作原理如下 **如果(oneKernelFlag == true) 启动游戏...

回答 1 投票 0

是否可以将工作分配给每个 GPU 线程,而不是将工作分配给一组 GPU 线程?

我的标题的意思是,我已经实现了一个光线追踪程序。在程序中,由于内存问题,我将数组分成了块。追踪每块光线后,我将发送新的

回答 1 投票 0

如何让 CUDA 流等待尚未安排的工作? (即类似用户事件的模式)

我想在 CUDA 流上做一些工作,比如内核 K,这取决于之前需要在 CPU 上完成的工作。 CPU工作的具体细节我并不知道...

回答 3 投票 0

CL_OUT_OF_HOST_MEMORY clBuildProgram

我有这段代码(Java / LWJGL)来创建我的 OpenCL 程序。 尝试 { CL.create(); } catch (LWJGLException e1) { e1.printStackTrace(); } 平台 = CLPlatform.getPlatforms().get(0); 设备 =

回答 1 投票 0

需要将图像坐标镜像到边界之外的功能

我正在对维度图像执行 NxN 图像卷积 w 和 h,其中 N 远小于 w 或 h。给定一个坐标 alpha,我想计算一个新的坐标 safe_alpha ......

回答 2 投票 0

OpenCL 1.2 读取/写入图像数据

我正在使用标志 CL_MEM_READ_WRITE 在主机上创建一个 Image2d 对象。该图像是一个内核的输出,我希望将其用作另一个内核的输入。我也在用

回答 2 投票 0

OpenCL 16 位浮点数

如何将 16 位浮点数(cl half)传递到 .cl 文件中的 OpenCL 内核? 我的 .cl 文件中有: __kernel void func(__global half* a, __global half* b, __global half* res){ int i = get_global_id(0)...

回答 1 投票 0

Cytoscape 如何选择特定的GPU卡?英伟达优于英特尔

我的电脑有两张卡:一张 Intel 和一张 NVIDIA。尽管我在 Cytoscape Desktop OpenCl 首选项中选择了 NVIDIA 卡,但一切都在 Intel 卡上运行。 我怎样才能强制它使用 NVIDIA o...

回答 1 投票 0

内核调用的 OpenCL 开销

我想测量 OpenCL 内核在循环中的执行时间。当我使用 clGetEventProfilingInfo() 测量入队、提交和启动内核的时间时,我遇到了一大堆...

回答 1 投票 0

Windows 中使用 Radeon Pro VII 的 GPGPU

我从问题开始,以防有人可以在不浏览整篇文章的情况下说些什么: 在 Windows 中开始使用 C++ 进行 Radeon Pro VII 编程的最简单方法是什么? 对于任何...

回答 1 投票 0

OpenCL 在尝试读取内核输出时永远挂起

这是 OpenCL 主机在微不足道的内核结果中耗尽内存的后续结果,在应用更正并出现另一个错误后,我发现我的程序在 EnqueueReadBuffer 中挂起......

回答 1 投票 0

使用 CUDA 计算数百个小矩阵的特征值/特征向量

我有一个关于使用 CUDA 对数百个小矩阵进行特征分解的问题。 我需要计算数百个(例如 500 个)小(64×64)实对称的特征值和特征向量

回答 2 投票 0

有关为 Android 设备构建 CLBlast 和 OpenCL 的一些问题

我在做什么 我正在使用 JNI 编写 Android 应用程序,并且想使用 CLBlast 加速 C++ 代码。 背景 我已阅读 https://github.com/CNugteren/CLBlast 中的 Android 指南,并且知道我必须这样做

回答 1 投票 0

计算单元、SMX、CUDA 核心等之间有什么关系?

我对这些术语很困惑...我知道 nVidia GPU 有一些流式多处理器 (SMX),每个处理器由多个 CUDA 核心(流式处理器,SP)组成。然而...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.