gpt4 book ai didi

opencl - 将 OpenCL 用于多个设备(多个 GPU)

转载 作者:行者123 更新时间:2023-12-02 04:51:02 25 4
gpt4 key购买 nike

您好 StackOverflow 用户,

我有这个问题:我有一个非常大的图像,我想处理它。我的第一个想法是将大图像划分为几个子图像,然后将这些子图像发送到不同的 GPU。我不使用图像对象,因为我不使用 RGB 值,但我只使用亮度值来处理图像。

我的问题是:

  1. 我可以为每台设备使用一个包含多个命令队列context 吗?或者我应该为每个设备使用一个 context 和一个 commandqueue 吗?
  2. 谁能给我一个例子或想法,我如何动态更改 inputMem-Data(子图像数据)以设置内核参数以发送到每个设备? (我只知道如何发送相同的输入数据)
  3. 例如,如果我有比 GPU 数量更多的子图像,我该如何将子图像分配给 GPU?
  4. 或者另一种更聪明的方法?

我会很感激每一个帮助和想法。非常感谢。

最佳答案

  1. 使用 1 个上下文和多个队列。简单的方法是每个设备一个队列。
  2. 为每个设备创建 1 个程序和一个内核(从同一个程序创建)。然后创建不同的缓冲区(每个设备一个)并为每个内核设置每个缓冲区。现在您有不同的内核,您可以使用不同的参数将它们并行排列。
  3. 要分发作业,只需使用事件系统即可。检查 GPU 是否为空并在那里排队等待下一个作业。

我可以提供更详细的代码示例,但作为一般草图应该是遵循的方式。

关于opencl - 将 OpenCL 用于多个设备(多个 GPU),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855149/

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