需要的components有:
- CUDA Toolkit 8.0 下載安裝
- mxnet gpu prebuild 下載
20170310_mxnet_x64_vc14_gpu.7z
跟vc14 base package
- mxnet release zip
需要的components有:
20170310_mxnet_x64_vc14_gpu.7z
跟vc14 base package
本篇會從頭開始介紹怎麼使用Ambari server跟HDP repository來快速部署Hadoop Cluster
只是記錄一下,方便日後check
如果include blaze/Blaze.h
會發現出了好幾個錯誤,這裡提供一些解法:
我花了一點時間把RcppEigen升級到3.3.1,然後我發現一件滿有趣的事情(細節請看 Using BLAS/LAPACK from Eigen)
因為是我手動升級的,檔案放在我的github: 連結請點我
就是#define EIGEN_USE_BLAS
可以用了,設定之後,RcppEigen會使用R的BLAS去做計算
如此一來,之前講到的RcppEigen的慢就可以被改善了
想一想還是繼續把上一篇補完
所以這次就活用了LAPACK查詢,去得到the optimal sizes of the WORK array and IWORK array
R code沒什麼更動,只是多了一些check results的動作
也試試看第2,3個input得到的結果是否正確
kernal matrix computation這個主題不只被我用了一次
其實我在PTT分享RcppParallel也是用了這個當例子,文章連結
那這裡就延續上篇的程式把RcppParallel一起拉進來比較一下吧
因為我已經知道p大的時候,我每一個都逐一算其實很慢
那我這裡的RcppParallel就改變一下做法
讓RcppParallel不會因為p改變而使得計算效率改變
剛好有點時間來研究一下Rcpp怎樣直接使用底層Fortran 77的BLAS跟LAPACK函數
我覺得最難的還是要去讀BLAS或LAPACK的文件,然後配置適當的input餵進去
我這裡就簡單demo一下怎麼樣用LAPACK的dsyevr去計算symmetric matrix的eigenvalues跟eigenvectors
(BLAS部分其實很接近,有興趣的人可以自己改成用BLAS的函數去做,一樣用F77_CALL即可)
裡面還是有不少配置,我沒有好好活用,不過我覺得就先這樣吧,等到有需要再慢慢深入去寫
畢竟我現在直接使用BLAS/LAPACK的場合真的不多,寫那麼底層對我真的有點困難Orz
我還是乖乖去用RcppEigen跟RcppArmadillo好了“
不過直接用BLAS,可以gain到一些performance,也有比較多flexible的設定
深入去玩的話,我覺得對程式效能改進有一定幫助