Home
Explore
Submit Search
Upload
Login
Signup
Check these out next
CuPy解説
Ryosuke Okuta
Deep State Space Models for Time Series Forecasting の紹介
Chihiro Kusunoki
社会心理学者のための時系列分析入門_小森
Masashi Komori
5分でわかるかもしれないglmnet
Nagi Teramo
階層モデルの分散パラメータの事前分布について
hoxo_m
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
Cmdstanr入門とreduce_sum()解説
Hiroshi Shimizu
1
of
32
Top clipped slide
RでGPU使ってみた
Nov. 19, 2011
•
0 likes
29 likes
×
Be the first to like this
Show More
•
15,872 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Report
Education
第19回R勉強会@東京での発表資料です
Kazuya Wada
Follow
データマイニングエンジニア at 株式会社サイバーエージェント [CyberAgent]
Recommended
Rの高速化
弘毅 露崎
38.3K views
•
33 slides
Stan超初心者入門
Hiroshi Shimizu
83K views
•
156 slides
関数データ解析の概要とその方法
Hidetoshi Matsui
8.4K views
•
156 slides
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
250.2K views
•
159 slides
SSII2020TS: Event-Based Camera の基礎と ニューラルネットワークによる信号処理 〜 生き物のように「変化」を捉えるビジョンセ...
SSII
4.2K views
•
101 slides
混合モデルを使って反復測定分散分析をする
Masaru Tokuoka
106.7K views
•
69 slides
More Related Content
Slideshows for you
(20)
CuPy解説
Ryosuke Okuta
•
119.9K views
Deep State Space Models for Time Series Forecasting の紹介
Chihiro Kusunoki
•
2.7K views
社会心理学者のための時系列分析入門_小森
Masashi Komori
•
17K views
5分でわかるかもしれないglmnet
Nagi Teramo
•
21.8K views
階層モデルの分散パラメータの事前分布について
hoxo_m
•
34K views
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
•
9.8K views
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
•
11.2K views
Cmdstanr入門とreduce_sum()解説
Hiroshi Shimizu
•
8.1K views
第10回 配信講義 計算科学技術特論A(2021)
RCCSRENKEI
•
1.3K views
2 5 3.一般化線形モデル色々_Gamma回帰と対数線形モデル
logics-of-blue
•
56.5K views
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
•
131.3K views
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
nocchi_airport
•
4.9K views
Rescale で Singularity を使ってみよう!
Shinnosuke Furuya
•
1.1K views
深層学習の数理
Taiji Suzuki
•
78.4K views
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
Tomoki Yoshida
•
791 views
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
•
11.9K views
TVM の紹介
Masahiro Masuda
•
5.3K views
近年のHierarchical Vision Transformer
Yusuke Uchida
•
12.2K views
Rでisomap(多様体学習のはなし)
Kohta Ishikawa
•
28.5K views
Visualizing Data Using t-SNE
Tomoki Hayashi
•
20K views
Similar to RでGPU使ってみた
(20)
Pdp11 on-fpga
magoroku Yamamoto
•
2.7K views
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
•
156 views
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
•
6.6K views
Djangoとweb2pyをapacheに組込む
2bo 2bo
•
2.2K views
Nseg20120825
hiro345
•
1.1K views
OpenStackでつくる開発環境と外道塾
外道 父
•
9.5K views
Starting qt5beta at_raspberry_pi Qtnagoya#6
Kazuo Asano (@kazuo_asa)
•
2.1K views
Puppet on AWS
Sugawara Genki
•
5.4K views
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
yaegashi
•
165 views
kube-system落としてみました
Shuntaro Saiba
•
3.8K views
20230511_Node-RED_Park_vol11_kitazaki_v1.pdf
Ayachika Kitazaki
•
49 views
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
maebashi
•
2.3K views
(JP) GPGPUがPostgreSQLを加速する
Kohei KaiGai
•
23.9K views
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
•
23K views
S3 を単純ストレージとして 利用する手段の比較
真治 米田
•
5.6K views
サーバ構築自動化 On aws sqaleの場合
Ryo Kuroda
•
6.1K views
Osc10do linux nextstep
smokey monkey
•
1K views
Osc2013 tokyospring
Masataka Tsukamoto
•
8.4K views
Next-L Enju 開発ワークショップ #10
Kosuke Tanabe
•
852 views
AWSとGPUインスタンスのご紹介
Yasuhiro Matsuo
•
2.8K views
More from Kazuya Wada
(17)
オンラインTVサービスの分析事例
Kazuya Wada
•
1.3K views
DeployR使ってみた話
Kazuya Wada
•
17.1K views
道玄坂Lt#2 wdkz
Kazuya Wada
•
4.7K views
ハイレゾの話
Kazuya Wada
•
5.3K views
Shiny-Serverあれこれ
Kazuya Wada
•
21K views
データサイエンティストカジュアルトーク by wdkz
Kazuya Wada
•
2.6K views
R-3.0.0でGLM
Kazuya Wada
•
4.9K views
はじめてのShiny
Kazuya Wada
•
14.5K views
JuliaでGLM
Kazuya Wada
•
3.2K views
Rで触れる日本経済~RでVAR編~
Kazuya Wada
•
5.4K views
RのffでGLMしてみたけど...
Kazuya Wada
•
11.1K views
そろそろRStudioの話
Kazuya Wada
•
48.4K views
RでつくるWebアプリ~rApache編~
Kazuya Wada
•
4.7K views
Rでウォーリを探してみた
Kazuya Wada
•
7K views
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Kazuya Wada
•
5.3K views
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
•
23K views
Tokyo.R#16 wdkz
Kazuya Wada
•
7.3K views
Recently uploaded
(20)
☀️《CWRU毕业证仿真》
DFFFFG
•
2 views
劳伦森大学原版成绩单修改gpa学分加拿大留学文凭办理
JhhhfGffh
•
3 views
54伯克利学院.pdf
fdhrtf
•
2 views
Fordham毕业证成绩单,办福特汉姆大学毕业证书,QQ/WeChat:819 4343,办Fordham本科毕业证,办Fordham假文凭硕士证书,办F...
BonnieLaymon
•
3 views
APRESTAMIENTO K.doc
NERY2013
•
5 views
☀️《Humber毕业证仿真》
ssuser6c070c
•
3 views
10南十字星大学.pdf
dsadasd17
•
6 views
2023パーフェクトなレポート執筆のための引用の書きかた
Yoshida-South Library, Kyoto University
•
136 views
184-内华达大学雷诺分校.pdf
fdhrtf
•
2 views
☀️《UMaine毕业证仿真》
DFFFFG
•
2 views
☀️《Baylor毕业证仿真》
DFFFFG
•
2 views
#国外留学文凭购买太平洋假毕业证书
14zw8z53qmm
•
3 views
57德保罗大学.pdf
dsadasd17
•
2 views
☀️《梅西大学毕业证仿真》
hjhgg1
•
2 views
7.南安普顿大学.pdf
fdhrtf
•
2 views
☀️《萨尔大学毕业证仿真》
hjhgg1
•
3 views
ST07.pdf
Masato FUKUHARA
•
7 views
☀️《DePaul毕业证仿真》
DFFFFG
•
2 views
☀️《CMU毕业证仿真》
DFFFFG
•
2 views
61高贵林学院.pdf
fdhrtf
•
2 views
RでGPU使ってみた
RでGPU使ってみた
Tokyo.R #19 和田 計也 サイバー系
サイバー系
はじめに ※この発表は個人の 見解であり、所属する 組織の公式見解では ありません。 2011/11/19 1
サイバー系
アジェンダ 1. 自己紹介 2. GPUの話 3. R上で動くGPU演算をしてくれるパッケージ紹介 4. ベンチマーク結果 2011/11/19 2
サイバー系
自己紹介 和田 計也(@wdkz) 静岡県袋井市出身 サイバー系企業でデータマイニングエンジニア職 創立記念日が3月18日 社長の出身地が福井県鯖江市 前職はバイオベンチャー バイオマーカ探索してた 学生時代は枯草菌の研究 2011/11/19 3
サイバー系
唐突ですが R遅!!ですね。 あまりの遅さに気を失いかけたことありませんか? そこで GPUですよ 2011/11/19 4
サイバー系
GPU GPUとは? Graphics Processing Unitの略 3Dグラフィックスの表示に必要な計算処理(3D座標から2D座標へ の座標変換など)を行う半導体チップ (最新のは)448コア 2011/11/19 5
サイバー系
GPU 東工大のスパコン、TSUBAME2.0にもGPUが使われています! 2011/11/19 6
サイバー系
GPGPU General-purpose computing on graphics processing units; GPUによる汎目的計算 CUDA 今日はこれ(一般的だから) ATI Stream OpenCL 2011/11/19 7
サイバー系
ちょっと待て でもお高い んでしょ? 2011/11/19 8
サイバー系
高い… Amazonで(専用の)GPUカードだけ買うと しても28万くらいする.. GPUカード搭載のサーバマシンだと90万弱もする.. 2011/11/19 9
サイバー系
じゃあどうするの? こんなのとかでも一応動く。 Amazonだと5000円くらいから 一応問題点 ・デスクトップマシンもってない ・それなりのスペックでベンチマークしないと 過小評価しちゃって二度と日の目を見ないかもしれんし。 それなりのスペック・・・①GPUカードに搭載されてるメモリ量 ②IO速度 ③倍精度浮動小数点計算 2011/11/19 10
サイバー系
結局GPUはどうすればいいの? AWS(Amazon Web Service)で可能です これ 2011/11/19 11
サイバー系
AWS Management Consoleから始める とりあえず試すだけなので「Spot Instances」でいいや よくわからん からこっち 使ってみた SAS美 2011/11/19 12
サイバー系
AWS Management Consoleから始めるSAS美 1時間0.665ドルからってかいてあるから、Max Priceのとこに 「0.665」っていれてContinueボタン押しとく 2011/11/19 13
サイバー系
3.1 Rのビルド まあ、あれだ。いろいろやるとこんな感じ↓で使えるように なった。 詳しくは@KenTamagawa さんをフォロー するか本読んでね♪ 2011/11/19 14
サイバー系
AWS上のAmazon Linux AMIでRをコンパイル sudo yum install gccsudo sudo yum install gcc-gfortran 何か絶望的にいろいろ入ってない sudo yum install gcc-c++ sudo yum install readline-devel sudo yum install make wget ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN/src/base/R-2/R-2.14.0.tar.gz tar -xvf R-2.14.0.tar.gz cd R-2.14.0 ←このオプションつけとかないと後でGPU関連の パッケージがインストールできない。 ./configure --enable-R-shlib make sudo make install 2011/11/19 15
サイバー系
AWS上のAmazon Linux AMIでGPU関連のを入れる yum install libGLU-devel libXi-devel libXmu-devel freeglut-devel kernel-devel 必要なライブラリをいれて wget http://developer.download.nvidia.com/compute/cuda/4_0/drivers/devdriver_4.0 _linux_64_270.41.19.run Developer Drivers for Linux sudo ./devdriver_4.0_linux_64_270.41.19.run を入れて wget http://developer.download.nvidia.com/compute/cuda/4_0/toolkit/cudatoolkit _4.0.17_linux_64_rhel6.0.run CUDAを入れて sudo sh cudatoolkit_4.0.17_linux_64_rhel6.0.run (Amazon Linux AMIのベースlinuxが何かよく わからんかったけどredhat 6.0のでいけたわ~) wget http://developer.download.nvidia.com/compute/cuda/4_0/sdk/gpucomputingsdk_ 4.0.17_linux.run ./gpucomputingsdk_4.0.17_linux.run GPU Computing SDKを入れる cd NVIDIA_GPU_Computing_SDK/C sudo make *ここら辺のはもともとインストール済みっていう噂なんだけど, 全部入れ直してみた。 2011/11/19 16
サイバー系
動作確認する・Win cd NVIDIA_GPU_Computing_SDK/C ./bin/linux/release/deviceQuery ここまでで、CUDAが動く環境 が整った。次にR上でCUDAが 利用することを考える 2011/11/19 17
サイバー系
RでGPUを使えるパッケージ Gputool http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/ 使える関数多い Rpud http://www.r-tutor.com/content/download Gputoolより高速だった svmはe1071パッケージのsvmに準拠 いろんなカーネルトリック使える こっち使ってみた 2011/11/19 18
サイバー系
Rpudをインストール export CUDA_HOME=“/usr/local/cuda” export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64“ export PATH=${CUDA_HOME}/bin:${PATH} 環境変数を設定して export R_LIBS_USER="${HOME}/lib/R“ R 必要なパッケージSparseMを >install.packages("SparseM") インストールして >q(“no”) wget http://www.r-tutor.com/sites/default/files/rpud/rpud_0.1.1.tar.gz R CMD INSTALL rpud_0.1.1.tar.gz Rpudをいれて wget http://www.r-tutor.com/sites/default/files/rpud/rpudplus_0.1.1.tar.gz tar xvf rpudplus_0.1.1.tar.gz Rpudplusをいれる cd rpudplus_0.1.1 ./install.sh RPUSVMってのもあるので お好きな人はどうぞ 2011/11/19 19
サイバー系
(参考資料)gputoolsのインストール 今回は使わなかったけど… 前々々ページに記載してあるCUDAインストールまで完了しているとする R > install.packages(“gputools”)’ お手軽♪ 2011/11/19 20
サイバー系
Rpudパッケージについて 基本的に以下の4つの手法しか(まだ)実装されていません 基本的に普通の関数と同様の引数で使えますので悩みません CPUで計算 GPUで計算 (rpud) 相関 cor rpuCor 距離 dist rpuDist 階層クラスタリング hclust rpuHclust SVM(トレーニング) e1071::svm rpuSvm SVM(予測) e1071::predict.svm predict.rpuSvm 2011/11/19 21
サイバー系
Rpudをちょっと使ってみる R >library(rpud) #これでrpudもrpudplusも両方読み込まれる >A <- runif(100000000); B <- runif(100000000) >system.time(cor (A, B), method=“pearson”) まずは通常のCPUで(ピアソンの)相関計数計算 ># user system elapsed ># 1.858 0.003 1.860 >system.time(gpuCor(A, B, method="pearson")) ># user system elapsed 次にGPUで(ピアソンの)相関計数計算 ># 1.858 0.002 1.860 2011/11/19 ← Kendall以外はCPUで処理されてた 22
サイバー系
Rpudをちょっと使ってみる・2 R >library(rpud) #これでrpudもrpudplusも両方読み込まれる >A <- runif(100000000); B <- runif(100000000) >system.time(cor (A, B), method=“kendall”) まずは通常のCPUで(ケンドールの順位)相関計数計算 ># user system elapsed ># 199.025 0.000 198.926 >system.time(gpuCor(A, B, method=“kendall")) ># user system elapsed 次にGPUで(ケンドールの順位)相関計数計算 ># 4.262 2.183 6.581 速っ!! 2011/11/19 23
サイバー系
ベンチマークのマシン構成 CPUマシン Intel Xeon L5520@2.27GHz(L2 8M), 4Cores (8Threads) x 2 なんだけど、シングルスレッドしか使わなかった 32Gbyte メモリ CPUマシン Intel Xeon X5570@2.93GHz(L2 8M), 4Cores (8Threads) x 2 24Gbyte メモリ Tesla M2050 x 2 1.15GHz GPU (448 Cores) 3Gbyte グローバルメモリ 48Kbyte / blockの共有メモリ 2011/11/19 24
サイバー系
ベンチマーク① >var.nums <- c(1000,5000,10000,50000,1e+5,5e+5,1e+6,5e+6) >for(i in 1:length(var.nums)){ A <- runif(var.nums[i]); B <- runif(var.nums[i]) +#CPUで計算 +System.time(cor(A, B), method=“kendall”) + +#GPUで計算 +System.time(rpuCor(A, B), method=“kendall”) } ケンドールの順位相関係数計算時間 30000 25000 長いベクトル同士の相関係数 20000 を算出。戻り値は長さ1のベクトル 処理時間(秒) 約40倍高速化 15000 CPU GPU 10000 5000 0 0 1000000 2000000 3000000 4000000 5000000 6000000 変数の数 2011/11/19 25
サイバー系
ベンチマーク② >var.nums <- c(1000,5000,10000,50000) >for(i in 1:length(var.nums)){ A <- matrix(runif(var.nums[i]*100), var.num(i), 100) B <- matrix(runif(var.nums[i]*100), var.num[i], 100) +#CPUで計算 +System.time(dist(A, B), method=“euclidean”) + +#GPUで計算 +System.time(rpuDist(A, B), method=“euclidean”) ユークリッド距離計算時間 } 300 250 長い行 x 100列のマトリックス同士 200 の距離を算出。 処理時間(秒) 戻り値はdistオブジェクト 150 約7~8倍高速化 CPU (結構大きい) GPU 100 50 0 0 5000 10000 15000 20000 25000 30000 35000 行数(列数は100に固定) 2011/11/19 26
サイバー系
ベンチマーク③ >var.nums <- c(1000,5000,10000,50000) >for(i in 1:length(var.nums)){ A <- matrix(runif(var.nums[i]*100), var.num(i), 100) B <- matrix(runif(var.nums[i]*100), var.num[i], 100) +#CPUで計算 d <- dist(A, B) +System.time(hclust(d), method=“complete”) + +#GPUで計算 +System.time(rpuHclust(d), method=“complete”) 完全連結法階層クラスタリング計算時間 } 8000 7000 長い行 x 100列のマトリックス同士 6000 の距離を算出後階層クラスタリング。5000 処理時間(秒) 戻り値はhclustオブジェクト 約200~300倍高速化 4000 CPU 3000 GPU 2000 1000 0 0 5000 10000 15000 20000 25000 30000 35000 行数(列数は100に固定) 2011/11/19 27
サイバー系
ベンチマーク④ >var.nums <- c(1000,5000,10000,50000) >for(i in 1:length(var.nums)){ A <- matrix(runif(var.nums[i]*100), var.num(i), 100) +#CPUで計算 +System.time(svm(y=A[,1], x=A[,-1], scale=FALSE, type="eps-regression")) + +#GPUで計算 +System.time(rpusvm(y=A[,1], x=A[,-1], scale=FALSE, ガウシアンカーネル利用SVM計算時間 type="eps-regression")) 3000 } 2500 CPU 長い行 x 100列のマトリックスを GPU 生成して、1列目を目的変数に 2000 処理時間(秒) それ以外を説明変数としてsvmで 約5~20倍高速化 1500 モデルを構築。パラメータは チューニングしていなくて 1000 デフォルト値を使用 500 0 0 50000 100000 150000 200000 250000 行数(列数は100に固定) 2011/11/19 28
サイバー系
明細 27時間使って1500円くらい 2011/11/19 29
サイバー系
(参考) gputoolsパッケージ 項目 説明 gpuCor 各種相関係数の計算 gpuCrossprod 行列のクロス積 gpuDist ベクトル間距離計算 gpuDistClust ベクトル間の距離と階層型クラスタリング計算 gpuFastICA 独立成分分析 gpuGlm 一般化線形モデル gpuGranger ベクトルの階層型クラスタリングの実行 gpuLm 線形モデル gpuMatMult 実行マトリックス乗算 gpuMi 相互情報をベースにした B スプライン gpuQr マトリックスの QR 分解の推定 gpuSolve マトリックスベクトル式の解の推定 gpuSvd 特異値分解 gpuSvmPredict サポートベクターマシンスタイルの2値分類器 gpuSvmTrain データセットのサポートベクターマシンのトレイニング gpuTcrossprod 転置行列のクロス積 gpuTtest T 検定推定 2011/11/19 30
サイバー系
最後に これはなかなか使えるな。 メモリ使用量は少ないんだけどCPU時間がやたら長い処理に向く SVMとか階層クラスタリングとか ただし Rpud(Rpudplus)もgputoolsも商用利用するには 作者からライセンスを購入して下さい。 2011/11/19 31