错误 C4996 'cudaThreadSynchronize': 被声明为已否决 darknet 问题解决

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C4996    'cudaThreadSynchronize': 被声明为已否决    darknet    D:\my_yolov3\darknet-master\darknet-master\src\gemm.c    382    

查找知道 cudaThreadSynchronize()在cuda10.0以后被弃用了。

可以用 cudaDeviceSynchronize() 来代替

函数解释:

cudaDeviceSynchronize() 会阻塞当前程序的执行,直到所有任务都处理完毕(这里的任务其实就是指的是所有的线程都已经执行完了kernel function)。

cudaThreadSynchronize()的功能和cudaDeviceSynchronize()基本上一样,这个函数在新版本的cuda中已经被“废弃”了,不推荐使用,如果程序中真的需要做同步操作,推荐使用cudaDeviceSynchronize()

cudaStreamSynchronize()和上面的两个函数类似,这个函数带有一个参数,cuda流ID,它只阻塞那些cuda流ID等于参数中指定ID的那些cuda例程,对于那些流ID不等的例程,还是异步执行的。

你可能感兴趣的:(错误 C4996 'cudaThreadSynchronize': 被声明为已否决 darknet 问题解决)