- 2016.07.13 Wednesday
- スカラ (scalar) とは? 集成体型 アグリゲート (aggregate)とは? 反対語?
-
スカラ (scalar) とは? スカラー (数学 mathematics) スカラー (物理学 physics)
ひとつの値で表現できるもの。大きさのみを持つ量のこと
B言語 や K&R(Kernighan& Ritchie) C ANCI-Cなど歴史があるが最初 C は スカラしか扱えない言語だった。
char 0~255
int -2,147,483,648 〜 2,147,483,647。 9桁〜 10 桁 符号付き 32 ビット整数 (Cの場合)
double ±1.5 × 10−324 〜 ±1.7 × 10308 15 〜 16 桁 (Cの場合)
などの算術型、
ポインタ型のアドレス 0xbfa5719c なども含む
集成体型 アグリゲート (aggregate)
スカラーの集まりのことを表す。
スカラーとの反対語になるのかな aggregate
配列、int[] myNumbers = new int[10];
構造体、 struct myStruct{int:id=10,string name="aaaa"} アドレス複数
共用体、union myUnion{int:id=10,double d1=1000} アドレスは1つ
リスト List<int> intList = new List<int>();
文字列 char[]
スカラーの説明にもどる
大きさと向きと2つの量のことをベクトルとした場合、大きさしかない 数値の事をどう呼ぶのだろうかという疑問が出るかもしれない。大きさしかない数値のことは、スカラー(scalar)
と呼ぶ
発音はスケールににている
スケーラーだ
https://translate.google.co.jp/m/translate#ja/en/%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%0Ascale%0Ascalar%0A%E3%82%B9%E3%82%AB%E3%83%A9%E3%83%BC
位置ベクトルの要素の1つ1つは、スカラーだった。長さや、質量、また時間は時間は、当然向きを持たないので、いずれもスカラー量だ。
いったんベクトル計算機に
はなしを持っていく
ちなみにベクトル計算を行うスーパーコンピュータが採用してきたベクトル型CPUは
SIMD命令(single instruction multiple data)
は、配列内のデータ群を一挙に並列して処理する
行列があるとする
x0 y0 z0 w0
x1 y1 z1 w1
x2 y2 z2 w2
x3 y3 z3 w3
AoS つまり Array Of Structure はx0 y0 z0 w0を処理する配列内の型が違う場合があり、メモリーへランダムアクセスとなり応答遅延時間レイテンシーが大きく、パフォーマンスが低下する
SIMD演算命令都合でメモリーパディングや、
アライメントの調整が必要になる
SoA つまり Structure Of Array は x0 x1 x2 x3 を処理する 同じ種類のデータ型を処理するため
素直にSIMD命令が実行される
例えば
32ビットのデータを4つ、128ビット分まとめて処理できる
AoSからSoAへの変換という命令もあるが
unityはSIMD命令を使うためのAPIは公開していないandroid ios ARM NEON
https://moonshine-project.github.io/ja/2010/07/02/iphone-pixel-processing-optimization-with-neon/
のようなSIMDセットによる演算はネイティブプラグインでintrinsic関数軍をつかうか、インラインアセンブリ書くか、コンパイラの自動ベクトル化を利用するかしなければならない
スカラーの話に戻る
ベクトル計算機という配列並列処理によるベクトル型CPUに対して
1命令で1つまたは2つのデータを処理する一般的なCPUは、スカラー型CPUと呼ばれる。
また、複数の実行ユニットとしてのパイプラインステージ群をCPUを内部に設ける事で、
スカラー型CPUで複数命令の並列実行を可能としたアーキテクチャ(構造、architecture)を、スーパースカラー(super scalar)という。
コンピュータのCPUとしては、大きさと向きを持った量としての幾何学の幾何ベクトルそのものを直接処理するようにはできておらず、
あくまでスカラー量またはスカラーの配列としての数ベクトルを処理する
- | whaison | Unity3d | 11:05 | comments(0) | - | pookmark |
- Comment