GPU并行编程C/C++ [关闭]

2023-12-30

我想学习 C/C++ 中的 GPU 并行编程。我应该使用什么库和编译器。如果它们是开源的,那就太好了。 注意:我对 openmp 和 mpi 有一些练习。虽然它仅适用于cpu并行编程。


我就靠你的GPU了。

OpenCL

它是开源的,适用于 Nvidia 和 AMD 卡。

https://www.khronos.org/opencl/ https://www.khronos.org/opencl/

CUDA

用于并行编程的专有 NVidia 解决方案。针对他们的卡进行了优化。

http://www.nvidia.com/object/cuda_home_new.html http://www.nvidia.com/object/cuda_home_new.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPU并行编程C/C++ [关闭] 的相关文章

  • CUDA 添加矩阵的行

    我试图将 4800x9600 矩阵的行加在一起 得到一个 1x9600 的矩阵 我所做的是将 4800x9600 分成 9 600 个矩阵 每个矩阵长度为 4800 然后我对 4800 个元素进行缩减 问题是 这真的很慢 有人有什么建议吗
  • 如何并行运行一组函数并等待完成结果?

    我需要同时异步运行一组繁重的函数并将结果填充到列表中 这是伪代码 List
  • C# 并行与并行线程代码性能

    我一直在测试 System Threading Parallel 与线程的性能 我很惊讶地发现并行比线程花费更长的时间来完成任务 我确信这是由于我对并行的了解有限 我刚刚开始阅读 我想我会分享一些片段 如果有人可以向我指出并行代码比线程代码
  • “程序顺序”实际上是什么意思?

    据我所知 莱斯利 兰波特 Leslie Lamport 声明如下 任何执行的结果都相同 就好像所有处理器的操作都按某种顺序执行 并且每个单独处理器的操作都按此顺序出现在由其程序指定的顺序 取自 Leslie Lamport 如何制作正确执行
  • 如何简化 Step Functions 的复杂并行分支相互依赖关系

    我的任务是将依赖节点列表转换为 AWS Step Functions AWS Step Function 定义允许并行分支甚至嵌套到多个深度的分支 不幸的是 它不支持分支中任务之间的依赖关系 因此强制您在两个结果可用于步骤函数中的后续任务之
  • 使用 SqlBulkCopy 和 Azure 并行批量插入

    我在云上有一个带有 sql azure 数据库的 azure 应用程序 我有一个辅助角色 需要对文件 最多约 3000 万行 进行解析 处理 因此我无法直接使用 BCP 或 SSIS 我目前正在使用 SqlBulkCopy 但这似乎太慢了
  • Tensorflow新Op CUDA内核内存管理

    我已经使用 GPU CUDA 内核在 Tensorflow 中实现了一个相当复杂的新 Op 该操作需要大量动态内存分配 这些变量不是张量 并且在操作完成后被释放 更具体地说 它涉及使用哈希表 现在我正在使用cudaMalloc and cu
  • OpenMP 与浮点范围并行

    我有以下程序 int main double sum 0 pragma omp parallel for reduction sum for double x 0 x lt 10 x 0 1 sum x x 当我编译它时 我收到错误inva
  • 了解流式多处理器 (SM) 和流式处理器 (SP)

    我正在尝试了解 GPU 的基本架构 我已经阅读了很多材料 包括这个非常好的答案 https stackoverflow com a 2213744 2386113 但我仍然很困惑 无法得到一个好的图片 我的理解 GPU 包含两个或多个流式多
  • Java 8 Stream - 并行执行 - 不同的结果 - 为什么?

    假设我有一个List
  • 并发集合和独特元素

    我有一个并发BlockingCollection具有重复的元素 如何修改它以添加或获取不同的元素 默认后备存储BlockingCollection is a ConcurrentQueue 正如其他人指出的那样 使用它来添加不同的项目相当困
  • goto 指令对 CUDA 代码中扭曲内发散的影响

    对于CUDA中简单的warp内线程发散 我所知道的是SM选择一个重新收敛点 PC地址 并在两个 多个路径中执行指令 同时禁用未采用该路径的线程的执行效果 例如 在下面的代码中 if threadIdx x lt 16 A do someth
  • Google Colab 显示忙碌

    我昨天在 google colab 上进行了训练过程 现在 即使重新启动运行时并中断执行后 Google Colab仍显示繁忙 我想停止当前的执行 请帮忙 从运行时菜单中选择 重新启动运行时 就足够了 如果由于某种原因不起作用 您可以通过从
  • Mxnet - 缓慢的数组复制到 GPU

    我的问题 我应该如何在 mxnet 中执行快速矩阵乘法 我的具体问题 数组复制到 GPU 的速度很慢 对此我们能做些什么呢 我创建随机数组 将它们复制到上下文中 然后相乘 import mxnet as mx import mxnet nd
  • 如何使用Slurm访问集群中不同节点上的GPU?

    我可以访问由 Slurm 运行的集群 其中每个节点都有 4 个 GPU 我有一个需要 8 个 GPU 的代码 那么问题是 如何在每个节点只有 4 个 GPU 的集群上请求 8 个 GPU 这就是我尝试通过以下方式提交的工作sbatch bi
  • Powershell 3.0 - 工作流程 - 限制并行执行数量

    我正在从模板克隆 ESX 服务器上的虚拟机 简化的代码如下所示 Workflow Create VM List 1 500 foreach parallel Elem in List Create VM Configure created
  • 我可以将 CUDA 与非 NVIDIA GPU 一起使用吗? [复制]

    这个问题在这里已经有答案了 我正在寻找一种在没有 NVIDIA GPU 的系统上运行 CUDA 程序的方法 我尝试安装 MCUDA 和 gpuOcelot 但安装似乎遇到一些问题 我已经浏览了中给出的答案如何使用软件实现在没有 GPU 的情
  • 指令级并行性探索

    我只是想知道是否有任何有用的工具可以让我在某些算法中利用指令级并行性 更具体地说 我有一个子集 来自多媒体领域的算法 我想知道利用 ILP 的最佳方法是什么 在这个算法中 所有这些算法都是用 C 语言实现的 所以理想情况下 我将这些算法作为
  • 工作人员未正确返回的结果 - 雪 - 调试

    我正在使用snow在 R 中封装以在 a 上执行函数SOCK具有在 Linux 操作系统上运行的多台计算机 3 的集群 我尝试用两者运行代码parLapply and clusterApply 如果工作线程级别出现任何错误 工作节点的结果将
  • 减少最大值并保存其索引

    int v 10 2 9 1 3 5 7 1 2 0 0 int maximo 0 int b 0 int i pragma omp parallel for shared v private i reduction max maximo

随机推荐