gpt4 book ai didi

cuda - Nvidia Hyper Q 和 Nvidia Streams 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 17:59:40 30 4
gpt4 key购买 nike

我一直认为 Hyper-Q 技术不过是 GPU 中的流。后来我发现我错了(是吗?)。所以我读了一些关于 Hyper-Q 的书,却更加困惑了。
我正在浏览一篇文章,它有以下两个陈述:

A. Hyper-Q 是一种灵活的解决方案,它允许从多个 CUDA 流、多个消息传递接口(interface) (MPI) 进程,甚至一个进程中的多个线程进行单独的连接

B. Hyper-Q 增加了主机和 GK110 GPU 之间的连接总数(工作队列),允许 32 个同时进行的、硬件管理的连接(与 Fermi 提供的单个连接相比)

在上述几点中, B点表示可以从主机创建多个连接到单个 GPU。这是否意味着我可以通过不同的应用程序在一个简单的 GPU 上创建多个上下文?这是否意味着我必须在不同的流上执行所有应用程序?如果我的所有连接都消耗内存和计算资源,谁来管理资源(内存/核心)调度?

最佳答案

将 HyperQ 视为设备端硬件中实现的流。

在 HyperQ 到来之前,例如在 Fermi 上,来自所有流的命令(内核​​启动、内存传输等)由主机上的驱动程序放置在单个工作队列中。这意味着命令不能相互超越,你必须是 careful issuing them in the right order on the host以达到最佳重叠。

在 GK110 GPU 及更高版本的 HyperQ 设备上,设备上有(至少)32 个工作队列。这意味着来自不同队列的命令可以相对于彼此重新排序,直到它们开始执行。因此,上面链接的示例中的两个排序都导致 GK110 设备上有很好的重叠。

这对于多线程主机代码尤其重要,在这些代码中,如果没有线程之间的额外同步,您将无法控制顺序。

请注意,在 32 个硬件队列中,默认情况下仅使用 8 个来节省资源。设置CUDA_​DEVICE_​MAX_​CONNECTIONS environment variable如果您需要更多,可以选择更高的值。

关于cuda - Nvidia Hyper Q 和 Nvidia Streams 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56249742/

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