2016 暑期高效能運算課程

High performance computing and Big data.

140x140

基本資訊

 

【日期】 2016/8/29

【時間】 ■09:10~12:00 ■13:20~16:10

【地點】 計中 106 教室

【費用】 臺灣大學及國立臺灣大學系統 500 元,其他 1000 元

【主辦單位】國立臺灣大學計算機及資訊網路中心(臺大計中)

【協辦單位】NVIDIA


140x140

師資

 

NVIDIA PGI Group


140x140

課程簡介

 

OPENACC 為最簡易的可攜式與最適合運用於GPU加速傳統程式碼的指令。
NVIDIA結合OPENACC為GPU運算提供友善入門的環境。

OpenACC 指令簡單且可攜帶,也不需要變動目前 CPU 的程式碼,因此不會浪費任何寫程式碼的時間,是加速科學程式碼的最佳方式。OpenACC 的其中一項主要功能是可讓效能用在更多地方,編譯器會將這項功能發揮到更多用途,而且首次可在 x86 多核心 CPU 中加速 OpenACC 程式碼,當然也可在 GPU 中進行加速。採用OpenACC後,您只要在 Fortran 或 C 程式碼內嵌入編譯器 (OpenMP 形式的指令) 嵌入需要大量運算資源的部分程式碼提示,編譯器即會自動將程式碼中需要大量運算的部分交由GPU進行處理,藉此提高效能。

NVIDIA OpenACC 工具套件具備優異的 Linux 版本 PGI 加速器 Fortran/C 工作站編譯器套件,其中可支援 OpenACC 2.0 標準。我們在釋出 OpenACC 工具套件時,首次為學術界的開發和研究人員提供免費的編譯器。 全新的套件還包括 NVProf Profiler,指引使用者加入 OpenACC 「指令」或簡單編譯器提示的部分,幫助你加速程式碼。這功能也包括了簡單、真正可使用的程式碼範例,讓你可馬上運用OpenACC標準投入編程工作。

參加本課程可以協助您了解:

  1. 何謂GPU高效能運算?
  2. 如何建構你第一次就上手的OPENACC 程式指定。
  3. 簡單好入手的OPENACC 程式在C,Fortran C++下使用。
  4. 如何正式撰寫你自己的OPENACC 語法。
  5. 如何處理並優化你的 Data?
  6. NVIDIA CUDA & PGI OPENACC 函式庫交互運用與特殊功能介紹。
  7. PGI OPENACC Compiler 所提供的特點與Fortran 90 APIs 教學。

140x140

課程內容

 

OPENACC 初階:

  1. Introduction to accelerated computing
    a) Your first OpenACC program
    b) Simple OpenACC program in C, Fortran, C++
    c) Data management
    d) Compute placement
    e) Building the program
    f) Compiler feedback
    g) Running the program
  2. Parallel and Loop directives
    a) Gang, worker, vector concepts
    b) Parallel construct clauses
    c) Kernels construct
    d) Loop directive and loop clauses
    e) Reduction clause
    f) Collapse clause
    g) Independent clause
    h) Cache directive
  3. Data directives, data lifetimes
    a) Predetermined private
    b) Implicit private
    c) Implicit and explicit attributes
    d) Present and Present_or_ clauses
    e) default(none)
    f) Private and firstprivate
    g) Unstructured or dynamic data lifetimes
    h) Host_data construct
    i) Update directive
  4. Optimization strategies
    a) Performance measurement
    b) Collapse clause
    c) Strides, data structures
    d) Async clause for data, update, compute
    e) Wait directive
    f) Wait with async
    g) Inlining Procedure Calls
    h) The Routine directive
    i) Atomic operations
  5. C++ and issues related to deeply nested structs
    a) pgc++ and GNU compatibility
    b) "this" pointers, data members, class methods
    c) seq routine auto-generation
    d) PGI's acc_attach() extension
    e) The future of deep copy
    f) The future of NVIDIA unified memory
  6. CUDA-like interoperability
    a) C with CUDA C example, Fortran with CUDA Fortran example
    b) Deviceptr clause
    c) API routines to manage device data
    d) CUDA-specific API routines
    e) Interaction and integration with CUDA C and CUDA Fortran
    f) Interfacing with CUDA libraries from both host and device
  7. PGI Specific Features
    a) Multiple device support, deviceid clause and API routines
    b) Host as a device
    c) Multiple threads
    d) Command line options, shortloop clause
    e) Low-level optimization
    f) Fortran 90 API routines
    g) C support for multi-dimension (float**) arrays

140x140

對象

 

具備基本 C , C++ programming知識,未來想從事系統開發工程師、財務分析工程師、電子/電機相關工程師、測試/量測工程師、醫學界研發人員、生物科技研究人員,以及統計/數值分析人員等


140x140

備註

 

  1. 本課程使用階梯式教室,備有電源插座,建議學員自行攜帶筆記型電腦,以隨時配合講師操作實習。請預先安裝SSH client軟體(如putty)。
  2. 本課程提供午餐,限當日準時報到學員。
  3. 如因報名人數過多,本中心得更換教室。請學員務必於上課前三日,上網確認上課地點。