PascalのSMの設計思想としては、インフライトのスレッド数を上げるっていうのが主眼に置かれていて、そのためにレジスタ数を倍にして、ActiveThreadを倍になるようにした #kantogpu
2016-08-21 14:21:01Coreが一番大事なリソースだが、Coreはストールする。その際になるだけストールしないようにWarp数を増やす。レジスタは倍に増えた。 色々メモリアクセスの帯域が、(コアが半分になったので)倍に増えた。 #kantogpu
2016-08-21 14:21:14Hight Instruction Throughput が実現されているので、少なくなったコア数を高効率で使えるようになった感じ。 #kantogpu
2016-08-21 14:22:19KeplerやMaxwellとかでコア数(=1thread)あたりのregisterやshared memoryが減っててなんだかなぁと思ってたところがPascalで改善されておお〜と思っていたところ #kantogpu
2016-08-21 14:22:20あー、またFP16の話がー。私の今日のネタがー! #kantogpu
2016-08-21 14:22:50んー、たしかにFP16だけで話すのはネタが少なかったかなぁ。 #kantogpu
2016-08-21 14:23:53FP64 での Atomic Addition は CC6.0 で追加された。 CC6.1 でもサポートされている。 #kantogpu
2016-08-21 14:24:38keplerではdouble instructionのissue rateはper 3 cycleだったが、pascalではper 2 cycleになった #kantogpu
2016-08-21 14:25:18あー!!モロカブリの図がぁーー!! #kantogpu
2016-08-21 14:25:25Computer Capability 6.0からAtomic AddができるようになってCAS(compare and swap)とかしないでよくなった #kantogpu
2016-08-21 14:25:36Subnormal (Denormal)と呼ばれる非常に小さい数だと、演算が遅かったりするので、そこら辺をがっさり0に丸めたりするアーキテクチャ(GPUにかぎらず)あります。なので、Full Speed で走るというのは、それはそれ意味のある話。 #kantogpu
2016-08-21 14:26:56NVLINK は他のGPUについて atomic なアクセスもできる。すげー。 #kantogpu
2016-08-21 14:27:36@telmin_orca カウントされてる! #kantogpu
2016-08-21 14:27:54HBM2 でサポートされた 機能の1つにメモリ管理が賢くなった。 49bit の Virtual Memory。現在のCPUのメモリ空間は48bitなので、ここにもう1bit追加すると、CPU/GPUがすべて表現できる。 #kantogpu
2016-08-21 14:32:40CUDA 6 時点でのUnified Memory というのは、GPU側のメモリにManaged Memory を確保するという仕組みだった。なので、メモリの量はGPUのメモリ量に制約を受けていた。 #kantogpu
2016-08-21 14:33:59Unified Memoryは、従来はGPU上にメモリを確保していた。それなので、Unified MemoryはGPUの搭載メモリ量で上限が決まっていた #kantogpu
2016-08-21 14:34:06@tomoaki_teshima Pascal での Unified Memory はGPUに搭載されてるメモリ以上に Unified Memory を allocate できる。 cudaMemAdvise API が CUDA 8.0 RC から追加された #kantogpu
2016-08-21 14:37:22cudaMemAdviseといった、Unified Memory周辺のAPIが追加された。メモリのプリフェッチ等を指示するようなAPI #kantogpu
2016-08-21 14:38:14