GPU分散式演算法設計與單機系統模擬(第二季) 高雄大學 吳志宏
Outline OpenMP CUDA vs. OpenMP GPU Experiment Nvidia Tesla OpenMP with Tesla Conclusion 2/1/2010 ICAL
OpenMP Open Multi-Processing,OpenMP(only for Intel) OpenMP is an API to supports multi-platform shared memory multiprocessing programming in C/C++ and Fortran on all architectures. 2/1/2010 11/17/09 ICAL
OpenMP vs. CUDA OpenMP使用多核心CPU來運算 優點: 缺點: 可以平行化的程式比較多(允許較複雜程式) ,可 依照task目標來平行。 在CPU之中執行程式, 在memory的溝通上較快, 且無額外成本。 缺點: 在大量簡單資料處理上較慢, 因為核心數少。 只有Intel的產品支援。 2/1/2010 ICAL
OpenMP vs. CUDA(續) CUDA使用大量核心的GPU運算 優點:在處理資料量龐大而簡單的運算時,加 速非常明顯,可為CPU的數十倍甚至數 百倍。 缺點: 只能處理較簡單的運算。 資料精度受到限制,用double效能會大大降低。 在memory的溝通上較慢,有較多額外的I/O成本。 只有Nvidia Geforce 8系列以上的GPU支援。 2/1/2010 ICAL
GPU Experiment 預先使用SVD演算法將一張1024×1024的影 像分解成9個1024×1024的距陣。 設計演算法將前述的9個距陣透過乘法還原 原始影像,分別使用單一核心CPU、4核心 CPU、96核心GPU進行模擬。 2/1/2010 ICAL
Experiment Environment GPU Device NVIDA Geforce 9600 GSO Cores 96 Processor Clock 1375 MHz Standard Memory 384 MB Memory Bandwidth 38.4 GB/sec CPU Device Intel Core2 Quad Q9300 Cores 4 Processor Clock 2.5 GHz FSB speed 1333 MHz L2 Cache 6 MB 11/17/09
Experiment Results 2/1/2010 ICAL
Speedup VS. Single-Core Experiment Results Single-Core Multi-Core CUDA Speedup VS. Single-Core Speedup VS. Multi-Core Red 43.36 sec. 22.437 sec. 0.766 sec. 56.606 29.291 Green 44.046 sec. 25.312 sec. 0.562 sec. 78.374 45.039 Blue 44.219 sec. 26.64 sec. 78.681 47.402 Total (sec.) 131.625 sec. 74.389 sec. 1.89 sec. 71.220 40.577 2/1/2010 ICAL
Nvidia Tesla The Tesla GPU is a General Purpose GPU. The primary function of Tesla products are to aid in simulations, large scale calculations ,and image generation for professional and scientific fields,with the use of CUDA. 2/1/2010 ICAL
OpenMP with Tesla 一台單機系統可使用PCI-E x16插槽接PCI-E 橋接卡,透過橋接卡外接一台Tesla專用機 櫃,一個機櫃最多可插4張Tesla加速卡。 2/1/2010 ICAL
OpenMP with Tesla(續) 可使用多核心CPU搭配數張Tesla加速卡做 協同運算,但資料無法在不同的Tesla加速 卡之間做交換,因此必須在程式中預先指 定哪些資料要分給哪一張卡做處理。 當程式執行時用"用多核心程式來安排"每一 個CPU核心執行不同的任務(task),再由各 自核心去控制指定的GPU來進行資料(data) 加速。 例:4 cores CPU+4 Tesla,1 core控制1 Tesla 2/1/2010 ICAL
OpenMP with Tesla(續) 2/1/2010 ICAL
Conclusion 儘管使用多核心CPU可以增加資料處理的速度 ,但使用大量核心的GPU加速效果更為明顯, 可能為多核心CPU 的數十甚至數百倍。 使用GPU及多核心CPU可降低雲端運算主機在 大量資料處理上的負擔,擴充多核心CPU 及 GPU 單價較新購主機低廉許多,可有效降低成 本。 單機系統可用外接的方式使用多張Tesla加速卡 ,並使用多核心CPU搭配Tesla加速卡做協同運 算,由各別的CPU核心來控制Tesla加速卡,但 需要在事先做好資料分配規劃。 2/1/2010 ICAL