文件¶
FBGEMM 和 FBGEMM_GPU 的原始碼中都提供了豐富的註釋,這些註釋是這兩個庫最權威和最新的文件。
通用文件指南¶
在新增新的公共 API 方法時,應附帶足夠的文件。以下是為 FBGEMM 和 FBGEMM_GPU 程式碼編寫文件的一些指南
程式碼本身不是文件! 設身處地為需要理解你的程式碼的新開發者著想,讓他們更容易上手。
應為所有公共 API 方法新增文件。
不要將文件作為單獨的任務留到以後。相反,請與程式碼一起編寫 docstrings。
至少應包含:
方法的描述。
可傳遞給方法的引數和實參的描述。
方法返回值的描述。
使用示例、指向其他方法的連結以及方法呼叫限制。
特定文件指南¶
構建文件¶
注意: 最新文件構建說明已嵌入 FBGEMM 倉庫中 setup_env.bash 下的一組指令碼中。
構建 FBGEMM 和 FBGEMM_GPU 文件的一般步驟如下:
設定獨立的構建環境。
構建 FBGEMM_GPU(CPU 變體)。
設定文件工具鏈。
執行文件構建指令碼。
設定構建環境¶
按照 設定獨立的構建環境 中的說明設定 Conda 環境。
構建 FBGEMM_GPU¶
為了正確構建文件,需要進行一次 FBGEMM_GPU 構建。請按照 安裝構建工具 中的說明,然後按照 僅限 CPU 構建 的說明構建 FBGEMM_GPU(CPU 變體)。
設定文件工具鏈¶
# !! Run inside the Conda environment !!
# From the /fbgemm_gpu/ directory
cd docs
# Install Sphinx and other Python packages
pip install -r requirements.txt
# Install Doxygen and and other tools
conda install -c conda-forge --override-channels -y \
doxygen \
graphviz \
make
構建文件¶
# Generate the C++ documentation, the Python documentation, and assemble
# together
make clean doxygen html
構建完成後,檢視生成的文件
sphinx-serve -b build
檢查文件¶
用於構建的相同命令也可用於檢查,只需在命令前加上 SPHINX_LINT 標誌即可
SPHINX_LINT=1 make clean doxygen html
出於技術原因,在啟用檢查的情況下執行 Sphinx 構建會導致文件組裝不正確,這就是為什麼檢查與構建分開呼叫的原因。
偶爾,檢查時可能會出現未解析的引用,其錯誤特徵如下:
/opt/build/repo/fbgemm_gpu/docs/docstring of torch._ops.fbgemm.PyCapsule.jagged_2d_to_dense:1:py:class reference target not found: Tensor
如果這些錯誤是誤報,則可以透過將它們新增到 nitpick.ignore 檔案(與 Sphinx conf.py 位於同一目錄下)來忽略它們
# Add in `{domain} {reference}` format, with space in between.
py:class Tensor
部署預覽¶
當建立拉取請求時,FBGEMM 和 FBGEMM_GPU 文件的預覽將由 Netlify 自動構建和部署。構建完成後,可以在以下位置找到部署預覽:
https://deploy-preview-{PR NUMBER}--pytorch-fbgemm-docs.netlify.app/