Top > 2012-06-02 > 5 (発表5回) SASS について SASS とは何か? PTX nvccが出すアセンブリ。 その更に後ろにあるほぼ、ネイティブアセンブリ。 Full CUDA compilation st.... この decuda を活用して書かれた "Micro-benchmarking the GT200" は全CUDAプログラマが読むべきものであると思う。 nvcc
cubin は 1つの機械語しか入れられないが fatbin を使うと1つのファイルに複数の機械語 + ptxを入れられる。 CUDA ランタイムは動きそうなマシンの機械語+PTXを入れて、駄目な場合でもPTXから変換して動作する。-arch=compute_XXX
cuobjdump のマニュアル。 活用事例。(こんなん役に立つの?と思われる方に) 命令毎のスループットを取りたい。ptxas が勝手に命令消しやがる。sass で見ると消えてるのが見える。cuobjdump 必須。 add_u64 'GT200 には64bit加算がある) NVGPU は対応してないので32bit 加算にかえてしまう。 (そもそも GT200 は32bitアドレスなので上位は無駄な事が多い。ポインタでは) sm_20 (Fermi)以降は、64bit なので、この辺の苦労はなくなる。 Tesla2050(Fermi世代)。 reduction の時にメモリバリアをちゃんと書いてないとき。 _threadfence_block() コンパイラの最適化を抑制する以上の効果が? 命令見ると MEMBER なんてある。SM20 ではメモリバリアが必要なのでは?
まとめ。 PTXより情報量あるので。SAAS 読むべき。
|