Home People Research Blog Courses Links Search Download
NCHC

Blog

Blog 最新文章

  1. 提供新版 Edge 的 HoloLens 2 Insider Preview
    2021/01/20 08:55
  2. Facebook Oculus Quest 2 開箱文
    2021/01/13 14:19
  3. GitLab 手動執行 pipeline 的預輸入變數
    2021/01/04 11:14

Blog 最新回應

  1. 謝謝你提供的資訊...
    2021/01/17 17:40
  2. MSVC 也是有在進步的 XD...
    2020/12/24 15:55
  3. “如果不想另外定義一個 struct 的........
    2020/12/24 15:49

Keyword 關鍵字

C++17 Python OpenCL GitLab CubeX ASUS Xtion WebGL PHP xml Oculus Rift S Docker VR 3d print 開放資料 C++11 MR HoloLens 2 資訊地圖 javascript C++20 Valve Index C++14 OpenNI 3D立體 Pandas HTC Vive git Qt Python Oculus Quest 2 資料視覺化 svn 開放資料 Pandas OpenMP Docker VR OpenGL OpenCV C++14 Oculus OpenVR Kinect HTC Vive Pro Windows MR Vulkan OpenNI2 OpenXR HTC Vive Focus Java C++ CUDA iFlyover Boost NiTE2

類別:技術相關 » 技術研究
文章發表|我要回應|RSS訂閱

Khronos GDC 2015 新消息:Vulkan 與 OpenCL 2.1

這篇算是簡單整理一下 Khronos 在 GDC 2015 發表的一些消息。今年 Khronos 發表的消息,主要是下一代的 OpenGL、「Vulkan」,以及 OpenCL 兩個部分;而實際上,繪圖和計算這兩部分,看來已經越來越一體化了。

整體性的介紹,可以參考官方的投影片:Khronos GDC Press Briefing : Mar15.pdf。


在 3D 繪圖 API 的部分,Khronos 終於發表了下一代的 OpenGL(GLnext)、其名稱為「Vulkan」,他的官方網站是:

https://www.khronos.org/vulkan

他基本上是一個和舊有 OpenGL 不相容,針對現代化的 GPU 架構的新的跨平台、開放標準的 3D 繪圖 API。不過這個 API 目前還沒有正式推出、目前還在發展中,這次也只是簡單展示而已。

而會這樣砍掉重鍊的原因,主要應該是為了拋棄舊有 OpenGL、老舊的 render pipline 的包袱,讓繪圖 API 可以更適合現代化的 GPU。下面就是官方希望 Vulkan 可以達成的目標:

  • Clean, modern architecture
  • Multi-thread / multicore-friendly
  • Greatly reduced CPU overhead
  • Architecture-neutral – full support for tile-based as well as direct renderers
  • Predictable performance through explicit control
  • Improved reliability and consistency between implementations

下圖就是官方提供,Vulkan 和舊有的 OpenGL / OpenGL ES 的差異比較。

更詳細的資料,則可以參考:

  • Khronos Reveals Vulkan API for High-efficiency Graphics and Compute on GPUs(官方新聞)
  • Khronos Vulkan GDC Mar15.pdf (官方投影片)
  • Next Generation OpenGL Becomes Vulkan: Additional Details Released

另外值得一提的是,Vulkan 這個新的 API 似乎算是繼承 AMD Mantle(官網)而來的;在官方投影片裡面,也有一張大大的「Thanks AMD」,旁邊就是 Mantle 的標示。在 AMD 的官方部落格裡,也有提到「The cross-vendor Khronos Group has chosen the best and brightest parts of Mantle to serve as the foundation for "Vulkan"」(文章)。

總之,目前這個 API 還沒定案,一般應該也還沒有可以支援的裝置,所以就繼續等吧~


在計算、也就是 OpenCL 的部分,則是發表了 OpenCL 2.1 的 Provisional Specification。(官網)

OpenCL 2.1 最大的特色,是提供了新的 OpenCL C kernel language!而這邊的 OpenCL C kernel language 基本上是 C 14 的子集合,理論上之後會可以更方便地來撰寫 OpenCL 的 Kernel 了。

至於在 OpenCL C 裡面所移除的 C 14 的功能,則包括了:

  • Throwing and catching exceptions (throw, catch)
  • Allocation and release of memory (new, delete)
  • Virtual functions and abstract classes (virtual)
  • Function pointers, Recursion and goto

除此之外,在 OpenCL 的 API 上,也做了一定程度的改進。更詳細的資料,可以參考下面的資料:

  • Khronos Releases OpenCL 2.1 Provisional Specification for Public Review (官方新聞)
  • OpenCL GDC : Mar15.pdf (官方投影片)
  • Khronos Announces OpenCL 2.1: C Comes to OpenCL

而前面有提到,在繪圖和計算這兩個方面,已經越來越一體化了,會這樣說主要是因為現在 Khronos 又提出了新一代的「SPIR-V」(Standard Portable Intermediate Representation)這個中繼語言、用來作為 OpenCL Kernel、Vulkan 的 Shader 到更底層的中繼。

他的官方網站是:https://www.khronos.org/spir

理論上,藉由 SPIR-V 的存在,各家廠商應該都可以定義自己的語言,來實作 OpenCL kernel 和 Vulkan 的 shader 了~或許以後在開發上,可以更有彈性吧?

張貼者:heresy於2015/03/06 15:36 下午有0則回應,瀏覽次數:1,376次

-- TOP --

我要回應
* 身份  訪客 (暱稱:)
 本篇文章作者 (帳號:密碼:)
* 內容      
很高興 悲傷 震驚 疑惑 大笑 發瘋 傷心
* 留言密碼 (請輸入下方圖片中去除前、後位數的數字,共五碼。)
說明 1. * 表示必填欄位。
2. 不支援HTML Tag。
   

-- TOP --

© Visualization and Interactive Media Laboratory of NCHC, 2007 - 2021, All Rights Reserved. Contact E-mail