首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并发性,4个CUDA应用程序竞相获取GPU资源

并发性,4个CUDA应用程序竞相获取GPU资源
EN

Stack Overflow用户
提问于 2010-09-14 13:55:34
回答 1查看 1.4K关注 0票数 6

如果有四个并发的CUDA应用程序在一个GPU中竞争资源,以便将工作卸载到图形卡上,会发生什么情况?Cuda编程指南3.1提到有些方法是异步的:

launches

  • Device
  • 内核设备内存复制
  • 主机设备内存64 KB或更少的
  • 内存副本,这些拷贝由以异步
  • 内存集函数调用

F 211的函数执行

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

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

这是否意味着并发支持只在一个应用程序中可用(上下文??)而这4个应用程序只是以这样的方式并行运行:方法可能被CPU中的上下文切换所重叠,但这4个应用程序需要等到GPU被其他应用程序释放后再运行?(即从app4启动内核,直到app1内核启动完成。)

如果是这样的话,这4个应用程序如何才能访问GPU资源而不经历漫长的等待时间呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-14 14:54:04

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

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

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

请注意,还可以将GPU置于独占模式中,即在任何时候只有一个上下文可以在GPU上操作(也就是说,在上下文被销毁之前,所有资源都保留给上下文)。默认情况是共享模式

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3709526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档