ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    GPGPUで激安スーパーコンピューターを自作する方法

    このエントリーを含むはてなブックマーク はてなブックマーク - GPGPUで激安スーパーコンピューターを自作する方法 あとで読む
    GPGPUを使うと安価なスーパーコンピューター(TFlops級)を作れるらしい。

    TFLOPSとは 【テラフロップス】

    TFLOPSとは、コンピュータの処理速度をあらわす単位の一つで、1秒間に1兆回の浮動小数点数演算(実数計算)を実行できることを意味する。
    FLOPSは「Floating point number Operations Per Second」の略で1秒間に1回の計算ができる処理速度をあらわし、T(テラ)は1兆(10の12乗)を意味する接頭辞。
    スーパーコンピュータなど大規模なコンピュータシステムの性能指標として用いられることが多い。



    量子コンピューターが実用化・コモディティ化される前に、一家に一台スーパーコンピューターの時代がやってくるだろうか?
    最近ノートパソコンが安くなってビックリしていたら、スーパーコンピューターも低価格化が進んでいたので、二度ビックリした。

    スーパーコンピューターを20万円で創る (集英社新書)
    伊藤 智義
    集英社
    2007-06
    ¥ 734


    GPGPUで激安スパコンを作る方法

    ●概要
    ・キーワードは「メニーコア」(many core)
    ・高性能なビデオカードに使われているGPGPUを利用したスーパーコンピューター(GPGPUスパコン)を自作する人たちが出てきた。
    ・日本は現在、GPGPUスパコンで世界の最先端を行っている。
    ・GPGPUスパコンの自作は簡単で安い。

    ● GPGPUとは?
    パソコンのビデオカードに使われているGPU(画像処理装置)を使って、高速な計算を行う方法。
    GPGPUを利用すると、TFlops級のスーパーコンピューターを安価に作ることができる。

    http://ja.wikipedia.org/wiki/GPGPU

    GPGPU (General Purpose computing on GPU、GPUによる汎目的計算)とは、GPUの演算資源を画像処理以外の目的に応用する技術のことである。



    http://d.hatena.ne.jp/keyword/GPGPU

    General Purpose GPUの略称。GPUを使用して数値計算を行うこと。
    GPU(Graphics Processing Unit)はPCのビデオカードに搭載されており、3D描画に必要となる演算をCPUに代わって実行する。
    高い並列計算能力を持つため、この能力をグラフィック描画のみならず汎用の数値計算に使用する技術が登場した。



    ● GPGPUが注目されたニュース
    (1) 事業仕分け(日本政府の予算編成)で、スパコン予算カットの騒動
    http://sankei.jp.msn.com/politics/situation/091122/stt0911221233003-n1.htm

    平成22年度予算の概算要求の無駄を削る行政刷新会議(議長・鳩山由紀夫首相)の事業仕分け作業で、「廃止」などの判定が相次いだ科学関連予算について、「予算復活」を認める方針を固めた。
    菅直人副総理・国家戦略担当相(科学技術担当相)は同日のNHK番組で、仕分け作業で事実上「凍結」となった次世代スーパーコンピューターの開発事業費(267億円)も「当然、見直すことになる」と述べており、スパコンは予算復活の第1号になりそうだ。



    (2) 同時期に激安スパコンのニュース
    http://www.nishinippon.co.jp/nnp/item/136999

    長崎大工学部の浜田剛助教(35)のグループは26日、国内最速のスーパーコンピューターを開発し、米電気電子学会の「ゴードン・ベル賞」(価格性能部門)を受賞した、と発表した。
    政府の新年度予算概算要求の事業仕分けでは、次世代スーパーコンピューター開発予算(267億円)が大幅削減とされたばかり。
    浜田助教は「高性能の計算機は重要だ」としながらも、巨費を投じた従来の開発方針について「素直にいいとは言えない。方向性が逆」と述べ、低価格化が可能との見方を示した。
    1秒間に158兆回の計算ができ、国内最速の「地球シミュレータ2」の同122兆回を上回ったという。
    GPUを大量につなげられるプログラムの開発が成功のカギとなり、数百億円規模が必要とされる開発費用を3800万円に抑えたという。



    事業仕分けでスーパーコンピューターの予算を巡る議論が沸騰する中、激安で作る方法=GPGPUが世間でも注目された。

    ● GPGPUマシンの作り方
    http://www.slideshare.net/pfi/20091210-gpu
    PFIのスライド資料p.25~p.41に、GPGPUマシンの作り方が紹介されていた。
    PFIっていろんな研究を手がけているんだな~。スゴイ!

    <パーツ代>
    約40万円
    M/B ASUS P6T7 WS
    VGA NVidia GeForce GTX285、GTX295など
    電源 EGX1250EWT(1250W)、SF-1000R14HE(1000W)

    <パーツ選びのポイント>
    (上記スライド資料のp.26参照)

    「歩留まり向上のため、市販のGPUにはグラフィック表示には問題がなくても全演算機を動かすとたまに計算を間違えるものが含まれている。
    メーカーによってはこの場合でも返品や、交換に応じれくれる。」
    「長崎大学ではGPUを多めに購入して自前でスクリーニングプログラムを開発している(このへんも安さの秘密)。
    そのうちスクリーニングプログラムが公開されたり、GPU計算用チェック済みGPUが売られるようになるのでは。」



    GPUの不良品をチェックするツールがあると便利。
    ・公開されているツールを探す
    ・ツールを作っていそうな人に提供を依頼する
    ・ツールを自前で作る

    ● GPGPUの使い方
    (1)科学計算
    http://ja.wikipedia.org/wiki/GPGPU

    GPGPUで性能が向上するアプリケーションとしては、
    * 高性能クラスタ(HPC)
    * 物理シミュレーション
    * フーリエ変換
    * 音声処理
    * デジタル画像処理
    * ビデオ変換処理
    * レイ・トレーシング
    * 分子動力学法
    * 流体計算・気候シミュレーション
    * データベース処理
    * 格子ボルツマン法
    * 暗号解読
    * 市況分析
    * 天体シミュレーション
    * 機械学習
    * 最適化問題
    * Constructive Solid Geometry
    などが期待されている。



    (2)動画編集
    http://pc.watch.impress.co.jp/docs/topic/feature/20090630_296585.html
    http://pc.watch.impress.co.jp/docs/column/nishikawa/20090518_168541.html
    GPGPUの機能を活用した画像処理ソフトが販売されている。

    (3)ゲーム
    http://www.4gamer.net/games/076/G007660/20090123016/
    もともと3Dゲーム用の機材が発展した製品だから、当然ゲームでも活用されていると。

    ● GPGPUの欠点
    一度に大量の計算をこなせるのがGPGPUの長所であり、現状ではGPGPUの適した用途は限られている。
    ・条件分岐が入る処理は速くない。
    ・条件分岐なしで、大量の単純計算を同時に実行する処理が速い。(並列処理)

    GPGPUの課題は、条件分岐を高速に処理できるようにすること。
    ・現在のスパコンを置き換えるものには、まだなっていない。
    ・CPU+GPGPU=ヘテロジニアスマルチコア(非対称メニーコア)によって、GPGPUの欠点が解消されるか?

    ● GPGPUの販売状況
    (1) 主な販売店
    http://www.elsa-jp.co.jp/inquiry/dealerlist/index_tesla.html

    NVIDIA Teslaの購入はこちらのシステムインテグレーターまでお問い合わせください。


    日本SGI株式会社 (=スパコンメーカー)
    株式会社ファナティック (=秋葉原のサーバ専門店)
    uniV
    株式会社ベストシステムズ
    システムワークス株式会社
    株式会社日本コンピューティングシステム
    株式会社ユニットコム (=秋葉原のPCショップ)
    株式会社サードウェーブ (=秋葉原のPCショップ)
    株式会社フィックスターズ
    HPCシステムズ株式会社
    株式会社JCCギミック

    ドスパラの販売ページ
    http://gpgpu.dospara.co.jp/product_fractica.html
    ユニットコム(TwoTop、パソコン工房、Faith)の販売ページ
    http://www.unitcom.co.jp/gpgpu/gpgpu_model.html

    (2)スペック
    普通のパソコンと違う点

    ・パーツ構成
    NVidiaのGPUを複数枚使う。
    容量のでかい電源。

    ・OS、ソフト
    WindowsかLinuxがプレインストールされている。
    メモリを4GB以上載せる場合は、64bitOSを使用。

    ・オプションサービス
    CUDA(NVidiaのGPGPUプログラム開発環境)のサポート等。

    ・ネットワーク
    GPGPUマシンは1台でも使用可能だが、複数台をネットワークでつなげて使う場合が多い。
    接続方法は、通常の家庭用LANよりも高速な方法を利用する。

    InfiniBandとは 【インフィニバンド】

    InfiniBandとは、Intel社を中心に設立された業界団体が推進する次世代インターフェイス技術。
    主に外付けインターフェイス用の技術として開発されており、サーバのクラスタリングや外部ストレージとの接続など、超高速での通信が求められる分野での活用が期待されている。
    InfiniBandの通信速度は1チャネルあたり片方向2.5Gbpsで、1本のケーブルに最高12チャネルを収納できるため、ケーブル単位では最高で片方向30Gbps、双方向60Gbpsまでの対応が可能となっている。



    Fibre Channelとは 【ファイバーチャネル】

    Fibre Channelとは、コンピュータと周辺機器を結ぶためのデータ転送方式の一つ。
    主に、高い性能が必要なサーバで、コンピュータ本体と外部記憶装置を接続するのに利用されている。
    機器の接続には同軸ケーブルか光ファイバーを用い、機器間の最大距離は光ファイバーの場合で10km、同軸ケーブルの場合で30mである。
    最大転送速度は同軸ケーブルの場合で133Mbps、光ファイバーの場合では1.0625Gbpsと非常に高速。
    1台のコンピュータに最大125台の機器を接続することができる。



    10GbEとは 【10Gigabit Ethernet】

    10GbEとは、通信速度10GbpsのEthernet規格。
    CSMA/CDにこだわることを止め、物理層によって複数の方式を用意することによって、最大40kmの長距離伝送を可能とし、LANだけでなくMAN(メトロポリタンエリアネットワーク)やWANでの利用も視野に入れている。
    Fast EthernetやGigabit Ethernetとの互換性から、SONETやATMに比べて導入・維持に必要なコストが低く抑えられるという。
    標準化を支援する業界団体として、3Com社やCisco社、Intel社などが中心となって10GEA(10Gigabit Ethernet Alliance)が結成されている。



    InfiniBandやFibreChannel、10ギガビットイーサカードは、通常のLANカードやハブに比べて値段が高い。
    個人で使うなら、とりあえずスタンドアロンでOK。

    ● GPGPUの将来性
    キーワードは「メニーコア」(many core)

    21世紀コンピューティングの新潮流を語る - Computing in the 21st Century

    これまではスーパーコンピュータやグリッド・コンピューティングなどで行われていた膨大な計算量の解析処理も、CPUのマルチコア化やGPUを汎用的な演算に応用するGPGPUに登場よって並列演算能力が大幅に向上したため、低コストで実現できるようになるだろう。

    これまではクロックレートの上昇がコンピュータの進化(性能)に直結していたが、消費電力と熱の問題からメニーコアの時代へと移行しつつある。ハードウェアの進化の流れは、大きな変化を迎えているというのだ。



    CPUは、コア数をどんどん増やして、並列処理で速度をアップさせる方向に向かっている。
    IntelやAMDもメニーコア製品の開発を手がけている。
    Larrabee - Wikipedia

    Larrabee(ララビー)は、米インテル社が社内用のソフトウェア開発プラットフォームとして開発中の半導体製品の社内コードである。
    これはインテル社が進めているメニイコア戦略による次世代CPU製品、または汎用処理能力の高いGPU製品として開発を進めていたものであったが、グラフィック用半導体製品として販売される予定は当面なくなった。



    AMD Fusion - Wikipedia
    Fusion(フュージョン)とはAMDが発売を予定しているCPUとGPUを合成させた新しい製品の開発コード名である。

    現在GPUコンピューティングはNVIDIAのCUDAなどで応用が進んでいる。
    競合するAMDもGPUを汎用プロセッサとしてCPUの演算機能として取り込む計画である。
    将来的にヘテロジニアスマルチコアという非対称な多数コアテクノロジを導入することを前提としCPUとGPUの融合を進めるために開発が行われている。



    GPGPUは構造がシンプルなので、CPUに比べてコア数を増やすのが簡単かつ安価。
    安価なスパコンとして、メニーコアCPUよりも先にGPGPUが実用化されている。

    とりあえず、CUDAでストリーム・プロセッシングを試してみたい。
    NVidia - CUDA ZONE
    やっぱりというか、配列アライメントの計算ツールがあった。

    CUDA - Wikipedia

    対応言語
    現在は、C言語とC++の一部の構文のみであるが、Fortranも準備中。
    BLASインターフェイス経由でベクトル・行列演算が可能。
    FFTライブラリも付属する。

    言語バインディング
    C言語以外からCUDAを呼べるようにしたバインディングがある。
    * Python - PyCUDA
    * Java - Hoopoe jCUDA、JCuda.org、JCublas、JCufft
    * .NET - Hoopoe CUDA.NET



    CUDAは、C/C++、Python、Java、.NETで利用可能と。
    Javaが使えるということは、JVM上で動く言語…Scalaだとか、ClojureからもCUDAを呼び出せるってことですね!

    Folding@Homeのような使い方=GPGPUマシンをたくさんつないだクラウドサービスとか登場しないかな!?
    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/445-e3aceaf8

    インテルGPGPU開発の迷走

    インテル自身もプロセッサ内にGPGPUを取り込もうと開発を進めていたが

    FC2Ad