PythonはFPGAアクセラレーションの裾野を広げるか:「The Next Platform」で読むグローバルITトレンド(11)(1/3 ページ)
FPGAによる演算処理高速化の恩恵をPythonユーザーが享受できるようにするための取り組みを、科学技術演算分野で南カリフォルニア大学が進めている。Cよりも10倍以上高速な結果が得られたケースもあるという。
英国のIT専門媒体、「The Register」とも提携し、エンタープライズITのグローバルトレンドを先取りしている「The Next Platform」から、@IT編集部が独自の視点で“読むべき記事”をピックアップ。プラットフォーム3へのシフトが急速に進む今、IT担当者は何を見据え、何を考えるべきか、バリエーション豊かな記事を通じて、目指すべきゴールを考えるための指標を提供していきます。
ここ数年、FPGAの使いやすさやアクセスのしやすさを高めるために、さまざまな取り組みが行われている。高レベルインタフェースを提供するOpenCL(Open Compute Language)を使った開発から、Amazon Web Services(AWS)による再構成可能なデバイスの提供まで、こうした取り組みが盛り上がりを見せている。だが、一般の科学技術アプリケーション開発者の間では、FPGAの利用は全く定着していない。
FPGAアクセラレーションと、広く普及したスクリプト言語に精通した一般の科学者との距離を埋めることを目指し、南カリフォルニア大学(USC)のチームは、低レベルのアプローチ(HDL、Verilog)の複雑さを抽象化するPythonベースの新しい開発プラットフォームを構築した。
「われわれはFPGA開発をハードウェア側から後押ししようとするのではなく、Pythonの利用によるアプリケーション開発のスピードアップが及ぼす効果に着目している」と、プロジェクトリードの1人であるUSCのアンドリュー・シュミット氏は説明する。
シュミット氏のチームは「PYNQ」を使用した。PYNQは、Xilinxの「Zynq」ボードをベースとするアプリケーション開発に対応したPython開発環境だ。「Pythonには、コミュニティーが開発したライブラリやアプリケーションの豊かなエコシステムがある。われわれはそれらの低レベルの関数をFPGAの実装に置き換え、デバイスに、例えば、関数Aを呼び出す代わりに関数Aプライムを呼び出すよう指示できる。われわれはこの開発環境で、開発者にとってPythonを使ってハードウェアをプログラムすることの困難さ、そしてもちろん、どのようなオーバーヘッドがあるかも把握しようとした。つまり、どれだけのパフォーマンス低下やレイテンシ、メモリの問題が発生するかも調べた」。シュミット氏は、The Next Platformの取材に対してそう語る。
ボトルネックやレイテンシは思ったほどひどくなかった。結局のところ、もともとOpenCLですら「極めて大きなオーバーヘッドを伴うので、ハイパフォーマンス環境では使いづらい」という声が多い。
Copyright © ITmedia, Inc. All Rights Reserved.