Just My Life & My Work

OpenCL, WebGL, and WebCL

承接Khronos技術概觀和生態系統概述 (Khronos Technology Overview & Ecosystem Review)OpenGL & OpenGL ES,下午第二場在講OpenCL, WebGL, and WebCL,我之前有整理簡介WebCL可以參考。

感想:
雖說看英語比較容易瞭解原意,然在實際翻譯一次之後更瞭解其內涵,知識果然需要時間來消化,加上背景知識能更容易瞭解與貫通!希望翻譯完之後可以給多一點人參考,讓Khronos的技術能在台灣發揮得淋漓盡致!
其餘無法翻譯,或覺得翻譯不好的地方請參照投影片!

OpenCL, WebGL, and WebCL

處理器平行化
CPUs:使用多核心來讓效能提昇
-多核心程式設計,如OpenMP
GPUs:提昇普遍目的性資料平行處理
-Graphics APIs和Shading Languages

OpenCL扮演的角色是為異質計算資源提供一個程式設計架構。

OpenCL一個核心的概念
OpenCL執行模型
-定義N為度計算域
-在計算域中的每個點執行一個核心
由C語言延伸出來寫核心 – 以ISO C99為基礎
-使用APIs來發現系統中的設備,並且分派工作給它們
以不同種類設備為目標
-GPUs、CPUs、DSPs、嵌入式系統、行動電話,甚至FPGAs。

OpenCL平台模型
一個host + 一個或多個計算設備
-每個計算單元再細分成一個或多個處理元素

OpenCL – 異質計算
是一個給各種平行計算資源的程式設計框架
平台層的API
-詢問、選擇和初始化計算設備
核心語言規格
-ISO C99的子集,加上擴充。
runtime API
-執行計算核心 – 收集結果
OpenCL有嵌入式的特性
-不需要分開為「ES」規格

OpenCL工作群組成員
各種工業廠商參與 – 許多工業專家
-處理器製造供應商、系統原廠委托製造加工者(Original Equipment Manufacturer)、中介軟體製造供應商、應用程式發展者
-學術界和研究室、FPGA製造供應商
NVIDIA是主席,Apple是規格編輯者

OpenCL的里程碑
從提案到發佈OpenCL 1.0規格歷經6個月
-由於最初很強健的提案和分享式商業的動機
多兼容性實做搭載
-在多作業系統上的CUPs和GPUs
以18個月的節奏從1,0、1.1到現在1.2
-有向後相容性以保護軟體的投資

分割設備
設備可以被分割為子設備
-如何將計算指定給計算單位有多種控制方式
子設備可以被用來像普通的設備
-創造上下文(context)、建立成氏、更長遠分割和創造指令佇列
三種方式來分割設備
-分割為相同大小的群組
-提供群組大小的串列
-全組設備分享一部分的快取層級

custom設備和內建的核心
嵌入式平台通常包含專門的硬體和韌體
-不能支援OpenCL C
內建核心可以代表這些硬體和韌體的能力
-像是視訊的編碼和解碼
硬體可以被OpenCL框架整合和控制
-可以儲入佇列內建核心驅使custom設備向OpenCL核心靠攏
FPGAs是一個設備的例子可以接觸到內建核心
-最近的FPGAs可以支援整個OpenCL C
OpenCL成為一個強而有力的各式資源的協調架構
-可以程式化的和不可程式化的設備被一個runtime所控制

OpenCL桌電實做可參考以下網址:
OpenCL™ Zone | AMD Developer Central
http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/
Intel® OpenCL SDK – Intel® Software Network
http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/
OpenCL | NVIDIA Developer Zone
http://developer.nvidia.com/opencl

OpenCL的書現在有以下幾本:
OpenCL Programming Guide – The “Red Book" of OpenCL
OpenCL in Action
Heterogeneous Computing with OpenCL
The OpenCL Programming Book

規格翻譯:1.1版有日語版
1.2版日語、韓語、中語正在翻譯

Khronos OpenCL的資源
OpenCL完全免費給發展者
-從晶片製造供應商下載驅動程式
OpenCL註冊表
-網址http://www.khronos.org/registry/cl/
OpenCL 1.2參考卡片
-網址http://www.khronos.org/files/opencl-1-2-quick-reference-card.pdf
線上主頁
-網址http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/
OpenCL發展者論壇
-網址http://www.khronos.org/message_boards

OpenCL的前瞻性
OpenCL-SPIR (Standar Parallel Intermediate Representation)
-探索低層中間表示形式程式模糊與安全,提供目標後端替代的高層語言(不知道在翻啥@@)
OpenCL-HLM (High Level Model)
-探索高層程式設計架構,統一host和device執行環境,透過語法提昇可用性和較寬闊的最佳化的機會
長遠的核心
-探索強化記憶體和執行模型彈性來催化和揭露硬體能力
WebCl
-透過Javascript聯繫OpenCL,將平行計算帶領到web

HTML5 – 跨作業系統的應用程式平台
提昇裝置的多樣性,創造一個真正跨作業系統的程式設計框架之需求
但是需要多過於「多HTML」如下:

豐富的經驗性處理
多核心CPUs
豐富的2D和3D GPU
GPU計算
多HD相機
影像和視覺處理
視訊編碼和解碼
音訊編碼與解碼
慣性的和位置的感應器

web應用程式 vs native應用程式
行動應用程式有功能上和審美上的吸引力
-美麗的、敏感的、聚焦的
HTML5有加速的APIs可以提供同等級的「應用程式吸引力」
-高度互動、豐富視覺設計
使用HTML5來創造web應用程式有許多優勢
-可攜帶到任何瀏覽器啟動系統
-同樣的程式碼可以跑應用程式和跑網頁
-web應用程式可透過網路來搜尋與發現
-不是封閉的應用程式店 – 沒有應用程式店的「稅(負擔)」

視覺計算生態系統
請詳見投影片(Visual Computing Ecosystem)

WebGL – 在web上的3D – 沒有Plug-in
歷史性的機會帶來web 3D加速
-WebGL定義Javascript連結OpenGL ES 2.0
HTML5的作用並且使用<canvas>標籤
-使得3D context可以在canvas上呈現
Javascript簡單又快速來實現視覺計算
-加上OpenGL ES 2.0使得區域幾何快取和GPGPU計算

WebGL的落實結構
請詳見投影片(WebGL Implementation Anatomy)

WebGL和HTML的互動
3D不會被長方形的視窗給限制住
-3D可以覆蓋在HTML內容之上,或被覆蓋在HTML內容之下
-容易製作2D HTML HUDs或3D使用者介面
強韌地聯繫其它高等HTML5
-WebGL可以使用HTML5的<video>標籤或canvas當作texture
可以使用3D給核心web UI – 就如同內容
-高等轉換和特別效果
繪圖HTML DOM子樹當作texture
-Mozilla和Google的原型為擴展
-在3D中支援使用者互動

架構和工具
WebGL被深思熟慮地到低層,使得能力全開,並且有OpenGL ES 2.0的彈性
如果你不是個熟練的3D程式設計師,不需要恐慌
WebGL是一個完美基礎層給Javascript中介軟體的架構
有很多的公用程式與工具已陸續出現

WebGL的安全性
在瀏覽器上的任何新功能都會增加被攻擊的風險
-這是真的,自從web剛開始,新的功能變得根深蒂固
在瀏覽器上的任何graphics都需要GPU驅動程式來穩定
-HTML、Canvas、WebGL、Adobe Molehill、Silverlight 5……
WebGL的設計最優先考慮安全性
-穩定被強烈地提倡和使用
短期 – 瀏覽器製造供應商將保留白和黑名單
-妥協系統可以不啟用WebGL直到發展穩定
長期 – GPUs提供提昇強健安全性和多工能力
-GPU成為第一級計算平台緊靠著CPU

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

<span>%d</span> 位部落客按了讚: