積読日記
Mon, 04 AwGhost 2008 [長年日記]
tDiary 1356日目
■ [computer] ついにベールを脱いだIntelのCPU&GPUハイブリッド「Larrabee」, PC Watch
やはり CUDA の対抗と推測される Larrabee Native C/C++ があるんか.
■ [programming] Intel Threading Building Block (TBB) で遊ぶ (1)
まずはセットアップから. 環境は- OS: Windows Vista 32bit Ultimate SP1
- CPU: AMD Athlon 64 X2 4600+ 2.4GHz
- RAM: 2GB (1GB + 1GB)
- IDE: Visual C++ 2008 Express Edition
- TBB: 2.1
- 公式から Windows 版 (tbb21_20080605oss_win.zip) を取得する
- 取得したアーカイブを適当な場所 (C:\Program Files\tbb など. 以降はこのパスを TBB_HOME とする) に展開する
- Visual C++ 2008 の VC++ ディレクトリの設定で, インクルードとライブラリにそれぞれ %TBB_HOME%\include と %TBB_HOME%\ia32\vc9\lib を登録する (環境に応じて ia32 は em64t に, vc9 は vc7/8 に読み替える)
■ [programming] Intel Threading Building Block (TBB) で遊ぶ (2)
早速コードを書いてみた. 確かに TBB を使った方は二つの CPU を使い切っているのだが, ループの中が単純計算だとスケールしにくいのか,tbb: 6304742 single: 8336401という結果 (単位は処理にかかった時間 = 小さいほど速い) で, マルチスレッド対応による速度向上は 1.32 (= 8336401/6304742) 倍速という結果だった. Calc を変更して,
return cos((a + b + 1)/2.0);としてみる (計算が重くなるので loop を 100 程度に減らさないとなかなか帰ってこない) と,
tbb: 11192846 single: 19897373と, 1.78 (= 19897373/11192846) 倍速まで速度向上率が上昇した.
ちょろっと遊んでみただけだが TBB は面白い & 凄い. なお, 分割粒度を指定しなかったら最小粒度になったらしく, 一要素ごとにスレッド切り替えを行ったためか異様に時間がかかって焦った. あとマスコットの鳥がかわいくて和む.
投稿日時 : 2008年08月05日 00:47