gpt4 book ai didi

python - 带有 Flask 的 pyCUDA 给出 pycuda._driver.LogicError : cuModuleLoadDataEx

转载 作者:太空狗 更新时间:2023-10-29 18:08:01 30 4
gpt4 key购买 nike

我想在 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 但在启动服务器并在 执行 POST 请求时website/bundle 我在 Flask 控制台上收到以下错误:

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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com