繁体   English   中英

在CUDA中,Nsight在时间轴上不显示cuInit(0)调用

[英]In CUDA, Nsight doesn't show cuInit(0) call in timeline

我的程序中有以下与纯驱动程序API兼容的代码,

cuInit(0)

Nvidia Visual Profiler 8.0不在时间轴图上显示它。

我可以不定期调用一次,还是可以像唤醒计算机一样频繁地调用它,还是应该在每个进程中仅调用一次最大值(对于应用程序,它需要类似单例或全局同步的初始化程序包装器)?

我是否应该总是希望每次通话都浪费很少的时间?

cuda驱动程序API是否具有内部计数器,以便如果以某种方式卸载驱动程序API,它会自动重新加载它,因此我以后不必再次运行它?

如果此C ++是DLL并从C#,Java,Phyton中调用,该怎么办? 其他第三方库可以在我的应用程序之前对其进行初始化吗? 我知道GPU是否在进程之间进行上下文切换(每个进程的驱动程序API是否独立吗?),但是此初始化命令是否会偶然阻止其他人的工作(例如,在N个其他用户也运行CUDA的云计算机中)?

在使用任何其他cuda驱动程序API调用之前 ,应每个应用程序一次调用cuInit()

我认为它没有显示在时间表中的事实是预期的行为。

cuInit()相关的时间成本会有所增加。 我不会称其为“琐碎的”。 它会根据各种系统配置参数而有所不同。

没有驱动程序API“卸载”的概念。

如果您在库中使用任何驱动程序API调用,则此调用也必须在库代码中位于它们之前。

我认为您可能会将此与CUDA 上下文混淆。 cuInit()不会创建上下文(忽略主要上下文)。 如果创建了上下文,则可以将该上下文传递给其他例程,即使它们位于动态链接的库中也是如此。

该调用与在另一个进程中运行的CUDA无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM