SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
#jubatus_hackathon http://connpass.com/event/8233/ 
jubatusによるアセンブリ 
実行速度の自動チューニング 
@nushio & @kumagi
mission: 
スーパーコンピュータで走る 
プログラムを自動的に早くする。
その1:融合加乗算(fmadd)を使う 
1クロックあたり2演算! 
a b c 
fmadd 
a*b+c
その2:命令を一杯詰め込む 
before after 
fmadd 
←クロック 
add 
mul 
fmadd 
add 
mul 
fmadd 
add 
mul 
fmadd 
add 
mul 
fmadd 
add 
mul 
fmadd 
fmadd 
各命令にはレイテンシがある 
ため、毎クロック演算機を無 
駄なく使うためには、依存関 
係のない演算を次々に投入 
せねばならない。
その3:キャッシュを使う 
演算機 
キャッシュ 
• 主メモリは大容量だが、ア 
クセスに時間がかかる。 
• 比較的小さなキャッシュに 
頻繁に使うデータは置き、 
なるべくキャッシュミスせ 
ずに使いまわす必要があ 
る。 
メモリ
チューニング対象: 
各命令について・・・ 
fmadd 
add 
fmadd 
• 命令実行の 
優先度? 
• キャッシュに 
残す優先 
度?
• 優先度0.11 
• 優先度0.30 
• 優先度0.97 
• 優先度0.79 
• 優先度0.56 
• 優先度0.25 
• 優先度0.84 
• 優先度0.23 
• ・・・ 
1万行くらいのアセンブリ 
CPUエミュレータ 
実行結果: 
49881クロックです 
• アセンブリの各行に対し 
命令実行の優先度と、 
キャッシュに残す優先度 
を指定すると、実行過程 
をシミュレートし、所要時 
間を見積もってくれるエ 
ミュレータを作った。
CPUエミュレータ 
クロック数 
(成績) 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
• ランダムに生成した優先度リス 
トとクロック数の組が沢山あれ 
ば、・・・ 
Regression 
• Jubatusにより未知の優先度リストに 
対してもクロック数が推定できる!
CPUエミュレータ 
クロック数 
(成績) 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
でも・・・ 
Regression 
本当にやりたいのはこっち。 
(良いクロック数を出すプログラムを探す) 
逆問題?難しい?
CPUエミュレータ 
クロック数 
(成績) 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
×重み 
×重み 
×重み 
×重み 
×重み 
×重み 
・・・・ 
Regression 
内部状態は 
jubadumpツールで 
覗けます! 
Jubatusの線形回帰分析機は、 
入力ベクトルと内部の重みの内積で出力を推定している。 
重みが大きい成分ほど、クロックを大きくするのに貢献している(悪影響)。
CPUエミュレータ 
クロック数 
(成績) 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
×重み 
×重み 
×重み 
×重み 
×重み 
×重み 
・・・・ 
×‐1= 
Regression 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
重みに-1を掛け算。 
若干の正規化を施したのち優先度として採用!
CPUエミュレータ 
クロック数 
(成績) 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
×重み 
×重み 
×重み 
×重み 
×重み 
×重み 
・・・・ 
×-1= 
(&正規化) 
Regression 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• 優先度 
• ・・・ 
プログラム生成 
追加 
まさにオンライン学習!
ランダム生成と対決! 
Random Jubatus 
(最速) 
クロック数 
70000~ 
26919 
35000~ 
27768 
テスト回数5000 50 
コア数64コア1コア 
所要時間3時間くらい1時間くらい
実行完了までのクロック数 
(←小さいほど良い) 
生成したプログラムの数 
Random 
Jubatus
Jubatus 
makes it faster, 
faster! 
Jubatusなら素早く、速くなる! 
Jubatusの手軽さはやっぱり凄かった! 
皆様ありがとうございました!

Más contenido relacionado

Destacado

チーム:大杉さんの壮大な夢
チーム:大杉さんの壮大な夢チーム:大杉さんの壮大な夢
チーム:大杉さんの壮大な夢JubatusOfficial
 
興味ありそうなもの検索
興味ありそうなもの検索興味ありそうなもの検索
興味ありそうなもの検索JubatusOfficial
 
忙しい人のためのニコ動案内を作ってみてる
忙しい人のためのニコ動案内を作ってみてる忙しい人のためのニコ動案内を作ってみてる
忙しい人のためのニコ動案内を作ってみてるKeisuke Ogaki
 
jubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathonjubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathonTokoroten Nakayama
 
Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話JubatusOfficial
 
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみたJubatusOfficial
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介JubatusOfficial
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)JubatusOfficial
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測するJubatusOfficial
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatusOfficial
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町JubatusOfficial
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用JubatusOfficial
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化JubatusOfficial
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定JubatusOfficial
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介kmaehashi
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリングJubatusOfficial
 

Destacado (20)

チーム:大杉さんの壮大な夢
チーム:大杉さんの壮大な夢チーム:大杉さんの壮大な夢
チーム:大杉さんの壮大な夢
 
興味ありそうなもの検索
興味ありそうなもの検索興味ありそうなもの検索
興味ありそうなもの検索
 
忙しい人のためのニコ動案内を作ってみてる
忙しい人のためのニコ動案内を作ってみてる忙しい人のためのニコ動案内を作ってみてる
忙しい人のためのニコ動案内を作ってみてる
 
Jubatusハンズオン資料
Jubatusハンズオン資料Jubatusハンズオン資料
Jubatusハンズオン資料
 
jubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathonjubatusのECサイトへの適応 #jubatus_hackathon
jubatusのECサイトへの適応 #jubatus_hackathon
 
Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話
 
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測する
 
jubabanditの紹介
jubabanditの紹介jubabanditの紹介
jubabanditの紹介
 
Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
 
JubaQLご紹介
JubaQLご紹介JubaQLご紹介
JubaQLご紹介
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
 
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
 
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
 
Jubaanomalyについて
JubaanomalyについてJubaanomalyについて
Jubaanomalyについて
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
 

Jubatusによるアセンブリ実行速度の自動チューニング