2011年11月8日火曜日
Rodinia: A Benchmark Suite for Heterogeneous Computing
This paper presents and characterizes Rodinia, a benchmark suite for heterogeneous computing. To help architects study emerging platforms such as GPUs (Graphics Processing Units), Rodinia includes applications and kernels which target multi-core CPU and GPU platforms. The choice of applications is inspired by Berkeley’s dwarf taxonomy. Our characterization shows that the Rodinia benchmarks cover a wide range of parallel communication patterns, synchronization techniques and power consumption, and has led to some important architectural insight, such as the growing importance of memory-bandwidth limitations and the consequent importance of data layout. I.
2011年5月18日水曜日
[StreamGraph] 小規模行列に対する SVD の応用例
A fast SVD based video watermarking algorithm compatible with MPEG2 Standard
http://www.columbia.edu/itc/applied/e3101/SVD_applications.pdf
続きは後ほど
[StreamGPU] IISWC 2011
(1) リアルタイムの異常検知・変化点検知は、データストリーム処理では非常に重要なアプリケーション(=Workload)の一つである
- 様々な異常検知・変化点検知機構が提案されているが、SST はノンパラメトリックな手法として強力な手法である
- 但し、計算量は O(n^3) であり、リアルタイム性を実現するのは困難である。
- 本論文では GPU による高速化に関する知見を示す。特に既存の CULA ライブラリを示したときの性能特性と、提案する GPU タスク並列による最適化を施した際の性能特性を示す
(2) CULA ライブラリによるナイーブな高速化→スケールしない+小さい行列サイズで性能が出ない、という結果を示す
(3) GPU タスク並列手法による性能最適化+評価結果
学会の性質上、より汎用性が重要。ある特定のアルゴリズムに関するワークロードに関する性能特性を測っただけでは難しい。書き方によるが、強調するのは上記の SST, SVD のアルゴリズムは1インスタンスの一つであり、他のストリーム+GPUにも(ある程度)一般的に言える知見をこの論文によって提供できると主張することが重要。
DEBS に出した論文をベースに、上記の構成に変える作業を行う。既に、実験結果など(データ転送の内訳以外)はほぼ揃っているので、構成の改変と論文の完成度を上げるのみ。
TODO
- 小規模な行列サイズに対する SVD (Single Value Decomposition) ベースのアルゴリズムを調査する (できるだけ早く)
2011年3月9日水曜日
[StreamGPU] 論文の方向性
- GPUタスク並列の論文ーSVD と IKA-SST によって評価。IKA-SSTに関しては、カーネル実行とデータ転送のオーバーラップ、複数カーネル実行、データ差分転送による最適化は無しで純粋にタスク並列で勝負
- もう一本は、「異常検知アルゴリズム IKA-SST のGPUによる最適化」これはタスク並列+カーネル実行とデータ転送のオーバーラップ、複数カーネル実行、データ差分転送による最適化あり
2011年2月21日月曜日
近況
石井君には, Yahoo S4 vs System S/SPADEの定性的(できれば定量的にも)比較を行う解説記事を書いてもらうことになりました。また、動的に変化するネットワークグラフを視覚化するアプリケーションも作ってもらうことになりました。研究のインパクトを視覚的に伝えるのも非常に重要なので、期待してます。
また、DEBSの学会の締切りに関しては、高データレートアプリケーションへのGPUタスク並列化の論文を、上野君が鋭意執筆してくれてます。
皆さん、それぞれこの調子で頑張ってください。
2011年2月14日月曜日
GIM-V on GPUs に関連する論文
1. Pegasus (GIM-Vの理解と Hadoop コード理解): 過去のブログ参照
2. Mars (MapReduceのGPU実装)http://www.citeulike.org/group/1670/article/4009779
3. PageRank, RWR(http://suzumura-lab.blogspot.com/2010/12/streamgraph-rwr.html), HADIなどのGPU高速化に関する論文
GIM-V のGPU実装
「大規模グラフ分析プログラミングモデル GIM-V の マルチ GPU による実現と高速化」
この研究の肝は以下の2つです。
(1) マルチノードでかつマルチ GPU 環境を十二分に活用した高速化.
(2) GIM-V のモデルを記述した論理実行モデルの提唱と最適化コード生成
西井君のテーマである Incremental GIM-V (ストリーム計算)のテーマと大きく関係していますが、バッチ計算とストリーム計算を両方享受できるような統一的な実行基盤を作ることも当然視野に入れます。この統一的な実行基盤で欠かせないのはスケジューリング機構ですが、松浦君の「バッチ処理とストリーム処理のスケジューリング機構」と石井君の「ストリーム処理のクラウドへの委譲」に関する研究がその先駆け的な研究という位置づけになります。
あと不足しているのは、特に大規模グラフデータを格納する分散ファイルシステムへのアクセス機構とローカリティを意識したデータスケジューリングです。また、耐故障性も重要です。この点に関しては、新M1の新たな研究となるか、新B4の研究になるかは相談で決めていきましょう。
2011年1月26日水曜日
[StreamGPU] 高データレートストリーム処理へのGPUタスク並列の適用
ターゲット学会:FIT査読付き論文、またはその他
----
タイトル:高データレートストリーム処理へのGPUタスク並列の適用
問題
・小さい計算量のアルゴリズムへの対応
・データレートが高い場合の、IOボトルネック
・計算量の異なるタスクを同時に計算するには?(ウィンドウサイズが異なるなど)
解決策
・問題サイズの大きさによっては、warpごとのタスク並列で計算(○)
・データ転送と計算のオーバーラップ(△)
・計算量の異なるタスクを、複数カーネル同時実行で計算(△)
評価
・IKA-SST
結果
・条件が良ければ、CPU1コアに対して、teslaで60倍、GTX 460で40倍の性能
考察
・CPU計算部分の計算量は、ウィンドウサイズによらず一定なので、ウィンドウサイズを小さくすると、CPUの計算がボトルネックになる
2010年12月19日日曜日
[StreamGraph] RWR の並列化・高速化
2010年12月7日火曜日
[StreamGraph] グラフアルゴリズムの GPU 化
2010年11月25日木曜日
VLDB 2010
Dawei Jiang (National University of Singapore, Republic of Singapore), Beng Chin Ooi (National University of Singapore, Republic of Singapore), Lei Shi (National University of Singapore, Republic of Singapore), Sai Wu (National University of Singapore, Republic of Singapore)
Willis Lang (University of Wisconsin-Madison, United States of America), Jignesh Patel (University of Wisconsin-Madison, United States of America)
Bogdan Alexe (University of California Santa Cruz, United States of America), Mauricio Hernández (IBM Research, United States of America), Lucian Popa (IBM Almaden Research Center, United States of America), Wang-Chiew Tan (University of California Santa Cruz, United States of Americ
Wook-Shin Han (Kyungpook National University, Republic of Korea), Jinsoo Lee (Kyungpook National University, Republic of Korea), Minh-Duc Pham (Kyungpook National University, Republic of Korea), Jeffrey Yu (The Chinese University of Hong Kong, People’s Republic of China)
Peixiang Zhao (University of Illinois at Urbana-Champaign, United States of America), Jiawei Han (University of Illinois at Urbana-Champaign, United States of America)
Sergey Melnik (Google, United States of America), Andrey Gubarev (Google, United States of America), Jing Jing Long (Google, United States of America), Geoffrey Romer (Google, United States of America), Shiva Shivakumar (Google, United States of America), Matt Tolton (Google, United States of America), Theo Vassilakis (Google, United States of America)
Yingyi Bu (University of Washington, United States of America), Bill Howe (University of Washington, United States of America), Magdalena Balazinska (University of Washington, United States of America), Michael Ernst (University of Washington, United States of America)
p.264: Graph Pattern Matching: From Intractable to Polynomial Time
Wenfei Fan (University of Edinburgh, United Kingdom), Jianzhong Li (Harbin Institute of Technology, People’s Republic of China), Shuai Ma (University of Edinburgh, United Kingdom), Nan Tang (University of Edinburgh, United Kingdom), Yinghui Wu (University of Edinburgh, United Kingdom), Yunpeng Wu (National University of Defense Technology, People’s Republic of China)
p.276: GRAIL: Scalable Reachability Index for Large Graphs
Hilmi Yildirim (Rensselaer Polytechnic Institute, United States of America), Vineet Chaoji (Yahoo! Research Labs, United States of America), Mohammed Zaki (Rensselaer Polytechnic Institute, United States of America
p.220: High-Performance Dynamic Pattern Matching over Disordered Streams
Badrish Chandramouli (Microsoft Research, United States of America), Jonathan Goldstein (Microsoft Research, United States of America), David Maier (Portland State University, United States of America)
p.232: SECRET: A Model for Analysis of the Execution Semantics of Stream Processing Systems
Irina Botan (Eidgenössische Technische Hochschule Zürich, Switzerland), Roozbeh Derakhshan (Eidgenössische Technische Hochschule Zürich, Switzerland), Nihal Dindar (Eidgenössische Technische Hochschule Zürich, Switzerland), Laura Haas (IBM Almaden Research Center, United States of America), Renée Miller (University of Toronto, Canada), Nesime Tatbul (Eidgenössische Technische Hochschule Zürich, Switzerland)
p.244: Recognizing Patterns in Streams with Imprecise Timestamps
Haopeng Zhang (University of Massachusetts Amherst, United States of America), Yanlei Diao (University of Massachusetts Amherst, United States of America), Neil Immerman (University of Massachusetts Amherst, United States of America)
2010年9月1日水曜日
有害 Tweet リアルタイム監視
http://japan.internet.com/busnews/20100831/5.html
"利用者のツイートが掲載される企業のキャンペーンページなどに無関係な宣伝や公序良俗に反するツイートが投稿された際は、リアルタイムでブロックしたり、メールでアラート"
"オプションで、ハッシュタグや一般キーワードの監視、商品購入を薦めるフレーズなどの自動ピックアップ機能"
2010年8月31日火曜日
[StreamGPU] Singular Value Decomposition for Collaborative Filtering on a GPU
----
Singular Value Decomposition for Collaborative Filtering on a GPU, 2010
A collaborative ltering predicts customers' unknown preferences from known preferences. In a computation of the collaborative ltering, a singular value decomposition (SVD) is needed to reduce the size of a large scale matrix so that the burden for the next phase computation will be decreased. In this application, SVD means a roughly approximated factorization of a given matrix into smaller sized matrices. Webb (a.k.a. Simon Funk) showed an e ffective algorithm to compute SVD toward a solution of an open competition called "NetixPrize". The algorithm utilizes an iterative method so that the error of approximation improves in each step of the iteration. We give a GPU version of Webb's algorithm. Our algorithm is implemented in the CUDA and it is shown to be effi cient by an experiment.
http://iopscience.iop.org/1757-899X/10/1/012017/pdf/1757-899X_10_1_012017.pdf
---
Collaborative Filtering 関連の参考論文
A Survey of Collaborative Filtering Techniques, 2009
http://www.hindawi.com/journals/aai/2009/421425.html
Yunhong Zhou, Large-scale Parallel Collaborative Filtering forthe Netflix Prize
http://www.hpl.hp.com/personal/Robert_Schreiber/papers/2008%20AAIM%20Netflix/netflix_aaim08(submitted).pdf
2010年6月17日木曜日
[StreamGPU] 第72回全国大会優秀賞!!
なお、表彰式は、次回の第73回全国大会(東京工業大学 大岡山キャンパス、2011.3.2-4)で行う予定だそうです。
http://www.ipsj.or.jp/10jigyo/
2010年6月11日金曜日
COMSYS 2010
2010年5月29日土曜日
[StreamGPU] Regular Expression on GPU
2010年4月10日土曜日
2010年3月22日月曜日
重回帰分析による 適応的なウィンドウサイズの決定
2010年2月24日水曜日
評価アプリケーション
- Locally Weighted Linear Regression (LWLR)
- Naive Bayes (NB)
- Gaussian Discriminative Analysis (GDA)
- k-means
- Logistic Regression (LR)
- Neural Network (NN)
- Principal Components Analysis (PCA)
- Independent Component Analysis (ICA)
- Expectation Maximization (EM)
- Support Vector Machine (SVM)
- k-means の GPU の高速化
http://www.computer.org/portal/web/csdl/doi/10.1109/CSIE.2009.491
2010年2月21日日曜日
StreamGPU: CPU-GPU 協調動作において SLAに基づく適応的なウィンドウサイズ調節機構の提案
[問題の前提]
SLA (レイテンシ, 結果スコアの精度など)に関してはレイテンシのみを対象
(1) 短いウィンドウサイズの局所的解析:低レイテンシが要求される
- レイテンシの上限が決まっている (例: 10ms)
- CPU で実行
(2) 長いウィンドウサイズの大局的解析:
- レイテンシの上限が決まっている (例: 5秒)
- GPU で実行
[実行環境]
- CPU (2コア) と GPU から構成されるシングルノード。
- GPU, CPU の性能は仮定しない
- 他のジョブは稼動していなく、占有可能
[解く問題]
上記の前提において、(1),(2)で定められたレイテンシを満たす最適なウィンドウサイズ (CPU側、GPU側)を決定する
[解決手法]
CPU 側で守るべきレイテンシを Lc, GPU 側で守るべき レイテンシをLg とし、この両者のレイテンシを満たす最適なウィンドウサイズを CPU, GPU 側で算出する手法を以下に提示する。
0. GPU のウィンドウサイズ Wg を固定する.
CPU, GPU 単体のパフォーマンスを与えられた評価環境においてテストし, 以下のようなデータを算出する。これらのデータから GPU が CPU の性能を上回るウィンドウサイズ Wcpu-gpuを求める。下記の1から6のステップは GPU のウィンドウサイズを固定させるが、このサイズは Wcpu-gpu 以上のサイズから開始する。下記の森田君の実験の場合は 450 が開始点となる。ただし、GPU 側のレイテンシ Lg があらかじめ与えられる。


1. CPU の Conflict が存在しない場合の GPU 単体の実行時間を TG0とする
2. GPU のウィンドウサイズ Wg を固定させて、CPU のウィンドウサイズ Wc を増加させたときの Tg と Tc を測定する。Tg はCPUでの計算やメモリ転送などの干渉を受けて増加する.
3. 2 のデータを受けて、定義域をサイズ、値域を実行時間とする関数をそれぞれ Fg, Fc とし、その関数を非線形の回帰分析によって算出する。
4. Lg (CPU側で守るべきレイテンシ)を与えたときの最大の Wc (CPUのウィンドウサイズ)をステップ3 によって算出した関数 Fg を用いて, Lg = Fg(x) --> x = Fg-1(Lg) (-1 は逆関数) のように計算し、x を Wc とする。
5. ステップ4を用いて算出したWc と関数 Fc を用いて (Tc = Fc(Wc)) , Wcにおける実行時間 Tc を算出.
6. ステップ5を用いて算出した Tc が CPU側のレイテンシより下回っているかどうかを検査。
(6-1) 下回っている場合には CPU 側のウィンドウサイズはステップ4 によって得られた Wc とする
(6-2) 上回っている場合には CPU 側のウィンドウサイズWc を Fc-1(Lc) によって求めた値とする
下図においては(6-1) が上図、(6-2) が下図となる
