使用Numba進行GPU加速非常簡單。首先,確保你已經安裝了Numba庫。如果沒有安裝,可以使用以下命令進行安裝:
pip install numba
接下來,你需要使用@cuda.jit裝飾器將你的Python函數轉換為GPU內核。這是一個簡單的例子:
from numba import cuda
@cuda.jit
def add_arrays(A, B, C):
i = cuda.grid(1)
if i < len(A):
C[i] = A[i] + B[i]
在這個例子中,我們定義了一個名為add_arrays的函數,它接受三個數組作為參數:A、B和C。我們使用@cuda.jit裝飾器將其轉換為GPU內核。
接下來,我們需要創建一個CUDA流和一個內核執行配置。這是一個例子:
from numba import cuda
stream = cuda.Stream()
config = cuda.get_current_device().create_execution_config(block_size=(16, 16, 1))
在這個例子中,我們創建了一個CUDA流和一個內核執行配置。block_size參數定義了內核執行時的每個線程塊的大小。
現在我們可以將數據傳輸到GPU并執行內核了:
from numba import cuda
import numpy as np
A = np.array([1, 2, 3, 4])
B = np.array([5, 6, 7, 8])
C = np.empty_like(A)
add_arrays[config, stream](A, B, C)
stream.synchronize()
print(C)
在這個例子中,我們創建了三個NumPy數組A、B和C,并將它們傳輸到GPU。然后我們使用add_arrays內核執行配置和CUDA流調用內核,并將結果傳輸回CPU。最后,我們打印結果數組C。
這就是使用Numba進行GPU加速的基本方法。你可以根據自己的需求調整內核函數和數據傳輸。