簡易檢索 / 詳目顯示

研究生: 白勝宏
Shen-Hung Pai
論文名稱: GPUBlock:圖形介面工具
GPUBlock:GUI Programming Tool for CUDA and OpenCL
指導教授: 黃元欣
Yuan-Shin Hwang
口試委員: 謝仁偉
Jen-Wei Hsieh
賴祐吉
Yu-Chi Lai
學位類別: 碩士
Master
系所名稱: 電資學院 - 資訊工程系
Department of Computer Science and Information Engineering
論文出版年: 2016
畢業學年度: 105
語文別: 中文
論文頁數: 49
中文關鍵詞: 圖形介面工具
外文關鍵詞: GUI Programming Tool
相關次數: 點閱:213下載:2
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • CUDA和OpenCL都是高效能平行計算的程式語言,架構是GPGPU(General-purpose computing on graphics processing units) ,原本在CPU(中央處理器)處理的計算任務把他拿到處理圖型任務的GPU(圖形處理器) 上做計算,但是這些計算通常與圖形處理沒有任何關係,由於現代圖形處理器強大的並行處理能力,且數據處理的運算量遠大於數據調度和傳輸的需要時,GPGPU(通用圖形處理器)在性能上大大超越了傳統的CPU(中央處理器)應用程式。

    使用GPU做運算,GPU語言也需要有一定的了解,但是GPU平行程式並不是一種循序的語言,所以CUDA和OpenCL寫法對於一般的C/C++程式設計師來說,相較之下是比較困難。

    在本篇論文中,將實作一個利用OpenBlock為基礎的圖形介面工具,其機制是拉取程式塊,並用邏輯的方式編排來自動產生CUDA或OpenCL部分困難的程式碼,藉以簡化平行程式及降低程式出錯的可能。


    Recent advances in general-purpose graphics processing units (GPGPUs) have resulted in massively parallel hardware that is widely available to achieve high performance in desktop, notebook, and even mobile computer systems. While multicore technology has become the norm of modern computers, programming such systems requires the understanding of underlying hardware architecture and hence posts a great challenge for average joe programmers, who might be professionals in specific domains, but not experts in parallel programming. This paper presents a GUI tool called GPUBlock that can facilitate parallel programming on multicore computer systems. GPUBlock is developed based on the OpenBlocks framework, an extendable tool for graphical programming, to construct the GUI-based programming environment for CUDA and OpenCL parallel computing platforms. Programmers simply need to drag-n-drop blocks, fill the fields of the blocks, and connect them according to array or matrix computations that are specified by algorithms. GPUBlock can then export block-based code to CUDA or OpenCL programs. Furthermore, a couple of optimization constructs have also been offered for rapid program optimization. Experimental results have shown that the generated CUDA and OpenCL programs can achieve reasonable speedups on GPUs. Consequently, GPUBlock can be used as a tool for fast prototyping of GPU applications or a platform for educational parallel programming.

    中文摘要 4 英文摘要 5 誌謝 6 目錄 7 圖目錄 9 表目錄 10 第一章 序論 11 1.1 研究背景 11 1.2 研究動機 11 1.3 研究目的 12 1.4 研究方法 12 1.5 論文架構 13 第二章 文獻回顧 14 2.1 GPU平行計算 14 2.1.1 CUDA Programming 14 2.1.2 OpenCL Programming 18 2.2 OpenBlock 21 第三章 方法 24 3.1概念 24 3.2 ANCI C Blocks 25 3.3 GPUBlock 34 3.3.1 最佳化 35 第四章 實驗結果 44 4.1 實驗環境 44 4.2 效能評估 45 第五章 結論 47 5.1 結論 47 5.2 未來展望 47 參考文獻 48

    [1] Dagum, Leonardo, and Ramesh Menon. "OpenMP: an industry standard API for shared-memory programming." Computational Science & Engineering, IEEE5.1 (1998): 46-55.

    [2]Lee, Seyong, Seung-Jai Min, and Rudolf Eigenmann. "OpenMP to GPGPU: a compiler framework for automatic translation and optimization." ACM Sigplan Notices 44.4 (2009): 101-110.

    [3] Lim, Young Won, Prashanth B. Bhat, and Viktor K. Prasanna. "Efficient algorithms for block-cyclic redistribution of arrays." Algorithmica 24.3-4 (1999): 298-330.

    [4]Roque, Ricarose Vallarta. OpenBlocks: an extendable framework for graphical block programming systems. Diss. Massachusetts Institute of Technology, 2007.

    [5]NVIDIA, “CUDA Toolkit Documentation v6.5,” http://docs.nvidia.com/cuda/index.html, Nov. 2014.

    [6]Ryoo, Shane, et al. "Optimization principles and application performance evaluation of a multithreaded GPU using CUDA." Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming. ACM, 2008.

    [7]OpenCL™ Course: Introduction to OpenCL™ Programming
    http://developer.amd.com/tools-and-sdks/opencl-zone/opencl-resources/opencl-course-introduction-to-opencl-programming

    [8]Khronos Group, “The openmp api specification for parallel programming,”
    http://openmp.org/wp/.
    [9]Khronos Group, “Opencl: The open standard for parallel programming of heterogeneous systems,”
    https://www.khronos.org/opencl

    [10]MIT, “Starlogo tng: The next generation of starlogo modeling and simulation software,”
    http://education.mit.edu/projects/starlogo-tng

    [11] Songho.ca ,"Convolution" http://www.songho.ca/dsp/convolution/convolution.html

    [12] "NVIDIA, "NVIDIA GeForce GTX 760 GPU Architecture Overview,"http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-760 ,2013

    [13] GASS, “jCUDA: Java for CUDA,” http://www.gass-ltd.co.il/en/
    products/jcuda/, 2010.

    [14]C.-K. Luk, S. Hong, and H. Kim, “Qilin: Exploiting Parallelism on Heterogeneous Multiprocessors with Adaptive Mapping,” Proc.Int’l Symp. Microarchitecture, pp. 45-55, 2009.

    [15] Hotball's Hive, “CDUA Matrix multiplication”, http://www2.kimicat.com/%E7%AC%AC%E4%BA%8C%E5%80%8Bcuda%E7%A8%8B%E5%BC%8F

    [16]OCAU Wiki,” CUDA Parallel Computing
    ” http://www.overclockers.com.au/wiki/CUDA_Parallel_Computing

    無法下載圖示 全文公開日期 2021/10/03 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)
    全文公開日期 本全文未授權公開 (國家圖書館:臺灣博碩士論文系統)
    QR CODE