選擇適用的GPU
在python裡面要使用GPU做運算,需要去呼叫GPU操作的方法來操作目標對象。
所以,能不能支持GPU運算,和套件本身有沒有開發針對該GPU操作的模組版本,是最為相關的。
對於python常用的模組,最廣泛有提供GPU操作版本的是針對nVidia裡的CUDA 深度神經網絡 (cuDNN) – cuDNN
庫的支持。
nVidia cuDNN介紹
以下為官網的介紹
NVIDIA CUDA® 深度神經網絡庫 (
cuDNN
) 是一個 GPU 加速的深度神經網絡原語庫。cuDNN 為標準例程提供高度調整的實現,例如前向和反向卷積、池化、歸一化和激活層。全球的深度學習研究人員和框架開發人員都依賴 cuDNN 來實現高性能 GPU 加速。它使他們能夠專注於訓練神經網絡和開發軟件應用程序,而不是將時間花在低級 GPU 性能調整上。
cuDNN 可加速廣泛使用的深度學習框架,包括Caffe2
、Chainer
、Keras
、MATLAB
、MxNet
、PaddlePaddle
、PyTorch
和TensorFlow
。要訪問已將 cuDNN 集成到框架中的 NVIDIA 優化深度學習框架容器,請訪問NVIDIA GPU CLOUD以了解更多信息並開始使用。
另外,因為原本的numpy並不支持GPU,因此有提供了Cupy,其接口高度雷同於numpy
在大多數情況下,它可以用作直接替代品。要做的只是在您的 Python 代碼中用CuPy換numpy。
例如:
import cupy as cp x = cp.arange(6).reshape(2, 3).astype('f')
cupy官網: https://cupy.dev/
Intel® Distribution for Python*
有少數的模組也有提供支持Intel的另一個GPU操作函式庫,如: NumPy, SciPy, and Numba
- https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html
- Powerful Data Science Software Demands Powerful Hardware
- 可支持英特爾GPU的軟件列表
選擇適合的GPU
若希望能夠使用GPU來支持python,最重要的就是先確認你要使用哪一些函式庫,然後去尋找該函式庫所支持的GPU版本
但是以一般來說,大多都是會選用nVidia的cuDNN來做GPU版本的開發,因為他所支持的函式庫最為完整,即便numpy並不支持,也都有其他開發者開發出相似功能的函式庫作為取代
以下為cuDNN的相關介紹:https://developer.nvidia.com/cudnn
cuDNN的軟體需求
您的系統上必須安裝下列 NVIDIA® 軟體:
- NVIDIA® GPU 驅動程式:CUDA® 11.2 需要 450.80.02 以上版本。
- CUDA® Toolkit: TensorFlow 支援 CUDA® 11.2 (TensorFlow 2.5.0 以上版本)
- CUDA® Toolkit 隨附 CUPTI。
- cuDNN SDK 8.1.0 (cuDNN 版本)。
- (選用) TensorRT 6.0 可改善某些模型的推論延遲情況和總處理量。
更多資訊請見:https://www.tensorflow.org/install/gpu?hl=zh-tw#hardware_requirements