簡易檢索 / 詳目顯示

研究生: 陳兆銓
Chen, Chou-chuan
論文名稱: 在異質系統架構平台上啟用OpenCL運行庫
Enabling OpenCL Runtime on HSA Platforms
指導教授: 李政崑
Lee, Jenq-Kuen
口試委員: 李政崑
Lee, Jenq-Kuen
游逸平
You, Yi-Ping
黃元欣
Hwang, Yuan-Shin
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2015
畢業學年度: 103
語文別: 英文
論文頁數: 30
中文關鍵詞: OpenCLOpenCL運行庫異質系統架構pocl
外文關鍵詞: OpenCL, OpenCL runtime, HSA, pocl
相關次數: 點閱:3下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 近幾年,隨著多核心架構已漸漸無法在效能及功耗上符合需求,並且在手持式裝
    置多媒體應用及高畫質影片的播放更使得顯示晶片(GPU) 的重要性日益增加。因
    此,人們也越來越重視顯示晶片,因其在平行計算以及圖形處理的效率上較一般處
    理器(CPU) 占有優勢。為了要能夠善用不同種類設備的運算資源,一個能用在異
    質系統上的平行運算框架―OpenCL,越來越廣為人知。現今,OpenCL 在較重運
    算的應用上,例如:人臉辨識、三維模型建模以及高畫質影片解碼。
    在最近,HSA 基金會發布了異質系統架構,這個架構能使得不同種類的設備能
    更有效率的協同運算,它能夠使不同種類的設備共用同樣的記憶體定址,並且能分
    配工作給不同種類的設備,這使得OpenCL 能更有效率且功能更為強大。
    在本論文裡,我們實做了一個能用在異質系統架構平台的OpenCL 運行庫,這
    是透過擴充原本的pocl 架構並且加入了HSA 基金會釋出的官方編譯器來實現。
    Pocl 是一個開源的OpenCL 框架,並且透過pthread 來實作。在實驗中,我們成
    功通過了在AMD APP SDK 的幾乎所有範例,這也顯示了我們的運行庫能用在之
    後OpenCL 更多功能的擴充以及之後的深入研究。


    In recent years, as multi-core architecture could not feed the improvements
    of performance and power eciency. Moreover, The entertainment
    and multi-media applications in high resolution display of mobile device like
    smart phones and tablets make the computation and graphics ability become
    more and more important. Therefore, people began to focus on GPU, which
    have parallel computing ability and ecient graphic capability.
    To make good use of computing ability of di erent devices, OpenCL ,an
    parallel programming framework for heterogeneous systems has become more
    and more popular. Nowadays, it is used widely for compute-bound programs,
    like face recognition, 3D model Reconstruction and high resolution video
    decoding.
    Recently, HSA Foundation standardize and release Heterogeneous System
    Architecture(HSA). It is designed to integrate di erent kinds of computing
    elements like CPUs and GPUs to work together eciently. HSA can make
    di erent kinds of computing elements share the same memory address and
    even dispatch tasks to each other even they are not the same kind, which
    make OpenCL even more powerful and more ecient.
    In this paper, we implement an OpenCL runtime that enable OpenCL
    programs to run on HSA platforms. We extend pocl framework and integrate HSA compiler released by HSA Foundation to support OpenCL program to
    execute on HSA platforms. Pocl(Portable Computing Language) is an open
    source project to implement OpenCL framework paralleled by pthread In
    our experiment, we show that almost all benchmarks in AMD APP SDK are
    successfully passed by our OpenCL runtime. The runtime is enough robust
    and support sucient features for advanced research.

    Abstract i Contents iii List of Figures v List of Tables vi 1 Introduction 1 1.1 Introduction 1 1.2 Overview of the Thesis 2 2 Background 4 2.1 OpenCL Runtime Flow 4 2.2 HSA Runtime Flow 5 3 Introduction of Pocl Framework 7 3.1 Overview of Pocl 7 3.2 Pocl Implementation of OpenCL Object 8 3.2.1 Device Object 8 3.2.2 Bu er Object 8 3.2.3 Program Object 9 3.2.4 Kernel Object 9 4 HSA-Enabled OpenCL Runtime Design 10 4.1 OpenCL Environment Initialization 11 4.2 Memory Allocation 12 4.3 Programs and Kernels 13 4.4 AQL Format Initialization 15 4.5 Kernel Argument Initialization 17 4.6 Resource Release 19 5 Experiment Results 20 5.1 Experiment Environment 20 5.2 Experiment 21 6 Conclusion 27 6.1 Summary 27 6.2 Future Work 27

    [1] HSA Runtime Programmer's Reference Manual, HSA Foundation, 2014.
    [2] J. Lee, J. Kim, S. S. S. Kim, J. Park, H. Kim, T. T. Dao, Y. Cho,
    S. H. Lee, S. M. Cho, H. J. Song, S.-B. Suh, and J.-D. Choi, \An opencl
    framework for heterogeneous multicores with local memory," in Proc.
    ACM International Conference on Parallel Architectures and Compila-
    tion Techniques(PACT'10), Sep. 11{15, 2010, pp. 193{204.
    [3] R. Sakamoto, Y. Koizumi, H. Amano, H. Amano, and M. Namiki, \An
    opencl runtime library for embedded multi-core accelerator," in IEEE In-
    ternational Conference on Embedded and Real-Time Computing Systems
    and Applications(RTCSA'12), Aug. 2012, pp. 419{422.
    [4] J.-J. Li, C.-B. Kuan, T.-Y. Wu, and J. K. Lee, \Enabling an opencl
    compiler for embedded multicore dsp systems," in 2012 41st International
    Conference on Parallel Processing Workshops(ICPPW'12), Sep. 10{13,
    2012, pp. 545{552.
    [5] P. Jaaskelainen, C. S. de La Lama, E. Schnetter, K. Raiskila, J. Takala,
    and H. Berg, \pocl: A performance-portable OpenCL implementation,"
    International Journal of Parallel Programming, 2014. [Online]. Available:
    http://dx.doi.org/10.1007/s10766-014-0320-y
    [6] clang: a c language family frontend for llvm. Computer Science
    Department at the University of Illinois at Urbana-Champaign. [Online].
    Available: http://clang.llvm.org/
    [7] The llvm compiler infrastructure. Computer Science Department at
    the University of Illinois at Urbana-Champaign. [Online]. Available:
    http://llvm.org/
    [8] D. Steckelmacher. (2011) An opencl state tracker for gallium based on
    clover. [Online]. Available: http://people.freedesktop.org/ steckdenis/-
    clover/
    [9] (2012) Accelerated parallel processing (app) sdk.
    Advanced Micro Devices Inc. [Online]. Available:
    http://developer.amd.com/tools-and-sdk/heterogeneouscomputing/
    amd-accelerated-parallel-processing-app-sdk

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)

    QR CODE