文档¶
FBGEMM 和 FBGEMM_GPU 都在其源代码文件中提供了详尽的注释,这些注释是这两个库最权威和最新的文档。
通用文档指南¶
当添加新的公共 API 方法时,应附带充分的文档。以下是为 FBGEMM 和 FBGEMM_GPU 代码编写文档的一些指南:
代码本身不是文档! 站在新开发者的角度去理解你的代码的作用,并使他们的工作更轻松。
所有公共 API 方法都应添加文档。
不要将文档作为一项单独的任务。相反,在编写代码的同时编写文档字符串。
最低限度应包含:
方法的描述。
可以传递给方法的参数和实参的描述。
方法的返回值描述。
用法示例、指向其他方法的链接以及方法调用限制。
具体文档指南¶
构建文档¶
注意: 最新的文档构建说明嵌入在 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
部署预览¶
当提交拉取请求时,Netlify 会自动构建和部署 FBGEMM 和 FBGEMM_GPU 文档的预览。构建完成后,可以在以下位置找到部署预览:
https://deploy-preview-{PR NUMBER}--pytorch-fbgemm-docs.netlify.app/