From e34e7307c9c7721052d5776ca480d6593822b618 Mon Sep 17 00:00:00 2001 From: ytxiong <45058324+yingtongxiong@users.noreply.github.com> Date: Wed, 27 Sep 2023 15:55:44 +0800 Subject: [PATCH] docs(doc): add tf32 docs (#374) * add zh docs for tf32 * add english docs * add docs for tf32 in mix precision * add english doc * modify the gitignore --- .../locales/en/LC_MESSAGES/mixed_precision.po | 34 ++++++++++++- doc/code-docs/source/mixed_precision.rst | 45 ++++++++++++++++++ doc/imgs/tf32.png | Bin 0 -> 47853 bytes 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 doc/imgs/tf32.png diff --git a/doc/code-docs/locales/en/LC_MESSAGES/mixed_precision.po b/doc/code-docs/locales/en/LC_MESSAGES/mixed_precision.po index 6707b89..d021814 100644 --- a/doc/code-docs/locales/en/LC_MESSAGES/mixed_precision.po +++ b/doc/code-docs/locales/en/LC_MESSAGES/mixed_precision.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: InternLM \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 17:04+0800\n" +"POT-Creation-Date: 2023-09-27 10:59+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -82,3 +82,35 @@ msgstr "" #: ../../source/mixed_precision.rst:16 msgid "例如:" msgstr "For example:" + +#: ../../source/mixed_precision.rst:40 +msgid "TF32训练" +msgstr "TF32 Training" + +#: ../../source/mixed_precision.rst:41 +msgid "TensorFloat-32(TF32)是Nvidia在Ampere架构GPU上推出的专门运用于TensorCore的一种计算格式。其与其他常用数据格式的比较如下图:" +msgstr "TensorFloat-32 (TF32) is a computational format introduced by Nvidia on Ampere Architecture GPUs for TensorCore. A comparison with other data formats is shown below." + +#: ../../source/mixed_precision.rst:47 +msgid "使用TF32的前置条件:" +msgstr "Prerequisites for using TF32." + +#: ../../source/mixed_precision.rst:49 +msgid "输入数据类型为FP32,且计算为矩阵乘法及卷积相关运算,才可以使用TF32作为TensorCore的中间计算类型。" +msgstr "The input data type should be FP32 and TF32 is designed for matrix multiplication, convolutions, and other relative computations." + +#: ../../source/mixed_precision.rst:51 +msgid "Ampere架构的GPU。" +msgstr "Ampere Architecture GPU" + +#: ../../source/mixed_precision.rst:53 +msgid "InternLM支持使用TF32训练模型,允许用户在config文件中将 ``dtype`` 设置为 ``torch.tf32``。" +msgstr "InternLM supports training model in TF32 and allows user to set the ``dtype`` in config as ``torch.tf32``." + +#: ../../source/mixed_precision.rst:75 +msgid "" +"值得注意的是,TF32仅仅是在使用TensorCore时的一种中间计算格式,并不是一个完全的数据类型。因此,在InternLM中,尽管用户将 " +"``dtype`` 设置成了 ``torch.tf32``,模型的数据类型依旧是 ``torch.float32``。InternLM会针对 " +"``dtype`` 为 ``torch.tf32`` 的情况,设置以下变量来开启TF32训练。" +msgstr "It is noticed that TF32 is an intermediate format in TensorCore instead of a data type. Therefore, InternLM could set the following environment variables to enable TF32 when the ``dtype`` is ``torch.tf32``, which is actually ``torch.float32``." + diff --git a/doc/code-docs/source/mixed_precision.rst b/doc/code-docs/source/mixed_precision.rst index 59955e0..fdf1d22 100644 --- a/doc/code-docs/source/mixed_precision.rst +++ b/doc/code-docs/source/mixed_precision.rst @@ -34,3 +34,48 @@ InternLM默认将模型转换为16位浮点数类型进行训练(在配置文 dtype=torch.bfloat16(), sync_buffer=False, ) + + +TF32训练 +----------------- +TensorFloat-32(TF32)是Nvidia在Ampere架构GPU上推出的专门运用于TensorCore的一种计算格式。其与其他常用数据格式的比较如下图: + +.. figure:: ../../imgs/tf32.png + :scale: 50% + :class: with-border + +使用TF32的前置条件: + +1. 输入数据类型为FP32,且计算为矩阵乘法及卷积相关运算,才可以使用TF32作为TensorCore的中间计算类型。 + +2. Ampere架构的GPU。 + +InternLM支持使用TF32训练模型,允许用户在config文件中将 ``dtype`` 设置为 ``torch.tf32``。 + +.. code-block:: python + + model = dict( + checkpoint=False, # The proportion of layers for activation aheckpointing, the optional value are True/False/[0-1] + num_attention_heads=NUM_ATTENTION_HEAD, + embed_split_hidden=True, + vocab_size=VOCAB_SIZE, + embed_grad_scale=1, + parallel_output=True, + hidden_size=HIDDEN_SIZE, + num_layers=NUM_LAYER, + mlp_ratio=MLP_RATIO, + apply_post_layer_norm=False, + dtype="torch.tf32", # Support: "torch.float16", "torch.half", "torch.bfloat16", "torch.float32", "torch.tf32" + norm_type="rmsnorm", + layer_norm_epsilon=1e-5, + use_flash_attn=True, + num_chunks=1, # if num_chunks > 1, interleaved pipeline scheduler is used. + ) + +值得注意的是,TF32仅仅是在使用TensorCore时的一种中间计算格式,并不是一个完全的数据类型。因此,在InternLM中,尽管用户将 ``dtype`` 设置成了 ``torch.tf32``,模型的数据类型依旧是 ``torch.float32``。InternLM会针对 ``dtype`` 为 ``torch.tf32`` 的情况,设置以下变量来开启TF32训练。 + +.. code-block:: python + + torch.backends.cudnn.allow_tf32 = True + torch.backends.cuda.matmul.allow_tf32 = True + diff --git a/doc/imgs/tf32.png b/doc/imgs/tf32.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f8393c04436a51192ec8103db127f3e1ca83d7 GIT binary patch literal 47853 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

+qp4 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 z%0D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 QM+N-pY8t|;)Ey%J4?>C4jQ{`u literal 0 HcmV?d00001