GPUOpen

GPUOpen是一套中間件，由AMD Radeon 開發，發布於2016年。GPUOpen的主要競爭對手是Nvidia GameWorks。與 GameWorks 相似，GPUOpen是多種獨立技術的整合包。GPUOpen 是部分開源的。

## 歷史

GPUOpen於2015 年 12 月 15 日公示，並於 2016 年 1 月 26 日發布。

AMD 將獨立的工具整合起來，以統一的軟體包GPUOpen發布，並以 MIT 許可證完全開源。GPUOpen 賦予開發人員更底層的 GPU 控制權限。

此外，AMD希望開發者能與GCN架構GPU的底層「直接交互」，賦予超越Direct3D 12與Vulkan的能力。例如，作為GPUOpen的組件之一，異步計算引擎（ACE）實現了真正的「異步計算」。

GPUOpen 由多個組件、工具和 SDK 組成。

### 遊戲和CGI

GPUOpen有電腦生成圖像(CGI)，廣泛應用於電腦遊戲和電影的開發。

#### 視覺特效庫

姓名｜API｜來源｜描述

TressFX｜DirectX 12、 Vulkan｜GitHub｜主要處理諸如毛髮，草地等材質

GeometryFX｜DirectX 11｜GitHub｜提供三角濾波器等

DepthOfFieldFX｜DirectX 11｜GitHub｜通過計算著色器提供對針對GCN GPU 架構優化的景深實現。

ShadowFX｜DirectX 11、 DirectX 12｜GitHub｜提供了一個針對GCN GPU 架構優化的延遲陰影過濾實現。

FidelityFX｜DirectX 11、 DirectX 12、 Vulkan｜GitHub｜一套視覺特效輔助庫

#### FidelityFX

姓名｜演算法｜來源｜描述

FidelityFX CAS｜對比度自適應銳化｜GitHub｜該演算法能夠自適應地銳化圖像或場景，同時最大限度地減少偽影。

FidelityFX CACAO｜組合自適應計算環境光遮蔽｜GitHub｜該演算法是自適應環境光遮蔽演算法的優化實現。

FidelityFX LPM｜亮度保持映射器｜GitHub｜該演算法用於對 RGB 像素的亮度進行色調映射，而不是對像素的顏色進行色調映射。

FidelityFX SPD｜單次降採樣器｜GitHub｜該演算法針對RDNA GPU 架構進行了優化，用於為給定的紋理生成 12 個MIP級別。

FidelityFX SSSR｜隨機螢幕空間反射｜GitHub｜該演算法用於向幀或場景添加螢幕空間反射。

FidelityFX 對比｜可變陰影｜GitHub｜該算法利用前一幀中樣本的亮度來生成基於圖像的可變速率著色。

FidelityFX 並行排序｜基數排序｜GitHub｜該演算法提供了一種基於計算的基數排序方法。

FidelityFX 降噪器｜陰影和反射降噪器｜GitHub｜該演算法為光線追蹤陰影和光線追蹤或螢幕空間反射提供降噪功能。

FidelityFX 超解析度 1｜空間上採樣器｜GitHub｜該演算法僅使用輸入幀中提供的空間資訊，將圖像或幀上採樣到更高的解析度。

FidelityFX 超解析度 2｜時間放大器｜GitHub｜該算法利用輸入幀提供的時間資訊，將幀放大到更高的解析度。

#### FidelityFX 超解析度

FidelityFX 超解析度（FSR）用於將輸入圖像上採樣到更高的解析度。FSR 有多個版本，它們採用不同的放大技術，提供不同的圖像質量。* FSR 1 是一種空間超解析度技術，其原理與Lanczos 演算法類似，需要輸入經過抗鋸齒處理的低解析度圖像。該技術首先進行邊緣重建和梯度反轉處理，隨後再通過一個對比度自適應的銳化步驟（RCAS）來恢復畫面細節，讓最終成像更加清晰。AMD 官方說明如下：FSR 主要包含兩個核心處理階段：* FSR 2 是一種時域超解析度技術，基於改進的Lanczos 演算法，需要輸入未經抗鋸齒處理的低解析度圖像，它充分利用時序數據（如運動矢量和幀歷史）來重建畫面。在此基礎上，FSR 2 還會執行自帶的抗鋸齒處理步驟，直接替代遊戲原本的內置抗鋸齒方案，從而在提升解析度的同時有效抑制畫面鋸齒和閃爍。* FSR 3 新增了幀生成技術和"原生抗鋸齒"功能。幀生成能夠有效提升遊戲的感知幀率，讓畫面運行更加流暢。而"原生抗鋸齒"功能與 Nvidia 的 DLAA 類似，可以在不進行超解析度上採樣的前提下單獨使用，以提供更出色的抗鋸齒效果；該功能還可以與幀生成以及 Anti-Lag+ 技術組合使用，進一步優化遊戲體驗。

下表列出了 AMD 的 FSR 標準預設值。請注意，這些預設值並不一定是實際效果，它們只是輸入/輸出解析度的預設值。某些遊戲，例如Dota 2，提供了解析度滑塊，可以微調縮放百分比或根據幀率上限動態調整內部渲染解析度。AMD 還提供了一個命令行界面工具，允許用戶使用 FSR1/EASU 以及其他升頻方法（例如雙線性插值）來放大任何圖像。它還允許用戶獨立運行 FSR 管線的各個階段，例如 RCAS。

版本號｜發布日期｜精彩片段

1.0 / 1.0.1｜2021年6月｜FidelityFX 超解析度 (FSR) 於 2021 年 7 月發布，原始碼可供查閱。

1.0.2｜2021年11月｜修復 RCAS 過度銳化。

1.1｜2023年7月｜現在可通過 FidelityFX SDK 獲取。

2.0.1 / 2.0.1a｜2022年3月｜FidelityFX Super Resolution 2.0 (FSR 2) 於 2022 年 6 月發布，原始碼也於 2022 年 6 月提供。

2.1.0｜2022年9月｜減少了重影並提高了放大質量。《模擬農場2022》是最早一批採用1.7.1補丁的遊戲之一。

2.1.1｜2022年9月

2.1.2｜2022年10月

2.2.0 / 2.2.0a｜2022年11月｜HDR範圍改進，重影和閃爍偽影減少。原始碼於2023年2月發布。

2.2.1｜2023年6月

2.2.2｜2023年7月｜包含在 FidelityFX SDK 中。

3.0 / 3.0.3｜2023年9月｜FSR 3 結合了 FSR 2 的幀生成功能和 Anti-Lag+ 技術，並支持 AMD、Nvidia 和 Intel 的 GPU。FSR 3 也兼容第九代遊戲主機。原始碼於 2023 年 12 月作為 FidelityFX SDK 的一部分提供。

3.0.4｜2024年3月

3.1.0｜2024年6月｜減少了重影、閃爍和抖動，提高了時間穩定性。將幀生成與放大分離。使源文件易於開發者升級。支持 Vulkan 和 Xbox 遊戲開發工具包 (GDK)。原始碼將於 2024 年 7 月作為 FidelityFX SDK 1.1 的一部分提供。

質量預設｜比例因子｜渲染比例

原生AA（v3.0+）｜1.00倍｜100%

超高畫質畫質（僅限 v1.0）｜1.30倍｜77.0%

質量｜1.50倍｜66.6%

均衡｜1.70倍｜58.8%

表現｜2.00倍｜50.0%

超高性能（v2.0+）｜3.00倍｜33.3%

通過將 DLSS DLL 替換為將 DLSS API 調用映射到 FSR 2 API 調用的轉譯層 DLL，可以將 FSR 2 集成到幾乎所有支持 DLSS 的遊戲中。

#### 幀生成

FSR 3 新增了幀生成功能，這項技術利用運動插值在現有幀之間創建新幀。FSR 3 於 2023 年 9 月發布，它結合了 FSR 2 和光流分析技術，採用異步計算（與使用專有硬體的 Nvidia DLSS 3 不同）。由於 FSR 3 採用軟體解決方案，因此兼容 AMD、Nvidia 和 Intel 的 GPU 以及第九代遊戲主機。同時，AMD 了一項名為 Anti-Lag 的驅動程序級功能，以應對幀生成的額外延遲，該功能僅適用於 AMD GPU。

AMD 流體運動幀 (AFMF) 是一項驅動程序級別的幀生成技術，於 2024 年第一季度發布，它兼容所有 DirectX 11 和 DirectX 12 遊戲，但僅適用於 RDNA 2 和 RDNA 3 GPU。AFMF 使用光流分析而非運動矢量，因此只能在兩個傳統渲染幀之間插值生成新幀。AFMF 目前與垂直同步 (VSYNC) 不兼容。

#### 工具

AMD官方目錄列表如下：

姓名｜原始碼｜API｜作業系統｜任務

CodeXL｜CodeXL｜Direct3D、OpenGL、OpenCL、 Vulkan｜Linux、Windows｜軟體開發工具套件，包括 GPU 調試器、GPU 分析器、CPU 分析器、靜態 OpenCL 內核分析器和各種插件。

AMD CodeXL靜態分析器｜amd-codexl-analyzer｜Direct3D、OpenGL、OpenCL｜Linux、 Windows x64｜用於處理 OpenCL 內核、 HLSL 著色器和GLSL 著色器的離線編譯器和性能分析CLI工具AMD CodeXL 工具套件的一部分運行此工具需要安裝Radeon Software Crimson Edition 或AMD Catalyst。

D3D 12 GPU ProfStudio｜amd-gpuperfstudio-dx12｜Direct3D 12｜Windows｜GPU PerfStudio的插件 GPU perfstudio

Tootle｜amd-tootle｜agnostic｜Linux、Windows｜三角形順序優化工具；最初開發於 2006 年；可以輕鬆集成到渲染或網格預處理工具鏈中參見

HLSL2GLSL由 ATI Technologies 於 2006 年以 BSD 許可證發布，因此不屬於 GPUOpen 的一部分。GPUOpen 一部分的原始碼也包含在 Linux 內核（例如 amdgpu 和 amdkfd）、Mesa 3D 和 LLVM 中。

#### 軟體開發工具包

姓名｜來源｜API｜作業系統｜任務

高級媒體框架（AMF） SDK｜GitHub｜DirectX 12｜Linux、Windows x64｜輕量級、可移植的多媒體框架，它抽象化了大部分平台和 API 特定的細節。

AMD GPU 服務 (AGS) SDK｜GitHub｜DirectX｜Windows x64

LiquidVR SDK｜GitHub｜Direct3D 11｜Windows｜提升虛擬實境的流暢度。其目標是降低硬體間的延遲，使硬體計算能力能夠跟上使用者的頭部運動，從而消除暈動症。核心是雙GPU配置，其中每個GPU將分別渲染顯示器上每隻眼睛的畫面。

Radeon 機器學習 (RML) SDK｜GitHub｜DirectX 12、 Metal、 OpenCL｜Linux、OS X、Windows

Radeon ProRender SDK （原名 FireRender）｜GitHub｜OpenCL｜Linux、macOS、Windows｜基於物理的渲染引擎

RadeonRays SDK （原名 FireRays）｜GitHub｜DirectX 12， Vulkan｜Linux x64、OS X、Windows x64｜適用於任何平台上的 GPU 和 CPU 或 APU 的高效、高性能異構光線追蹤交加速庫。

RapidFire SDK｜GitHub｜DirectX、 OpenGL｜Windows｜支持使用 AMD 的影片壓縮加速 SIP 模塊VCE （H.264 編碼器）和UVD （H.264 解碼器）進行「雲遊戲」/異地渲染

True Audio Next (TAN) SDK｜GitHub｜OpenCL｜Windows x64｜用於 Radeon GPU 加速和多核高性能音訊信號處理的 SDK。

### 專業計算

截至 2022 年，AMD 計算軟體生態系統已在ROCm元項目下重新整合。

異構系統架構(HSA)、圖形處理單元通用計算(GPGPU) 和高性能計算(HPC) 的軟體:：

#### Radeon Open Compute (ROCm)

AMD 的「玻爾茲曼計劃」（以路德維希·玻爾茲曼的名字命名）於 2015 年 11 月在 SuperComputing15 大會上發布，後更名 Radeon 開放計算平台 (ROCm)。作為英偉達CUDA的替代方案，ROCm包括一個將 CUDA 原始碼移植到可移植 (HIP) 原始碼的工具，使其可以同時在 HCC 和NVCC上編譯。

- Radeon Open Compute Kernel (ROCK) 驅動程序
- Radeon Open Compute Runtime (ROCR) 運行時
- HCC：異構計算編譯器
- HIP：C++異構計算接口（用於可移植性）

#### 異構系統架構

- HSAIL-GDB：為HSA 中間層(HSAIL) 提供基於GNU 調試器的調試環境。
- HSA運行時API
- Linux amdkfd v1.6.1 版本發布，適用於 Kaveri 和 Carrizo

#### 其他工具（已棄用）

- clFFT 庫，用於快速傅立葉變換，用 OpenCL 編寫
- 用於快速傅立葉變換的 hcFFT 庫，用 HCC 優化的 C++ 編寫。

## 可用性

GPUOpen 與一些成熟且廣泛應用的自由軟體項目（如Linux 內核、 Mesa 3D和LLVM）之間存在著關聯。

## 參見

- ROCm
- AMD CodeXL
- Mantle
- Vulkan
- DLSS，英偉達針對FSR的替代技術。
- XeSS，英特爾針對FSR的替代技術。

## 外部連結

- https://gpuopen.com/
- List of games that support high-fidelity upscaling - 支持相關技術的遊戲列表

## 基本資料

- 作者：AMD
- 開發者：AMD
- 發行日期：2016年1月26日
- 程式語言：C語言, C++, GLSL
- 作業系統：Linux, Microsoft Windows
- 類型：遊戲特效組件庫, GPU 調試, CPU & GPU 優化
- 許可協議：MIT許可證