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

          GP-GPU 閱讀筆記 (2)

          Posted on 2008-02-08 16:05 ZelluX 閱讀(529) 評論(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編程豈不是花屏了 >,<)。
          主站蜘蛛池模板: 应用必备| 靖宇县| 旬阳县| 名山县| 广宁县| 门源| 微山县| 类乌齐县| 玉山县| 临桂县| 伽师县| 股票| 涿州市| 正定县| 嵊泗县| 浏阳市| 龙泉市| 望江县| 乡宁县| 西安市| 剑川县| 洛南县| 郧西县| 绥芬河市| 图们市| 广西| 汕头市| 正镶白旗| 米易县| 东至县| 石柱| 漳州市| 隆安县| 五家渠市| 新丰县| 马关县| 榆中县| 页游| 巍山| 河东区| 安泽县|