找到一篇不錯的文章在介紹Softmax和Softmax loss
http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/
2016年2月24日 星期三
2016年2月18日 星期四
2016年2月16日 星期二
Matlab同時使用多核CPU和多張GPU加速
CPU的Multi-thread用法類似
p = gcp();
for i = 1 : iter
f(i) = parfeval(p, @myFunc, ...);
end
for i = 1 : iter
fetchNext(f);
end
而GPU則只需將陣列使用gpuArray宣告即可。但因為要使用多GPU,因此先使用
nGPU = gpuDeviceCount;
得到GPU的個數,然後呼叫數學函數前記得先用gpuDevice()選擇要用哪張GPU
gpuDevice(GPU_index) % 1 <= GPU_index <= nGPU
math_func(...)
...
搭配前面的CPU multi-thread即可同時使用多張GPU運算。
注意事項:
使用Multi-thread CPU + Multi-GPU時,記得[1]要自己安排讓#(nGPU)個函式用CPU+GPU執行,[2]剩下#(nCPU-nGPU)個只使用CPU單獨。[1]可避免太容易出現GPU out of memory,[2]可增加效能。
2016年2月14日 星期日
mac上使用multi-thread(OpenMP)
OpenMP是常見的multi-thread library,他有不同的實作。而Mac使用的compiler有gcc或clang,因此OpenMP也有相對應的實作。
參考:
gcc: https://gcc.gnu.org/projects/gomp/
clang: http://clang-omp.github.io/
參考:
gcc: https://gcc.gnu.org/projects/gomp/
clang: http://clang-omp.github.io/
訂閱:
文章 (Atom)