GPU計算也稱圖形處理單元上的通用計算,它是支持許多現代的機器學習算法,這些算法以前由于運行時間慢而無法實現。通過利用GPU的并行計算功能,相對于傳統的CPU計算,可以顯著減少計算時間。CUDA由NVIDIA免費開發和提供,它是并行計算運行時和軟件API,供開發人員使用,以支持大多數領先的機器學習框架。相信通過上述介紹,對于GPU計算是什么大家已經清楚,但是還有很多人想了解,用于機器學習的GPU計算的工作原理是什么樣呢?在回答這個問題之前,先讓我們了解一下CUDA平臺和API。
通過使用CUDA平臺和API,最初為計算機圖形渲染開發的并行計算管道現在可以被軟件開發人員用于在NVIDIA GPU上進行通用計算。與傳統的CPU相比,GPU硬件具有并行體系結構和海量內存帶寬,能夠更快地完成計算密集型任務的數量級。例如,由于GPU計算的優勢,現在可以在數小時或數天內完成在CPU上花費數年的深度神經網絡訓練。
但是為什么要使用GPU?因為GPU具有數千個計算核心,而CPU僅具有多達2、4、8、16、32個左右的核心。代碼的并行化級別限于一個人的計算機上的內核數。此外,許多GPU包括專門用于機器學習的各種數學計算的內核,例如用于執行矩陣乘法累加的NVIDIA張量內核。
為了在NVIDIA GPU上執行代碼,可以使用CUDA C / C ++,FORTAN或其他接口將傳統的串行代碼重寫為并行代碼,然后對其進行編譯以利用可用的GPU硬件的特定計算功能。數據集分布在不同的工作程序處理器上,然后為每個工作程序分配任務,并在計算管道的末尾收集結果。Tensorflow,Pytorch,MXNet和Chainer等許多流行的深度學習框架都包括CUDA支持,并允許用戶利用GPU計算的優勢而無需編寫任何CUDA代碼。
但是,并非所有任務都可以由GPU加速。任務必須能夠并行化才能在GPU上工作。這些問題被稱為固有的串行問題。幸運的是,機器學習算法中的許多重要計算。例如人工神經網絡都可以并行化。例如,在卷積神經網絡中,較慢的計算步驟之一是滑動窗口必須“滑動”穿過圖像并將卷積核應用于圖像的每個部分的過程。在這種情況下,每個計算步驟都獨立于其先前的步驟。這使我們能夠輕松地并行化代碼,以便每個處理器都可以執行計算而不會中斷其他處理器。
帶有Modzy的GPU和CUDA計算
該Modzy平臺提供了對NVIDIA GPU的支持CUDA能夠運行。我們所有的模型都可以在GPU上運行,也可以在多個GPU上運行,與CPU相比,運行時性能更高。
這對您意味著什么
如果您正在使用Modzy庫中基于GPU的模型,那么您已經可以利用運行時改進。如果要創建要部署到Modzy平臺中的新模型,則可以利用隨附的CUDA和GPU支持來增強其性能。
上述就是關于用于機器學習的GPU計算是怎樣工作的全部內容,想了解更多關于機器學習的相關信息,請繼續關注中培偉業。