GPUは「グラフィック・プロセッシング・ユニット」という名前が示す通り、
コンピュータの画像・映像処理のために考案されたプロセッサだ。
しかし、それ以外のさまざまな用途にも応用できる。
例えばグーグルではGPUを利用して人間の脳を模倣する方法(日本語版記事)の研究を進めているし、
セールスフォースはTwitterフィード上に流れる情報の分析にGPUを活用したシステムを使っている。
ただし、同時並行処理を得意とするGPUをうまく活用するには、専用のソフトウェアを開発する必要があった。
インディアナ大学の博士課程で学ぶエリック・ホークという学生は、
そんなソフトウェアを開発するための手助けが欲しかった。
そこで彼はGPUで処理を行うアプリケーション開発に特化した「Harian」という新しいプログラミング言語を生み出したのだ。
「プログラマーがGPUのプログラミングを行うには、
本来の目的から脱線する多くの低水準な作業を行う必要がある」とホーク氏は話す。
「こういった作業の手間を省き、プログラマーがより高い生産性を発揮してGPUを利用できるシステムが、われわれには必要だった」(ホーク氏)
通常、コンピューターのほとんどの処理を行っているのはセントラル・プロセッシング・ユニット(CPU)で、CPUはスレッドと呼ばれる一連の命令をできるだけ早く処理するものだ。
一方、GPUは複数のスレッドを同時に処理する。
ひとつひとつのスレッドの処理速度こそCPUには劣るものの、
プログラムを並行処理に適したものにすることで、全体としてはCPUより高速で処理を行うことができる。これはスーパーコンピューターによる処理と同様のものだ。
近年では複数のコアを搭載するCPUも一般的になっており、
CPUで並行処理を行うこともできる。
しかしホーク氏によれば、
CPUは依然としてシングルスレッドの処理に最適化されたものだという。
GPU向けのプログラミングには、CUDAやOpenCLなどの言語もあり、
実際にHarlanはOpenCLにもコンパイルできる。
しかし、Harlanは両者とは違ってPhythonやRubyのような、
より高水準なプログラミング言語に伴う抽象化を提供するという。
コンピュータの画像・映像処理のために考案されたプロセッサだ。
しかし、それ以外のさまざまな用途にも応用できる。
例えばグーグルではGPUを利用して人間の脳を模倣する方法(日本語版記事)の研究を進めているし、
セールスフォースはTwitterフィード上に流れる情報の分析にGPUを活用したシステムを使っている。
ただし、同時並行処理を得意とするGPUをうまく活用するには、専用のソフトウェアを開発する必要があった。
インディアナ大学の博士課程で学ぶエリック・ホークという学生は、
そんなソフトウェアを開発するための手助けが欲しかった。
そこで彼はGPUで処理を行うアプリケーション開発に特化した「Harian」という新しいプログラミング言語を生み出したのだ。
「プログラマーがGPUのプログラミングを行うには、
本来の目的から脱線する多くの低水準な作業を行う必要がある」とホーク氏は話す。
「こういった作業の手間を省き、プログラマーがより高い生産性を発揮してGPUを利用できるシステムが、われわれには必要だった」(ホーク氏)
通常、コンピューターのほとんどの処理を行っているのはセントラル・プロセッシング・ユニット(CPU)で、CPUはスレッドと呼ばれる一連の命令をできるだけ早く処理するものだ。
一方、GPUは複数のスレッドを同時に処理する。
ひとつひとつのスレッドの処理速度こそCPUには劣るものの、
プログラムを並行処理に適したものにすることで、全体としてはCPUより高速で処理を行うことができる。これはスーパーコンピューターによる処理と同様のものだ。
近年では複数のコアを搭載するCPUも一般的になっており、
CPUで並行処理を行うこともできる。
しかしホーク氏によれば、
CPUは依然としてシングルスレッドの処理に最適化されたものだという。
GPU向けのプログラミングには、CUDAやOpenCLなどの言語もあり、
実際にHarlanはOpenCLにもコンパイルできる。
しかし、Harlanは両者とは違ってPhythonやRubyのような、
より高水準なプログラミング言語に伴う抽象化を提供するという。