#概要
pyCUDAについて学習しようと思い、とりあえずネットに転がっていたコードを手直しして動かしてみたのですが、以下のようになり動作しません。調べてもみたのですが自分と同じ状態になった場合の対処法などを見つけることができませんでしたので、ここで質問させていただきます。
Power
1PS E:(ユーザ名)\Documents\programs\python\pycuda_prac> python .\pycuda_prac.py 2Traceback (most recent call last): 3 File ".\pycuda_prac.py", line 17, in <module> 4 """) 5 File "C:\Users(ユーザ名)\AppData\Local\Programs\Python\Python36\lib\site-packages\pycuda\compiler.py", line 294, in __init__ 6 self.module = module_from_buffer(cubin) 7pycuda._driver.LogicError: cuModuleLoadDataEx failed: initialization error -
コード(pycuda_prac.py)をいかに示します。
Python
1import pycuda 2import pycuda.driver as cuda 3from pycuda.compiler import SourceModule 4import numpy as np 5import cv2 6 7mod = SourceModule(""" 8__global__ void reverse(unsigned char *image, int width) 9{ 10 int pos_y = threadIdx.y + blockDim.y * blockIdx.y; 11 int pos_x = threadIdx.x + blockDim.x * blockIdx.x; 12 13 int idx = pos_y * width + pos_x; 14 15 image[idx] = 255 - image[idx]; 16} 17""") 18 19img = cv2.imread('Lenna.jpg') 20height, width, _ = img.shape 21img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 22 23cuda_kernel = mod.get_function('reverse') 24 25blocks = int(height * width / (16 * 16)) 26block = (16, 16, 1) 27grid = (blocks, 1, 1) 28 29cuda_kernel(cuda.InOut(img_gray), 30 np.int32(width), 31 block=block, grid=grid) 32 33cv2.imwrite('Lennagray.bmp', img_gray)
#動作環境
Windows 10
GPU: GTX980
CUDA: ver9.2
Python: python3.6.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。