使用PyCUDA后没有输出

Pan*_*al. 14 python parallel-processing python-3.x pycuda

我已经安装PyCUDA使用pip.我试过两台电脑.
一个全新安装,Python 3.7.1一个安装Python 3.6.5.

使用后一切都失败PuCUDA,没有错误消息.

最小的例子是这样的:

import sys
import pycuda.driver as cuda
import pycuda.autoinit # <-- Comment in order for `print` to work

if __name__ == '__main__':
    print('Print works')
    sys.stdout.write("Sys print works")
Run Code Online (Sandbox Code Playgroud)

除非我删除,否则不会打印任何内容pycuda.autoinit.

另一个例子是使用printf:

import pycuda.driver as cuda
import pycuda.autoinit
from pycuda.compiler import SourceModule

if __name__ == '__main__':
    mod = SourceModule("""
        #include <stdio.h>

        __global__ void test() {
          printf("I am %d.%d\\n", threadIdx.x, threadIdx.y);
        }
        """)

    func = mod.get_function("test")
    func(block=(4, 4, 1))
Run Code Online (Sandbox Code Playgroud)

这也不会返回任何输出.

我认为CUDA失败但没有报道.

我的配置:

+--------------------+--------------------+
|        PC1         |        PC2         |
+--------------------+--------------------+
| Python 3.6.5       | Python 3.7.1       |
| Windows 10         | Windows 10         |
| Cuda toolkit 9     | Cuda toolkit 10    |
| GeForce GTX 1050   | GeForce GTX 1080   |
| Visual Studio 2015 | Visual Studio 2015 |
+--------------------+--------------------+
Run Code Online (Sandbox Code Playgroud)

驱动程序:

GeForce Game Ready Driver
Version        : 418.91 WHQL
Release Date   : Wed Feb 13, 2019
Run Code Online (Sandbox Code Playgroud)

我注意到这是一个常见的问题,但没有解决方案.

小智 1

我不确定这是否可以帮助您,但通过重新安装cuda(使用anoconda)解决了类似的问题。

如果您需要它,您可以通过conda控制台安装它

conda install -c anaconda cudatoolkit

并检查它是否运行良好,

类型numba -s

希望这可以帮助