gpt4 book ai didi

cuda - 除了第一个 cudaMalloc 调用之外,还有什么特定的函数可以初始化 GPU?

转载 作者:行者123 更新时间:2023-12-03 01:39:23 24 4
gpt4 key购买 nike

由于 GPU 上的一些初始化工作,第一个 cudaMalloc 调用很慢(例如 0.2 秒)。是否有任何函数只进行初始化,以便我可以分离时间? cudaSetDevice 似乎将时间减少到 0.15 秒,但仍然没有消除所有初始化开销。

最佳答案

调用

cudaFree(0);

是在 CUDA 运行时强制建立惰性上下文的规范方法。您无法减少开销,这是驱动程序、运行时和操作系统延迟的函数。但是上面的调用可以让您控制在程序执行期间如何/何时发生这些开销。

在 2015 年编辑,添加运行时 API 中上下文初始化的启发式方法随着时间的推移发生了微妙的变化,因此 cudaSetDevice 现在建立了一个上下文,因此 初始化上下文并不明确需要 cudaFree() 调用,您可以使用 cudaSetDevice 代替。另请注意,首次内核启动时仍会产生一些设置时间,而在此之前情况并非如此。对于内核计时,最好在启动内核之前首先包含一个预热调用,您将有时间消除此设置延迟。看来各种分析工具内置了足够的粒度来避免这种情况,而无需任何额外的 API 调用或内核调用。

关于cuda - 除了第一个 cudaMalloc 调用之外,还有什么特定的函数可以初始化 GPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166799/

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