posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          GP-GPU 閱讀筆記 (2)

          Posted on 2008-02-08 16:05 ZelluX 閱讀(521) 評論(0)  編輯  收藏 所屬分類: Laboratory
          2.4 GPU Program Flow Control
           最新的GPU支持多種形式的分支,但是由于它們的高度并行化的本質,使用這些分支的時候一定要注意。
          2.4.1 Hardware Machanisms for Flow Control
           三種主要實現:
           Predication 并非真正的data-dependent branch
           MIMD branching 
           SIMD branching  同時進行的指令唯一,即各個點的分支選擇應該一致
          2.4.2 Moving Branching Up The Pipeline
          2.4.2.1 Static Branch Resolution
           靜態分析,避免循環內部的分支。這里舉了一個在離散空間點格(discrete spatial grid)上解偏微分方程的例子,不過沒怎么看懂,大致是把循環拆成兩部分的做法。
          2.4.2.2 Pre-computation
           有時候一段時間內或者幾次循環中某個分支的結果會是一個常數。這時候就只要在知道結果會改變的時候重新計算即可。
          2.4.2.3 Z-Cull
           現代GPU有一系列用于避免處理不會被看到的像素的技術,其中之一就是Z-cull。簡單的說Z-cull把沒有通過深度測試(Z軸覆蓋)點直接放棄。在流體模擬中,把land-locked障礙單元的Z深度標記為0,即可跳過這些點的計算。
          2.4.2.4 Data-Dependent Looping With Occlusion Queries
           同樣是避免處理不可見的點的技術
           
          3 Programming Systems
           GPU的架構發展非常迅速,使得profiling和tuning需要由GPU生產商解決。
          3.1 High-level Shading Languages
           Cg, HLSL  和底層硬件很接近
           OpenGL Shading Language  有一些不直接映射到硬件的特性,比如整數支持
           Sh, Ashli, ...
          3.2 GPGPU Languages and Libraries
           上面提到的幾個語言在使用時都要求編程人員站在幾何元素的視角寫代碼。下面的幾個系統試著把一些GPGPU功能抽象出來,隱藏底層的GPU實現。
           Brook  前幾星期打過交道的東東
           Scout, Glift  都沒聽說過。。。
          3.3 Debugging Tools
           GPU的調試功能很受局限。它必須提供在某一時刻顯示多個點的調試信息的功能。一種printf-style的方法是把他們直接顯示在屏幕上(汗,如果是GPGPU編程豈不是花屏了 >,<)。
          主站蜘蛛池模板: 云霄县| 富阳市| 新田县| 商水县| 苏尼特右旗| 稻城县| 泰来县| 杭州市| 三江| 加查县| 大宁县| 宁夏| 侯马市| 伊宁市| 江川县| 吉林省| 琼结县| 荆门市| 阜阳市| 冷水江市| 漠河县| 大英县| 启东市| 犍为县| 吴堡县| 尚志市| 万源市| 玛多县| 微博| 临沂市| 汨罗市| 白玉县| 小金县| 浮山县| 丰原市| 丰台区| 龙陵县| 神农架林区| 天祝| 陕西省| 霍邱县|