gpt4 book ai didi

gpu - GNU 并行和 GPU?

转载 作者:行者123 更新时间:2023-12-02 03:20:27 26 4
gpt4 key购买 nike

我有兴趣让 GNU Parallel 在 GPU 上运行一些数值计算任务。一般来说,这是我的初步方法:

  1. 编写任务以使用 OpenCL 或其他一些 GPU 接口(interface)库
  2. 在任务列表上调用 GNU 并行(我不确定是否需要此步骤)

这提出了以下问题:

  1. 我的方法/用例是否受益于 GNU Parallel 的使用(即我是否应该在这里使用它)?
  2. GNU Parallel 是否提供内置机制来运行任务在 GPU 上并行?
  3. 如果是这样,我该如何配置 GNU Parallel 来做这个?

最佳答案

现代CPU有多个核心,这意味着它们可以同时运行不同的指令;因此,当核心 1 运行 MUL 时,核心 2 可能正在运行 ADD。这也称为 MIMD - 多指令、多数据。

然而,GPU 无法同时运行不同的指令。他们擅长对大量数据运行相同的指令; SIMD - 单指令,多数据。

现代 GPU 有多个内核,每个内核都是 SIMD。

那么 GNU Parallel 在这个组合中适合什么位置呢?

GNU Parallel 启动程序。如果您的程序使用 GPU 并且您的系统上只有一个 GPU 核心,那么 GNU Parallel 将没有多大意义。但是,如果您的系统上有 4 个 GPU 核心,那么让这 4 个核心同时运行就很有意义。因此,如果您的程序读取变量 CUDA_​VISIBLE_​DEVICES 来决定在哪个 GPU 核心上运行,您可以执行以下操作:

seq 10000 | parallel -j4 CUDA_VISIBLE_DEVICES='$(({%} - 1))' compute {}

关于gpu - GNU 并行和 GPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com