python - pycuda 和 tensorflow 可以一起工作吗?
问题描述
一旦张量流被激活。即使我使用它也会使每个 cuda 代码崩溃sess.close()
......
错误消息是:
pycuda._driver.LogicError:cuFuncSetBlockShape 失败:资源句柄无效
以下代码是 pycuda 运行的简单示例 cuda 代码:
一旦我添加sess = tf.Session()
. 我的 cuda 代码崩溃了。没有sess = tf.Session()
.
import tensorflow as tf
import pycuda.autoinit
import pycuda.driver as drv
import numpy
from pycuda.compiler import SourceModule
mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
const int i = threadIdx.x;
dest[i] = a[i] * b[i];
}
""")
## tensorflow will make any other cuda code crash............
sess = tf.Session()
sess.close()
## tensorflow will make any other cuda code crash............
multiply_them = mod.get_function("multiply_them")
a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)
dest = numpy.zeros_like(a)
multiply_them(drv.Out(dest), drv.In(a), drv.In(b), block=(400,1,1), grid=(1,1))
print (dest-a*b)
print("finish")
有什么建议吗?谢谢~~~
解决方案
推荐阅读
- java - Tomcat 请求 URL
- rabbitmq - 如何在rabbitMQ上向所有订阅主题队列的消费者推送消息,并在所有消费者都收到后确认消费
- javascript - 这是什么语法 isNaN(+str!)
- python-3.x - 为什么在 python 中使用 numpy.vectorize 调用时 for 循环运行两次?
- python - 如何在某个 ID 的 pandas 列中获得第二高的值?
- ios - 在 2 个角度之间为 UIBezierPath 弧设置动画
- azure - Azure AD 中用户数据更改的通知
- javascript - 使用 Matter.js 渲染到 DOM 或 React
- firebase - 如何在创建新用户颤动的同时保持当前用户不变
- r - 有没有办法让用户输入附加到spotfire中的表格?