![](/img/trans.png)
[英]CUDA Visual Profiler 5.0 doesn't generate timeline, Eror with Cudadevicereset()
[英]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.