《OpenCL異構(gòu)并行計(jì)算:原理、機(jī)制與優(yōu)化實(shí)踐》由會(huì)員分享,可在線閱讀,更多相關(guān)《OpenCL異構(gòu)并行計(jì)算:原理、機(jī)制與優(yōu)化實(shí)踐(68頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,OpenCL異構(gòu)并行計(jì)算:原理、機(jī)制與優(yōu)化實(shí)踐,OpenCL異構(gòu)并行計(jì)算:原理、機(jī)制與優(yōu)化實(shí)踐,序一,01,序一01,序一,序一,序二,02,序二02,序二,序二,1
2、異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái),03,1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái)03,1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái),1.1 單核標(biāo)量處理器的困境,1.2 多核并行計(jì)算與向量化的出現(xiàn),1.5 本章小結(jié),1.3 異構(gòu)并行計(jì)算的崛起,1.4 異構(gòu)并行計(jì)算的未來(lái)(百花齊放),1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái)1.1 單核標(biāo)量處理器,LOGO,M.94275.CN,1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái),1.1 單核標(biāo)量處理器的困境,A,B,1.1.2 為什么單核標(biāo)量處理器性能到達(dá)瓶頸,1.1.1 單核標(biāo)量處理器如何提高性能,LOGOM.94275.CN1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和,1.2 多核并行計(jì)算與向
3、量化的出現(xiàn),1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái),1.2.2 為什么會(huì)有向量化,1.2.4 多核和向量化的難點(diǎn),1.2.1 為什么會(huì)有多核,1.2.3 如何利用多核和向量化的能力,1.2 多核并行計(jì)算與向量化的出現(xiàn)1 異構(gòu)并行計(jì)算的過(guò)去,1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái),1.3 異構(gòu)并行計(jì)算的崛起,C,B,A,1.3.1 GPGPU的理念,1.3.2 CUDA的崛起,1.3.3 OpenCL橫空出世,1 異構(gòu)并行計(jì)算的過(guò)去、現(xiàn)狀和未來(lái)1.3 異構(gòu)并行計(jì)算的,2 OpenCL的基本介紹,04,2 OpenCL的基本介紹04,2 OpenCL的基本介紹,2.1 什么是OpenCL,2.2 Open
4、CL平臺(tái)模型,2.3 OpenCL執(zhí)行模型,2.6 OpenCL與CUDA,2.5 OpenCL與OpenGL,2.4 OpenCL存儲(chǔ)器模型,2 OpenCL的基本介紹2.1 什么是OpenCL2.,2.7 本章小結(jié),2 OpenCL的基本介紹,2.7 本章小結(jié)2 OpenCL的基本介紹,2 OpenCL的基本介紹,2.4 OpenCL存儲(chǔ)器模型,2.4.1 存儲(chǔ)器區(qū)域,2.4.2 存儲(chǔ)器對(duì)象,2.4.3 共享虛擬存儲(chǔ)器,2 OpenCL的基本介紹2.4 OpenCL存儲(chǔ)器模型,3 進(jìn)入OpenCL的世界(矢量加法),05,3 進(jìn)入OpenCL的世界(矢量加法)05,3 進(jìn)入OpenCL的世
5、界(矢量加法),3.1 構(gòu)建示例,3.2 獲得OpenCL平臺(tái)和設(shè)備及其屬性,3.3 創(chuàng)建上下文和命令隊(duì)列,3.4 創(chuàng)建程序?qū)ο蠛蛢?nèi)核對(duì)象,3.5 程序?qū)ο?3.6 內(nèi)核對(duì)象,3 進(jìn)入OpenCL的世界(矢量加法)3.1 構(gòu)建示例,3 進(jìn)入OpenCL的世界(矢量加法),3.1 構(gòu)建示例,3.1.1 Windows平臺(tái),3.1.2 Linux平臺(tái),3.1.3 OS X平臺(tái),3.1.4 矢量加示例,3 進(jìn)入OpenCL的世界(矢量加法)3.1 構(gòu)建示例3,LOGO,M.94275.CN,3 進(jìn)入OpenCL的世界(矢量加法),3.2 獲得OpenCL平臺(tái)和設(shè)備及其屬性,3.2.1 OpenCL平
6、臺(tái),01,3.2.2 OpenCL設(shè)備,02,LOGOM.94275.CN3 進(jìn)入OpenCL的世界(矢,LOGO,M.94275.CN,3 進(jìn)入OpenCL的世界(矢量加法),3.3 創(chuàng)建上下文和命令隊(duì)列,A,3.3.1 創(chuàng)建OpenCL上下文,3.3.2 創(chuàng)建命令隊(duì)列,B,LOGOM.94275.CN3 進(jìn)入OpenCL的世界(矢,3.5 程序?qū)ο?3 進(jìn)入OpenCL的世界(矢量加法),3.5.2 構(gòu)建程序?qū)ο?3.5.1 創(chuàng)建程序?qū)ο?3.5.3 查詢和管理程序?qū)ο?3.5 程序?qū)ο? 進(jìn)入OpenCL的世界(矢量加法)3,3.6 內(nèi)核對(duì)象,3 進(jìn)入OpenCL的世界(矢量加法),3.
7、6.2 設(shè)置內(nèi)核參數(shù),3.6.1 創(chuàng)建內(nèi)核對(duì)象,3.6.3 查詢和管理內(nèi)核對(duì)象,3.6 內(nèi)核對(duì)象3 進(jìn)入OpenCL的世界(矢量加法)3,4 OpenCL C語(yǔ)言,06,4 OpenCL C語(yǔ)言06,4 OpenCL C語(yǔ)言,4.1 修飾符,4.2 標(biāo)量數(shù)據(jù)類型,4.3 矢量數(shù)據(jù)類型,4.6 數(shù)據(jù)拷貝操作,4.5 工作項(xiàng)布局函數(shù),4.4 運(yùn)算符,4 OpenCL C語(yǔ)言4.1 修飾符4.2 標(biāo)量數(shù)據(jù),4 OpenCL C語(yǔ)言,A,4.7 浮點(diǎn)函數(shù),B,4.8 整數(shù)函數(shù),C,4.9 關(guān)系函數(shù),D,4.10 雜項(xiàng)矢量函數(shù),E,4.11 同步函數(shù),F,4.12 原子函數(shù),4 OpenCL C語(yǔ)言A4
8、.7 浮點(diǎn)函數(shù)B4.8 整,4 OpenCL C語(yǔ)言,D,C,B,A,4.13 圖像讀/寫函數(shù),4.14 工作組函數(shù),4.15 管道函數(shù),4.16 設(shè)備隊(duì)列,E,4.17 本章小結(jié),4 OpenCL C語(yǔ)言DCBA4.13 圖像讀/寫函數(shù),4 OpenCL C語(yǔ)言,4.1 修飾符,C,B,A,4.1.1 地址空間修飾符,4.1.2 函數(shù)修飾符,4.1.3 對(duì)象訪問(wèn)修飾符,4 OpenCL C語(yǔ)言4.1 修飾符CBA4.1.1,4 OpenCL C語(yǔ)言,4.3 矢量數(shù)據(jù)類型,A,4.3.1 為什么要有矢量數(shù)據(jù)類型,4.3.2 矢量數(shù)據(jù)的使用,B,4 OpenCL C語(yǔ)言4.3 矢量數(shù)據(jù)類型A4.
9、3.1,4.5 工作項(xiàng)布局函數(shù),4 OpenCL C語(yǔ)言,4.5.1 維度和工作項(xiàng),4.5.2 工作組,4.5 工作項(xiàng)布局函數(shù)4 OpenCL C語(yǔ)言4.5.1,4 OpenCL C語(yǔ)言,4.6 數(shù)據(jù)拷貝操作,A,4.6.1 矢量數(shù)據(jù)拷貝,4.6.2 異步拷貝和預(yù)取,B,4 OpenCL C語(yǔ)言4.6 數(shù)據(jù)拷貝操作A4.6.1,4 OpenCL C語(yǔ)言,4.7 浮點(diǎn)函數(shù),4.7.1 數(shù)學(xué)函數(shù),4.7.2 公共函數(shù),4.7.3 幾何函數(shù),4 OpenCL C語(yǔ)言4.7 浮點(diǎn)函數(shù)4.7.1 數(shù),4 OpenCL C語(yǔ)言,4.13 圖像讀/寫函數(shù),1,4.13.1 內(nèi)建圖像讀函數(shù),2,4.13.2
10、內(nèi)建無(wú)采樣器圖像讀函數(shù),3,4.13.3 內(nèi)建圖像寫函數(shù),4,4.13.4 內(nèi)建圖像查詢函數(shù),4 OpenCL C語(yǔ)言4.13 圖像讀/寫函數(shù)14.1,4.15 管道函數(shù),4 OpenCL C語(yǔ)言,4.15.2 內(nèi)建工作組管道讀/寫函數(shù),4.15.1 內(nèi)建管道讀/寫函數(shù),4.15.3 內(nèi)建管道查詢函數(shù),4.15 管道函數(shù)4 OpenCL C語(yǔ)言4.15.2,4.16 設(shè)備隊(duì)列,4 OpenCL C語(yǔ)言,4.16.1 Blocks語(yǔ)法,4.16.2 設(shè)備隊(duì)列相關(guān)函數(shù),4.16.3 子內(nèi)核存儲(chǔ)器可見性,4.16.4 設(shè)備隊(duì)列的使用示例,D,C,A,B,4.16 設(shè)備隊(duì)列4 OpenCL C語(yǔ)言4.
11、16.1,5 OpenCL存儲(chǔ)器對(duì)象,07,5 OpenCL存儲(chǔ)器對(duì)象07,5 OpenCL存儲(chǔ)器對(duì)象,5.2 圖像對(duì)象和采樣器對(duì)象,5.4 存儲(chǔ)器對(duì)象數(shù)據(jù)傳輸,5.6 存儲(chǔ)器一致性模型,5.1 緩沖區(qū),5.3 管道,5.5 共享虛擬存儲(chǔ)器,5 OpenCL存儲(chǔ)器對(duì)象5.2 圖像對(duì)象和采樣器對(duì)象5,5 OpenCL存儲(chǔ)器對(duì)象,5.7 本章小結(jié),5 OpenCL存儲(chǔ)器對(duì)象5.7 本章小結(jié),5 OpenCL存儲(chǔ)器對(duì)象,5.1 緩沖區(qū),5.1.1 分配緩沖區(qū)對(duì)象,5.1.2 創(chuàng)建子緩沖區(qū)對(duì)象,5 OpenCL存儲(chǔ)器對(duì)象5.1 緩沖區(qū)5.1.1 分,LOGO,M.94275.CN,5 OpenCL存儲(chǔ)
12、器對(duì)象,5.2 圖像對(duì)象和采樣器對(duì)象,5.2.1 圖像對(duì)象,5.2.2 采樣器對(duì)象,5.2.3 圖像旋轉(zhuǎn)示例,LOGOM.94275.CN5 OpenCL存儲(chǔ)器對(duì)象5.,5 OpenCL存儲(chǔ)器對(duì)象,5.3 管道,5.3.1 創(chuàng)建管道對(duì)象,1,5.3.2 管道對(duì)象查詢,2,5 OpenCL存儲(chǔ)器對(duì)象5.3 管道5.3.1 創(chuàng)建,5 OpenCL存儲(chǔ)器對(duì)象,5.4 存儲(chǔ)器對(duì)象數(shù)據(jù)傳輸,1,5.4.1 主機(jī)與設(shè)備間數(shù)據(jù)傳輸,2,5.4.2 存儲(chǔ)器對(duì)象數(shù)據(jù)填充,3,5.4.3 存儲(chǔ)器對(duì)象間數(shù)據(jù)傳輸,4,5.4.4 存儲(chǔ)器對(duì)象映射,5 OpenCL存儲(chǔ)器對(duì)象5.4 存儲(chǔ)器對(duì)象數(shù)據(jù)傳輸15,LOGO,M.
13、94275.CN,5 OpenCL存儲(chǔ)器對(duì)象,5.5 共享虛擬存儲(chǔ)器,5.5.1 SVM緩沖操作,5.5.2 SVM類型和特性,5.5.3 相關(guān)示例,LOGOM.94275.CN5 OpenCL存儲(chǔ)器對(duì)象5.,LOGO,M.94275.CN,5 OpenCL存儲(chǔ)器對(duì)象,5.6 存儲(chǔ)器一致性模型,1,5.6.1 存儲(chǔ)器次序規(guī)則,3,5.6.3 柵欄操作的存儲(chǔ)器次序規(guī)則,5,5.6.5 主機(jī)端與設(shè)備端命令的存儲(chǔ)器次序規(guī)則,2,5.6.2 原子操作的存儲(chǔ)器次序規(guī)則,4,5.6.4 工作組函數(shù)的存儲(chǔ)器次序規(guī)則,6,5.6.6 關(guān)于存儲(chǔ)器次序在實(shí)際OpenCL計(jì)算設(shè)備中的實(shí)現(xiàn),LOGOM.94275.C
14、N5 OpenCL存儲(chǔ)器對(duì)象5.,6 OpenCL同步及事件機(jī)制,08,6 OpenCL同步及事件機(jī)制08,6 OpenCL同步及事件機(jī)制,A,E,D,F,B,C,6.2 OpenCL事件機(jī)制,6.3 原子操作,6.5 工作組間同步,6.4 局部存儲(chǔ)器與全局存儲(chǔ)器間的異步拷貝,6.6 本章小結(jié),6.1 主機(jī)端的OpenCL同步,6 OpenCL同步及事件機(jī)制AEDFBC6.2 Ope,6.2 OpenCL事件機(jī)制,6 OpenCL同步及事件機(jī)制,6.2.2 內(nèi)核程序中的同步,6.2.1 對(duì)OpenCL事件的標(biāo)記和柵欄,6.2.3 工作組內(nèi)同步,6.2 OpenCL事件機(jī)制6 OpenCL同步及
15、事件機(jī),6 OpenCL同步及事件機(jī)制,6.3 原子操作,A,B,6.3.2 OpenCL 2.0中的原子操作,6.3.1 OpenCL 1.2中的原子操作,6 OpenCL同步及事件機(jī)制6.3 原子操作AB6.3,7 OpenCL與OpenGL互操作,09,7 OpenCL與OpenGL互操作09,7 OpenCL與OpenGL互操作,7.1 從一個(gè)OpenGL上下文來(lái)創(chuàng)建OpenCL上下文,7.2 OpenCL使用OpenGL共享的緩存對(duì)象,7.3 OpenCL使用OpenGL紋理數(shù)據(jù),7.4 OpenCL共享OpenGL渲染緩存,7.5 從一個(gè)OpenCL存儲(chǔ)器對(duì)象查詢OpenGL對(duì)象信
16、息,7.6 訪問(wèn)共享對(duì)象的OpenCL與OpenGL之間的同步,7 OpenCL與OpenGL互操作7.1 從一個(gè)Ope,7 OpenCL與OpenGL互操作,7.7 本章小結(jié),7 OpenCL與OpenGL互操作7.7 本章小結(jié),8 OpenCL到主流GPU處理器的映射,10,8 OpenCL到主流GPU處理器的映射10,8 OpenCL到主流GPU處理器的映射,8.1 AMD家族GPU,8.2 NVIDIA CUDA兼容的GPU,8.3 ARM Mali GPU架構(gòu),8.4 本章小結(jié),8 OpenCL到主流GPU處理器的映射8.1 AMD家,8 OpenCL到主流GPU處理器的映射,8.1 AMD家族GPU,8.1.1 AMD Cayman架構(gòu)GPU,8.1.2 AMD GCN架構(gòu)的GPU,8 OpenCL到主流GPU處理器的映射8.1 AMD家,LOGO,M.94275.CN,8 OpenCL到主流GPU處理器的映射,8.2 NVIDIA CUDA兼容的GPU,8.2.1 NVIDIA GPU架構(gòu)的執(zhí)行模型,8.2.2 NVIDIA GPU的全局存儲(chǔ)器,8.2.3 NVIDIA