gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:58:09 24 4
gpt4 key购买 nike

由于 GPU 上的一些初始化工作,第一个 cudaMalloc 调用很慢(如 0.2 秒)。有没有只做初始化的函数,这样我就可以分开时间了? cudaSetDevice 似乎将时间减少到 0.15 秒,但仍然没有消除所有初始化开销。

最佳答案

调用

cudaFree(0);

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

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

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

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