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