特性開關¶
特性開關是 FBGEMM_GPU 程式碼庫中提供的一種機制,它提供了一種基於環境設定啟用和停用實驗性功能的統一方式。
雖然可以將其視為環境變數之上的型別安全抽象,但請注意,特性開關是控制程式碼行為的**執行時機制**。
建立特性開關¶
如果目的是將某項功能整合到程式碼庫中,但要推遲其啟用,直到在生產工作負載中進行進一步驗證,則應建立特性開關。
C++¶
要在 C++ 端定義特性開關,請將定義新增到 fbgemm_gpu/config/feature_gates.h 檔案中的 ENUMERATE_ALL_FEATURE_FLAGS X 宏定義中。
#define ENUMERATE_ALL_FEATURE_FLAGS \
X(...) \
... \
X(EXAMPLE_FEATURE) // <-- Append here
Python¶
要在 Python 端定義特性開關,只需將新值新增到 fbgemm_gpu/fbgemm_gpu/config/feature_list.py 檔案中的 FeatureGateName 列舉定義中。
class FeatureGateName(Enum):
...
# Add here
EXAMPLE_FEATURE = auto()
雖然不是必需的,但最好與 fbgemm_gpu/config/feature_gates.h 中定義的列舉值保持一致,以提高一致性。
啟用特性開關¶
請參閱 特性開關 (C++) 和 特性開關 (Python) 中的文件,獲取有關如何啟用特性開關的程式碼示例。