2011-12-26 43 views
10

一般來說,Mathematica可以自動(即不用專門爲此編寫代碼)利用GPU硬件和/或跨多個內核並行操作內置操作?更好的圖形卡或更多內核會使Mathematica更快嗎?

例如,繪製一個非常CPU密集型的情節或解決一個非常CPU密集型的公式,將升級在加速的圖形硬件結果?升級到具有更多內核的CPU會加快速度嗎? (我知道更多的內核意味着我可以解決並聯多個方程式,但我很好奇的單方程的情況下)

只是試圖讓Mathematica的是如何利用硬件的手柄。

+1

我會想象它取決於操作以及它是否利用GPU以及以何種方式。我敢說大多數複合操作都不使用GPU,因爲GPU編程與CPU編程有很大不同。例如,FFT適合GPU模型,但是一組無法通過線性代數處理的方程可能是完全不同的故事。 – 2011-12-26 20:31:20

+0

我想我問是否內置Mathematica函數使用GPU ... – nicolaskruchten 2011-12-26 20:32:49

+0

你說/暗示它..缺少一個詞? :) Mathematica formums /小冊子將是找到的地方:絕對不在這裏,除非問題是關於編寫這樣的操作。 – 2011-12-26 20:33:37

回答

11

我不會說的Mathematica自動執行GPU或Paralell CPU的計算,至少在一般。由於您需要使用並行內核來做一些事情,因此您應該初始化更多的內核和/或上傳CUDALink或OpenCLLink,並使用特定的Mathematica功能來利用CPU和/或GPU的潛力。

例如,我沒有很強大的顯卡(NVIDIA的GeForce 9400 GT),但我們可以測試CUDALink是如何工作的。首先我必須上傳CUDALink

Needs["CUDALink`"] 

我要測試大矩陣的乘法。我選擇的實數隨機矩陣5000 x 5000範圍內(-1,1)

M = RandomReal[{-1,1}, {5000, 5000}];

現在,我們可以檢查計算時間,而不GPU支持

In[4]:= AbsoluteTiming[ Dot[M,M]; ] 

    Out[4]= {26.3780000, Null} 

,並與GPU支持

In[5]:= AbsoluteTiming[ CUDADot[M, M]; ] 

Out[5]= {6.6090000, Null} 

在這種情況下,我們通過使用CUDADot而不是Dot來獲得大約4倍的性能提升。

編輯

要添加並行CPU加速度的一個例子(雙核的機器上)我選擇範圍[2^300, 2^300 +10^6]所有素數。 首先不併行:

In[139]:= AbsoluteTiming[ Select[ Range[ 2^300, 2^300 + 10^6], PrimeQ ]; ] 

Out[139]= {121.0860000, Null} 

同時使用Parallelize[expr],其評估EXPR使用自動並行

In[141]:= AbsoluteTiming[ Parallelize[ Select[ Range[ 2^300, 2^300 + 10^6], PrimeQ ] ]; ] 

Out[141]= {63.8650000, Null} 

正如人們可以預期,我們已經得到了幾乎兩倍快的評價。

7

一般無,更快的GPU不會加速正常數學計算。

您必須使用CUDA/OpenCL的支持的功能使用GPU。您可以在這裏獲得選項的概述和其使用的一些示例:CUDA and OpenCL Support

4

我不能評論太多的數學如何使用GPU(因爲我從來沒有嘗試的機會),但我不認爲它在默認情況下(i.e without you writing code specifically to exploit the GPU

增加更多的內核將有助於做它如果明確並行計算(see Parallelize and related functions)。

如果你不明確並行化,我相信仍然有某些利用多核的數值計算。我不確定哪一個,但我確實知道一些線性代數相關函數(LinearSolve,Det等)默認使用多個核心。

+0

我知道一些圖像處理操作默認情況下也會使用多個核心。 – 2011-12-26 21:51:20

+0

解決一個eigensystem(密集或稀疏)也會自動使用多個核心 – acl 2011-12-28 12:28:10

+0

@acl我在雙核心CPU上嘗試過'特徵值',但它只使用了一個核心。也許'Eigensystem'確實不過(特徵值)不(這很不尋常)?我現在無法測試。 – Szabolcs 2011-12-28 12:51:30

相關問題