# HG changeset patch # User ikkun # Date 1487216429 -32400 # Node ID 4d204f37fc8ac724f520e16239e40aecdb00f6cc # Parent 5ef03a4e2fd6e1a6773ef5f1eca3495490a81d32 fix diff -r 5ef03a4e2fd6 -r 4d204f37fc8a presen/slide.md --- a/presen/slide.md Thu Feb 16 11:35:04 2017 +0900 +++ b/presen/slide.md Thu Feb 16 12:40:29 2017 +0900 @@ -14,38 +14,39 @@ # GPUの特徴 - GPU は画像処理に使われる演算処理ユニットである。 - GPU は CPU よりも多数のコアを持ちます。 -- GPU は CPU と違い単純な計算しか出来ない。 -- GPUを画像処理以外の演算処理に利用することをGPGPU (General Purpose computing on GPU)と言います。 +- GPU は小さいTask を大量のデータに対して高並列実行を行うことができる +- データは前もってGPUに転送し結果をGPUから転送する必要がある +- GPUの処理終了やデータ転送時のstream制御などの複雑な問題がある +- Task自体は入力から出力を得る単純な関数型だが、vector処理などの工夫が入ることがある +- Task以外の複雑なのでプログラムの正当性を調べることが難しい -# Code Gear Data Gear とは -- Code Gear Data Gear とはプログラムを分解し、処理の部分を Code Gear、int や文字列などの部分を Data Gear という 単位で分けます。 -- Code Gear の処理は、その処理に必要な Data Gear が揃ってから行われます。 -- Code Gear の処理の移行は goto を用いて行い、この移行の仕方を継続と言う。 -- goto による移行は戻り値を持たないためスタックを詰む必要がない、スタックに積まない継続を軽量継続と呼ぶ。 +# Code Gear/Data Gear とは +- プログラムを分解し、処理の部分を Code Gear、int や文字列などの構造体を Data Gear という 単位で分ける。 +- Code Gear の処理は、その処理に必要な Data Gear がそろってから行われる +- Code Gear 間の移動は goto を用いて行い、この移行先を継続と言う +- goto による移行は関数呼び出しと違いスタックを詰む必要がない軽量継続となる # Gears OS -- Gears OS は Code Gear、Data Gear という Gear で構成されています。 +- Code Gear、Data Gear という Gear で構成されている - Code Gear と Input /Output Data Gear の対応から依存関係を解決し、Code Gear の並列実行を行う - +- 対応する Meta Code Gear と Meta Data Geaer があり、メモリ管理、依存関係、並列処理を担当する +- interface という Code Gear/Data Gear の集合が用意されおり、実装とAPIの分離やコードの再利用を可能にしている -# Meta Computation -- Meta Computation は通常の Computation のComputation である。 -- 並列処理の依存関係の解決 GPU などのアーキテクチャ実行のために行う処理などを行う。 -- Gears OSでは Meta Computation を Meta Code Gear、 Meta Data Gear で表現される。 - -# 並列性 -- Code Gear が処理するのに必要なInput Data Gaer と処理実行後に出力される Iutput Data Gaer の組を Task と呼ぶ。 -- Code Gear は Task 以外とは依存関係がない。 -- 依存関係が明確化されている Code Gear Data Gear で記述することで並列化し易い。 +# Gears OSの並列性 +- Code Gear が処理するのに必要なInput Data Gaer と処理実行後に出力される Output Data Gaer の組を Task と呼ぶ。 +- Data Gearの入出力関係が自然にTaskの依存関係を明確にする +- 依存関係のないCode Gearは自動で並列に実行される +- 並列実行はTaskをMeta Code Gear で記述されたWorker に投げることで行われる