- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想在 flask
服务器上运行 pyCUDA 代码。该文件直接使用python3
正确运行,但使用flask
调用相应函数时失败。
相关代码如下:
cudaFlask.py:
import pycuda.autoinit
import pycuda.driver as drv
import numpy
from pycuda.compiler import SourceModule
def cudaTest():
mod = SourceModule("""
int x = 4;
""")
print ("done")
return
if __name__ == "__main__":
cudaTest()
server.py(只有调用函数的部分):
@app.route('/bundle', methods=['POST'])
def bundle_edges():
cudaTest()
return "success"
在运行 python cudaFlask.py
时,我得到了预期的输出 done
但在启动服务器并在 执行
我在 Flask 控制台上收到以下错误:POST
请求时website/bundle
pycuda._driver.LogicError: cuModuleLoadDataEx failed: invalid device context -
在线 mod = SourceModule...
我哪里错了?有一个similar question在那里,但尚未得到答复。
最佳答案
解决了在 flask
中延迟加载并手动创建 context
的问题(即在 PyCUDA
pycuda.autoinit
.
引用this用于在 flask
中延迟加载。
我的 views.py
文件:
import numpy as np
import pycuda.driver as cuda
from pycuda.compiler import SourceModule
def index():
cuda.init()
device = cuda.Device(0) # enter your gpu id here
ctx = device.make_context()
mod = SourceModule("""
int x = 4;
""")
ctx.pop() # very important
print ("done")
return "success"
关于python - 带有 Flask 的 pyCUDA 给出 pycuda._driver.LogicError : cuModuleLoadDataEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50601029/
我创建了一个形状为 (64, 128) 的 float32 numpy 数组,我想将它发送到 GPU。我怎么做?我的内核函数应该接受哪些参数? float** myArray? 我试过直接将数组原样发
示例代码: import pycuda.autoinit import pycuda.driver as drv import numpy from pycuda.compiler import So
我正在尝试编译一些源代码以使用我的 GPU。我为此使用pycuda。当我编译源代码时,我收到一些来自 Python 的错误: C:\Users\Dmitriy\wcm>python ws_gpu.py
我正在尝试在 PyCUDA 中初始化 2D 表面并用 NumPy 2D 数组中的值填充它。据我所知,这个想法是 打开drv.ArrayDescriptor, 使用这个描述符创建drv.Array, 使
我想在 flask 服务器上运行 pyCUDA 代码。该文件直接使用python3正确运行,但使用flask调用相应函数时失败。 相关代码如下: cudaFlask.py: import pycuda
我对 cuda 有一个奇怪的问题, 在下面的片段中, #include #define OUTPUT_SIZE 26 typedef $PRECISION REAL; extern
我在这里有一个 pycuda 程序,它从命令行读取图像并用反转的颜色保存一个版本: import pycuda.autoinit import pycuda.driver as device from
如何让 PyCuda 提取字符串数组而不是一个字符字符串?如果取消注释 C 代码中的该行,您将看到它迭代每个字符而不是每个字符串。 现在我只是想计算每个字符串的长度,但最终会将其变成一个词频计数器
我正在尝试在 Pycuda 代码中实现一个结构,但出现越界错误。我尝试遵循 this教程,但我无法让它适用于我的情况。 该问题很可能是由于指针使用不当造成的,例如该教程表明必须分配指针 memsize
我在安装了 python 2.7(32 位)和安装了 cuda 7.5 whl 的 pycuda 的 Windows 机器上。我在运行示例程序来测试 pycuda 时出错。 Traceback (mo
我这里有一个 pycuda 程序,它从命令行读取图像并保存颜色反转的版本: import pycuda.autoinit import pycuda.driver as device from pyc
足够简单 start=cuda.Event() func(args,block=blockdims) cuda.memcpy_dtoh(d,h) end=cuda.Event() dur=start.
PyCUDA,尽管有其所有缺点,通常都会提供非常好的示例/可从 wiki 下载。但我在示例或文档(或粗略的谷歌搜索)中找不到任何内容来演示 PyCUDA 将工作负载动态分配到多个设备的方法。 有人可以
我正在使用 pycuda 制作相对论光线追踪器。基本上,对于大型 2D 数组中的每个“像素”,我们必须使用 Runge Kutta 求解 6 个 ODE 系统。由于每个集成都独立于其余集成,因此应该非
我是 PyCUDA 的新手,正在浏览 PyCUDA 网站上的一些示例。我正在尝试弄清楚某些代码行背后的逻辑,如果有人解释了它背后的想法,我将不胜感激。 以下代码片段来自 PyCUDA 网站。函数定义里
应该足够简单;我确实想将一个 int 发送到 SourceModule 内核声明,其中 C 函数 __global__......(int value,.....) 随着值的声明和调用... valu
in desaturate_image redarray_gpu = cuda.mem_alloc(self.redarray.nbytes) pycuda._driver.LogicErro
在简单的 CUDA 程序中,我们可以通过包含 cuPrintf.h 来按线程打印消息,但在 PyCUDA 中执行此操作在任何地方都没有解释。如何在 PyCUDA 中做到这一点? 最佳答案 在 Comp
我正在使用 pyCUDA 进行 CUDA 编程。我需要在内核函数中使用随机数。 CURAND 库在其中不起作用(pyCUDA)。由于GPU有很多工作要做,在CPU内部生成随机数然后将它们传输到GPU是
我正在尝试将二维复数数组传递到 PyCUDA 内核中,但得到了意想不到的结果。 这是我的测试代码: import numpy as np import pycuda.driver as cuda im
我是一名优秀的程序员,十分优秀!