gpt4 book ai didi

并发,4个CUDA应用竞争获取GPU资源

转载 作者:太空狗 更新时间:2023-10-29 17:24:38 26 4
gpt4 key购买 nike

如果有四个并发的 CUDA 应用程序在一个 GPU 中竞争资源会发生什么这样他们就可以将工作卸载到图形卡上了? Cuda Programming Guide 3.1 提到那里 某些方法是异步的:

  • 内核启动
  • 设备设备内存拷贝
  • 64 KB 或更小内存块的主机设备内存副本
  • 由后缀为 Async 的函数执行的内存复制
  • 内存集函数调用

它还提到具有计算能力 2.0 的设备能够同时执行多个内核,只要内核属于同一上下文即可。

这种类型的并发是否只适用于单个 cuda 应用程序中的,但当存在请求 GPU 资源的完全不同的应用程序时就不可能了?

这是否意味着并发支持仅在 1 个应用程序(上下文???)需要等到 GPU 被其他应用程序释放? (即,从 app4 启动的内核会等到 app1 的内核启动完成..)

如果是这样,这 4 个应用程序如何访问 GPU 资源而不需要等待很长时间?

最佳答案

如您所说,在任何给定时间只有一个“上下文”可以占用每个引擎。这意味着其中一个复制引擎可以为应用程序 A 提供 memcpy,另一个为应用程序 B 提供 memcpy,并且计算引擎可以为应用程序 C 执行内核(例如)。

一个应用程序实际上可以有多个上下文,但没有两个应用程序可以共享相同的上下文(尽管一个应用程序中的线程可以共享一个上下文)。

任何安排工作在 GPU 上运行的应用程序(即 memcpy 或内核启动)都可以异步安排工作,这样应用程序就可以自由地继续并在 GPU 上做一些其他工作CPU,它可以安排任意数量的任务在 GPU 上运行。

请注意,也可以将 GPU 置于独占模式,这样在任何时候只有一个上下文可以在 GPU 上运行(即,所有资源都保留给上下文直到上下文被销毁)。默认为共享模式

关于并发,4个CUDA应用竞争获取GPU资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3709526/

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