CUDAを使ったGPU処理でnumbaを使って線形システムを解こうとしています。numbaとCUDAでPythonを使った線形システムを解く
すべての関連パッケージをインストールしてテストしたので、GPUとCUDAなどが正しく設定されているようです。
私のコードは次のとおりです。
import numpy as np
import time
from numba import vectorize, cuda
@vectorize(['float64(float64, float64)'], target='cuda')
def solver(A, b):
return np.linalg.solve(A, b)
def main():
A = np.random.rand(100, 100).astype(np.float64)
b = np.random.rand(100, 1).astype(np.float64)
start = time.time()
C = solver(A, b)
vector_add_time = time.time() - start
print("Took " + str(vector_add_time) + " seconds to solve")
if __name__ == '__main__':
main()
は@vectorize...
行をコメントし、コードが細かい実行されます。
raise TypingError(msg)
numba.errors.TypingError: Failed at nopython (nopython frontend)
np.linalg.solve() only supported for array types
私は問題はnumpy.linalg.solve
は、データタイプを受け入れないことであると仮定します。私はnumbaとCUDAでそれを実行しようとする場合しかし、私は彼が最も関連性のいずれかがあると思い、エラーの長いリストを取得しますクダが要求する。
これを前提にして正しいですか?動作する他のデータ型はありますか?
例の問題では、同じデータ型が関数に渡されるので、numpy.linalgに問題があると思います。
ありがとうございました。私はちょうど「おもちゃ」の問題を使って、クーダワークフローを学び始めました。私は良い例を選んでいないと思います。 – Mike