在Matlab中使用GPU,要先輸入gpuDevice命令初始化一下設備。
根據返回的信息能夠大概估算出顯存支持的最大數據。
否則使用時容易出現下面這樣的問題:
錯誤使用 gpuArray An unexpected error occurred during CUDA execution. The CUDA error was: unknown error
如果出現這個問題,只能調小數組重啟Matlab或者換個更好的顯卡。
下面是一段測試代碼:
clear all; close all; clc; %gpuDevice tic A = rand(4000); B1 = A*A; toc tic A = rand(4000); A = gpuArray(A); B2 = A*A; toc B3 = gather(B2); %收集進內存,這一步比較耗時
加速對比:
運算能夠提供較好的加速,不過將結果收回內存比較耗時。
比較好的實踐和通用GPU編程類似:減少顯存內存交換次數,讓數據更長時間在顯存中處理。