C++ AMP 是微軟在 2011 年發表、在 2012 年推出的一套適用於 GPGPU、大量平行化的 C++ 函式庫。他基本上算是相對高階的 GPGPU 開發方案,由於底層是使用 DirectX 來做的,所以理論上能支援不同廠牌的顯示卡(參考《C++ AMP 相關資料》)。
不過,由於 Heresy 這邊還是有考慮到要跨到 Linux 環境的問題,所以簡單玩了一下後,就沒有去認真研究這個東西了。(不過由於 C++AMP 屬於開放標準,倒也真有人在 CLANG/LLVM + OpenCL 弄出了 C++AMP 的實作;參考《Bringing C++AMP Beyond Windows via CLANG and LLVM》)
而前幾天,忽然和到 Google 推薦的文章《C++ AMPの死について》,這才發現原來 C++AMP 也已經被微軟賜死了…
在目前還在測試階段的 Visual Studio 2022 的 Preview 2(目前最新是 3.1)的 release note(連結)中,可以看到:
C++ AMP headers are now deprecated. Including <amp.h> in a C++ project will generate build errors. To silence the errors, define
_SILENCE_AMP_DEPRECATION_WARNINGS
. Please see [our AMP Deprecation links]https://aka.ms/amp_deprecate for more details.
在官方《C++ AMP Overview》 中,也可以看到,官方已經預計要在 Visual Studio 2022、也就是 17.0 開始、將 C++AMP 的 header 檔案標記成棄用(deprecated)了。
現階段還是可以可透過加上「
」這個定義來繼續使用,但是可以預期微軟應該也不會更新了。_SILENCE_AMP_DEPRECATION_WARNINGS
而在《C++ AMP headers are deprecated: what is the replacement in Visual Studio?》中,則可以看到微軟針對他的後續,也有寫:
About C++ AMP work with _SILENCE_AMP_DEPRECATION_WARNINGS, we plan to support them at least through VS 2022 lifecycle, which is 5 years after last update + another 5 for extended support.
看起來,應該可以認定 Visual Stduio 2022 是最後支援 C++ AMP 的版本了。
話說,其實現在想在這個層級寫 GPGPU 的程式的方案,其實也不少了。
針對 NVIDIA CUDA 的話,早就有 Thrust(連結)可以用了。以 OpenCL 為基礎的話,也有 Boost.Compute(1.61.0 已正式進入 Boost)、或是官方的 SYCL(官網)可以用。
而實際上,OpenMP 4.0 開始,也有支援 SIMD 和 GPGPU 了~不過 Visual Studio 在這塊始終還是要加油就是了(參考)。
[…] C++AMP 被標記成棄用 […]
讚讚
個人要是爲了生涯而用了C++AMP豈不是得後悔死。
讚讚
個人覺得倒也還好。很多東西死得更快。 XD
讚讚
死得快更好,可以早轉型。這種拖拖拉拉好像能活然後砍死是最壞的。
讚讚