OpenCL Parallel Programming Development Cookbook

Raymond Tay

買這商品的人也買了...

商品描述

This cookbook is the perfect way to learn parallel programming in OpenCL because if offers a mix of enlightening theory and hands-on recipes. Ideal for experienced developers.

Overview

  • Learn about parallel programming development in OpenCL and also the various techniques involved in writing high-performing code
  • Find out more about data-parallel or task-parallel development and also about the combination of both
  • Understand and exploit the underlying hardware features like processor registers and caches that run potentially tens of thousands of threads across the processors

In Detail

OpenCL (Open Computing Language) is the first royalty-free standard for cross platform, parallel programming of modern processors found in personal computers, servers, mobiles, and embedded devices. OpenCL greatly improves speed and responsiveness for a wide spectrum of applications in numerous market categories, from gaming and entertainment to scientific and medical software. OpenCL has proved itself to be versatile in that it now runs on not only operating systems like Windows and Linux powered by Intel and AMD processors, but also on low power chips like ARM, and it has also been adopted by processor manufacturers like ARM Corp, Vivante, and Altera, among others.

OpenCL Parallel Programming Development Cookbook was designed to be practical so that we achieve a good balance between theory and application. Learning to program in a parallel way is relatively easy, but to be able to take advantage of all of the resources available to you efficiently is quite different. You need to be shown not only application, but also the theory behind it.

This book is roughly in two parts, where the first part is the fundamentals of OpenCL parallel development and the second part is the various algorithms we will explore with you. Each part is packed with many code samples and illustrations to demonstrate various concepts. The first part is essential for a beginner to not only program in parallel, but also to think in parallel and become equipped with the mental model with which to tackle parallel programming. The second part consists of seven different algorithms that the author has identified; you will learn various parallel programming techniques that experts have used in the past 60 years that are applicable to OpenCL.

This book will demonstrate how you think in parallel by illustrating and demonstrating programming techniques like data partitioning, thread coarsening, register tiling, data pre-fetching, and algorithm transformation. These techniques are demonstrated in the seven algorithms you’ll be shown, from image processing and solving sparse linear systems to in-memory sorting.

OpenCL Parallel Programming Development Cookbook combines recipes, illustrations, code, and explanations to allow you to learn the essentials of parallel programming in OpenCL, and the author has added in enough math so that the readers understand the motivation and can also lay the foundation upon which they will begin their own exploration.

What you will learn from this book

  • How to use OpenCL
  • Understand data partitioning and transfers in OpenCL
  • Understand OpenCL data types
  • Learn about OpenCL functions including math, atomic, threading model, data transfer, and so on
  • Develop a histogram in OpenCL
  • Learn how to develop Sobel edge detection in OpenCL for image processing
  • Develop the Matrix Multiplication and the Sparse Matrix Vector Multiplication in OpenCL
  • Learn to develop Bitonic sort and Radix sort in OpenCL
  • Develop n-body with OpenCL

商品描述(中文翻譯)

這本烹飪書是學習在OpenCL中進行並行編程的完美方式,因為它提供了理論和實踐相結合的配方。非常適合有經驗的開發人員。

概述:
- 學習在OpenCL中進行並行編程開發,以及撰寫高效代碼所涉及的各種技術。
- 了解更多關於數據並行或任務並行開發,以及兩者的結合。
- 理解並利用底層硬件功能,如處理器寄存器和緩存,可以在處理器上運行數萬個線程。

詳細內容:
OpenCL(Open Computing Language)是第一個免版稅的跨平台並行編程標準,用於現代個人電腦、服務器、移動設備和嵌入式設備中的處理器。OpenCL大大提高了廣泛應用領域的應用程序的速度和響應能力,從遊戲和娛樂到科學和醫療軟件。OpenCL已被證明具有多功能性,它不僅運行在由英特爾和AMD處理器驅動的Windows和Linux等操作系統上,還運行在低功耗芯片如ARM上,並且還被ARM Corp、Vivante和Altera等處理器製造商所採用。

《OpenCL並行編程開發食譜》的設計目的是實用,以實現理論和應用之間的良好平衡。學習以並行方式編程相對容易,但要能夠高效地利用所有可用資源則完全不同。您需要展示的不僅是應用,還有背後的理論。

本書大致分為兩部分,第一部分是OpenCL並行開發的基礎知識,第二部分是我們將與您一起探索的各種算法。每個部分都包含許多代碼示例和插圖,以演示各種概念。第一部分對於初學者來說至關重要,不僅可以並行編程,還可以以並行方式思考,並具備處理並行編程的思維模型。第二部分包含作者確定的七種不同算法;您將學習過去60年專家們使用的各種並行編程技術,這些技術適用於OpenCL。

本書將通過演示和展示數據分區、線程粗化、寄存器平鋪、數據預取和算法轉換等編程技術,展示如何以並行方式思考。這些技術在七個算法中得到了演示,從圖像處理和解決稀疏線性系統到內存排序。

《OpenCL並行編程開發食譜》結合了配方、插圖、代碼和解釋,讓您學習OpenCL中並行編程的基本知識,作者還添加了足夠的數學知識,讓讀者了解動機並為他們自己的探索奠定基礎。

從本書中您將學到:
- 如何使用OpenCL。
- 理解OpenCL中的數據分區和傳輸。
- 理解OpenCL的數據類型。
- 了解OpenCL函數,包括數學、原子操作、線程模型、數據傳輸等。
- 在OpenCL中開發直方圖。
- 學習如何在OpenCL中開發Sobel邊緣檢測進行圖像處理。
- 在OpenCL中開發矩陣乘法和稀疏矩陣向量乘法。
- 學習在OpenCL中開發Bitonic排序和Radix排序。
- 在OpenCL中開發n-body問題。