前置作業
使用 GPU 來加速 Python 程式的運算需要:
- 電腦必須要有適合的 GPU 及相關驅動程式。
- 必須安裝支援 GPU 的 Python 程式庫,例如 TensorFlow、PyTorch 或 CuPy。
- 在使用這些程式庫時將運算指定給 GPU 執行
安裝Tensorflow GPU版本的函式庫
在上面幾步驟都安裝好之後,要確認自己所使用的函式庫是支援GPU的,一般來說,所有的函式庫都會分為【支持GPU版本】或者【針對CPU版本】。
所以要先確定自己所下載的函式庫是支持GPU的。如果你的環境之前已經安裝過CPU版本的該函式庫,建議新增另一個虛擬環境,讓新專案的函式庫能夠完全與CPU版本的程式分開
這邊是使用pip安裝tensorflow套件的流程:https://www.tensorflow.org/install/pip?hl=zh-tw
在最下方有一個列表https://www.tensorflow.org/install/pip?hl=zh-tw#package-location
若是想要直接確定要下載的版本,可從上面的列表下載.whl檔案,然後用以下指令套用
pip install tensorflow-apu-0.0.1-cp36-cp36m-linux_x86_64.whl
檢查有沒有Tensorflow 可用的GPU
可使用下面的程式來檢查
import tensorflow as tf print("TensorFlow version:", tf.__version__) print("Is there a GPU available: "), print(tf.config.list_physical_devices("GPU")) print("Is the Tensor on GPU #0: "), print(x.device.endswith('GPU:0'))
要注意的是,即使你的GPU和驅動程式都正確,但若是安裝到錯誤的函式庫版本(如CPU版本的tensorflow)
這邊仍然會顯示沒有可以使用的GPU
因此,要確認所安裝的函式庫版本是否正確
檢查並設定使用GPU
要在 TensorFlow 中使用 GPU,你需要先檢查有沒有可用的 GPU,並設定 TensorFlow 使用 GPU:
import tensorflow as tf # 檢查有沒有可用的 GPU print(tf.config.list_physical_devices('GPU')) # 設定 TensorFlow 使用 GPU tf.config.set_visible_devices(tf.config.list_physical_devices('GPU')[0], 'GPU')
要在 PyTorch 中使用 GPU,你可以使用 torch.cuda.is_available() 來檢查有沒有可用的 GPU,並使用 .to(‘cuda’) 將張量放到 GPU 上運算:
import torch # 檢查有沒有可用的 GPU print(torch.cuda.is_available()) # 將張量放到 GPU 上運算 x = torch.ones((2, 2), device='cuda') print(x)
在 CuPy 中使用 GPU 也類似,你可以使用 cp.cuda.Device().id 來檢查有沒有可用的 GPU,並使用 .to_gpu() 將陣列放到 GPU 上運算:
import cupy as cp # 檢查有沒有可用的 GPU print(cp.cuda.Device().id) # 將陣列放到 GPU 上運算 x = cp.ones((2, 2)) x = x.to_gpu() print(x)