Version 18 (modified by nakasato, 16 years ago) (diff) |
---|
基本情報
- AMD/ATi社のGPUをプログラムするための環境のひとつがCALである
- 仮想的なアセンブラによりGPUで実行するためのプログラムを作成できる
R770の基本
- R770アーキテクチャのGPUチップは、HD4850, HD4870として売られているボードに搭載されている。
- 二つのボードの違いは、動作クロックとメモリインターフェイス
- Shader Processorが800個搭載されており、それぞれが単精度でMultiply-Addが可能なprocessorである。実際には、単純に単精度演算ができるprocessor(Stream Core)が4個と関数演算もできるprocessor(T-Stream Core)が一緒になって、128 bitレジスタをもつ5 wayのVLIW processor(Thread Processor)になっているらしい。さらに、このTPが、X個づつまとまって、メモリを共有している(shared buffer)と思われる。
- 以上のことから単精度での理論性能は以下の式で計算される:
単精度性能 = (Number of TP) * 5 (ways) * 2 (FP ops) * clock (MHz) = X MFLOPS
- 倍精度については、生成されたR770のアセンブラソースを見ると:
- 加算はStream Coreを2個利用
- 乗算はStream Coreを4個利用
- 除算は単精度の初期値をつかってどうにか
のように実行されるようだ。結果的に倍精度加算の性能は単精度性能の1/5となり、乗算は1/10になる。
- 性能まとめ表
board | arch | clock | memory | SPの数 | 単精度性能 | 倍精度加算性能 | 倍精度乗算性能 |
HD4850 | R770 | 650 MHz | DDR3 | 800 | 1040 GFLOPS | 208 GFLOPS | 104 GFLOPS |
HD4870 | R770 | 750 MHz | DDR5 | 800 | 1200 GFLOPS | 240 GFLOPS | 120 GFLOPS |
x2のボードは単純に2倍の性能
Linuxにおける利用方法
- Ubuntuにインストール : Ubuntu 8.04 LTSへインストール
CALプログラムの基本
以下は2008年度卒研用に中里が作成したものである。SDKのバージョンが1.2.1betaの時点での情報である。 利用しているGPUボードは、HD4850 512MBのもの。HD4870 1GBのボードでも同様に利用できている。
- CALを説明したプレゼンファイル(2008年8月作成) : CAL200808.pdf (Ubuntuで見ると字がずれます)
- CALプログラミング(0) : 準備
- CALプログラミング(1) : 簡単なプログラム
- CALプログラミング(2) : 簡単なプログラムの拡張
- CALプログラミング(3) : ループ
- CALプログラミング(4) : 倍精度
Attachments (1)
- CAL200808.pdf (1.0 MB) - added by nakasato 16 years ago.
Download all attachments as: .zip