From 0280a66dc62bd8ff1ce21c9c2cd0029799829eaa Mon Sep 17 00:00:00 2001 From: bhsueh Date: Sun, 4 Apr 2021 16:04:36 +0800 Subject: [PATCH] Add the v4.0 codes --- .gitignore | 4 + CMakeLists.txt | 291 +- README.md | 410 +- .../bert-pyt-quantization/README.md | 27 +- .../bert-pyt-quantization/quant_utils.py | 37 +- .../bert-pyt-quantization/run_squad.py | 2 +- .../bert-tf-quantization/README.md | 58 +- .../python/layers/tensor_quantizer.py | 10 +- .../python/ops/fake_quantize.py | 11 +- .../bert-tf-quantization/modeling.py | 4 +- .../bert-tf-quantization/run_squad.py | 31 +- cmake/FasterTransformerConfig.cmake.in | 39 + cmake/Modules/FindNCCL.cmake | 88 + docs/QAList.md | 4 +- docs/decoder_guide.md | 914 +- docs/encoder_guide.md | 834 +- docs/gpt_guide.md | 294 + docs/images/FT_Encoder_T4.png | Bin 266793 -> 137242 bytes docs/images/FT_GPT_A100.png | Bin 0 -> 76034 bytes docs/images/PyTorch_Decoder_T4_fp16.png | Bin 457990 -> 0 bytes docs/images/Py_Decoder_T4.png | Bin 0 -> 103836 bytes docs/images/Py_Encoder_T4.png | Bin 0 -> 163595 bytes docs/images/TF_Decoder_T4.png | Bin 0 -> 100999 bytes docs/images/TF_Decoder_T4_fp16.png | Bin 627813 -> 0 bytes docs/images/TF_Encoder_T4.png | Bin 640760 -> 146056 bytes docs/images/TF_cpp_Encoder_T4.png | Bin 396730 -> 0 bytes docs/images/gpt_flowchart.png | Bin 0 -> 747313 bytes docs/images/workflow-of-int8-inference.png | Bin 585346 -> 332544 bytes fastertransformer/CMakeLists.txt | 6 +- fastertransformer/bert_encoder_transformer.h | 419 +- fastertransformer/common.h | 485 - fastertransformer/cuda/CMakeLists.txt | 25 +- fastertransformer/cuda/attention_kernels.cu | 845 + fastertransformer/cuda/attention_kernels.cuh | 76 + fastertransformer/cuda/cuda_int8_kernels.cu | 61 +- fastertransformer/cuda/cuda_int8_kernels.h | 3 + fastertransformer/cuda/cuda_kernels.cu | 449 +- fastertransformer/cuda/cuda_kernels.h | 81 +- .../cuda/decoding_kernel_check.cpp | 4 +- .../cuda/decoding_kernel_check.h | 11 +- fastertransformer/cuda/decoding_kernels.cu | 558 +- .../cuda/masked_multihead_attention.cu | 866 + .../cuda/masked_multihead_attention.h | 92 + .../cuda/masked_multihead_attention_utils.h | 665 + fastertransformer/cuda/multi_head_attention.h | 10 +- .../cuda/online_softmax_beamsearch_kernels.cu | 76 +- fastertransformer/cuda/open_attention.cu | 1929 +- fastertransformer/cuda/open_attention.h | 992 +- fastertransformer/cuda/open_decoder.cu | 3348 +- fastertransformer/cuda/open_decoder.cuh | 79 + fastertransformer/cuda/topk_kernels.cu | 745 +- fastertransformer/cuda/topk_kernels.cuh | 59 +- fastertransformer/cuda/transformer_kernels.cu | 604 + .../cuda/transformer_kernels.cuh | 49 + fastertransformer/decoding_beamsearch.h | 283 +- fastertransformer/decoding_sampling.h | 349 +- fastertransformer/faster_transformer.h | 28 - .../gemm_test/encoder_gemm_func.cc | 549 +- .../gemm_test/encoder_igemm_func.cc | 71 +- .../gemm_test/encoder_igemm_func.h | 2 +- fastertransformer/gpt.h | 835 + fastertransformer/gpt2.h | 512 - fastertransformer/open_decoder.h | 833 +- fastertransformer/standard_encoder.h | 787 + fastertransformer/tf_op/CMakeLists.txt | 23 +- .../tf_op/add_bias_transpose_op.cc | 16 +- .../tf_op/bert_transformer_op.cc | 219 +- fastertransformer/tf_op/common_op.h | 4 +- fastertransformer/tf_op/decoder_op.cc | 101 +- .../tf_op/decoding_beamsearch_op.cc | 42 +- .../tf_op/decoding_sampling_op.cc | 35 +- .../tf_op/fused_multihead_attention_op.cc | 174 +- .../tf_op/{gpt2_op.cc => gpt_op.cc} | 104 +- fastertransformer/tf_op/weight_quantize_op.cc | 2 +- fastertransformer/th_op/CMakeLists.txt | 70 +- .../th_op/{decoder_ths_op.cc => decoder.cc} | 20 +- .../th_op/{decoder_ext.h => decoder.h} | 65 +- fastertransformer/th_op/decoder_ext.cc | 117 - fastertransformer/th_op/decoder_ths_op.h | 72 - .../th_op/{decoding_ths_op.cc => decoding.cc} | 8 +- .../th_op/{decoding_ext.h => decoding.h} | 41 +- fastertransformer/th_op/decoding_ext.cc | 155 - fastertransformer/th_op/decoding_ths_op.h | 88 - .../th_op/{encoder_ths_op.cc => encoder.cc} | 18 +- .../th_op/{encoder_ext.h => encoder.h} | 39 +- fastertransformer/th_op/encoder_ext.cc | 144 - fastertransformer/th_op/encoder_ths_op.h | 75 - fastertransformer/th_op/ft_ext.cc | 57 - .../th_op/{ft_ths_op.cc => ft_op.cc} | 63 +- fastertransformer/th_op/gpt.cc | 138 + fastertransformer/th_op/gpt.h | 356 + fastertransformer/th_op/weight_quantize_op.h | 2 +- .../triton_backend/CMakeLists.txt | 25 + .../triton_backend/gpt_triton_backend.cc | 849 + .../triton_backend/gpt_triton_backend.hpp | 354 + .../triton_backend/transformer.hpp | 129 + .../fused_multihead_attention_common.h | 1 + .../fused_multihead_attention_v2.h | 53 +- ...d_attention_v2_fp16_128_64_kernel.sm70.cpp | 15593 +++++++++ ...d_attention_v2_fp16_256_64_kernel.sm70.cpp | 15486 +++++++++ ...d_attention_v2_fp16_384_64_kernel.sm70.cpp | 21203 +++++++++++++ ...ad_attention_v2_fp16_64_64_kernel.sm70.cpp | 18963 +++++++++++ ...ad_attention_v2_fp16_96_64_kernel.sm70.cpp | 26014 ++++++++++++++++ ...ad_attention_v2_int8_64_64_kernel.sm75.cpp | 9523 ++++++ ...ad_attention_v2_int8_64_64_kernel.sm80.cpp | 8681 ++++++ .../qkvToContext.cu | 309 +- .../qkvToContext.h | 37 +- .../trt_plugin/bert_transformer_plugin.h | 367 - fastertransformer/trt_plugin/trt_model.h | 148 - fastertransformer/utils/CMakeLists.txt | 26 + fastertransformer/utils/INIReader.h | 499 + fastertransformer/{ => utils}/allocator.h | 10 +- fastertransformer/{ => utils}/arguments.h | 42 +- fastertransformer/utils/common.h | 260 + .../{ => utils}/common_structure.h | 2 + fastertransformer/utils/functions.h | 694 + fastertransformer/utils/nccl_utils.cpp | 181 + fastertransformer/utils/nccl_utils.h | 117 + fastertransformer/utils/nvtx_utils.cpp | 25 + fastertransformer/utils/nvtx_utils.h | 54 + fastertransformer/{ => utils}/utils.h | 2 +- images/decoding_flowchart.png | Bin 0 -> 867017 bytes requirement.txt | 8 + sample/CMakeLists.txt | 8 +- sample/cpp/CMakeLists.txt | 24 +- sample/cpp/decoding_beamsearch_sample.cc | 52 +- sample/cpp/decoding_sampling_sample.cc | 48 +- sample/cpp/encoder_sample.cc | 19 +- sample/cpp/gpt2_sample.cc | 379 - sample/cpp/gpt_config.ini | 54 + sample/cpp/gpt_sample.cc | 732 + sample/cpp/gpt_thread_sample.cc | 130 + sample/cpp/gpt_triton_sample.cc | 124 + sample/cpp/start_ids.csv | 8 + .../CMakeLists.txt => pytorch/__init__.py} | 8 - sample/pytorch/decoder_sample.py | 31 +- sample/pytorch/decoding_sample.py | 15 +- sample/pytorch/encoder_sample.py | 109 +- sample/pytorch/gpt_check_result.py | 147 + sample/pytorch/gpt_sample.py | 166 + sample/pytorch/run_glue.py | 27 +- sample/pytorch/run_squad.py | 36 +- sample/pytorch/run_translation.py | 11 +- .../scripts/profile_decoder_decoding.sh | 84 +- sample/pytorch/scripts/profile_encoder.sh | 56 +- .../profile_encoder_effective_transformer.sh | 51 - ...file_encoder_effective_transformer_int8.sh | 66 - .../pytorch/scripts/profile_encoder_int8.sh | 74 +- sample/pytorch/scripts/profile_gpt.sh | 49 + sample/pytorch/scripts/run_mrpc.sh | 6 +- sample/pytorch/scripts/run_squad.sh | 6 +- sample/pytorch/unit_test/__init__.py | 13 + sample/pytorch/unit_test/gpt_unit_test.py | 276 + sample/pytorch/utils/ckpt_quantization.py | 34 +- sample/pytorch/utils/convert_gpt_token.py | 42 + sample/pytorch/utils/decoder.py | 72 +- sample/pytorch/utils/decoding.py | 138 +- sample/pytorch/utils/encoder.py | 52 +- sample/pytorch/utils/generate_gpt_config.py | 97 + sample/pytorch/utils/gpt.py | 221 + .../utils/gpt_token_encoder.py} | 8 +- sample/pytorch/utils/megatron_ckpt_convert.py | 235 + sample/pytorch/utils/translation_model.py | 5 +- sample/pytorch/utils/translator.py | 2 +- sample/tensorRT/transformer_trt.cc | 164 - sample/tensorflow/decoder_sample.py | 3 +- sample/tensorflow/encoder_decoder_sample.py | 173 - sample/tensorflow/encoder_decoding_sample.py | 204 - sample/tensorflow/encoder_sample.py | 145 +- .../{gpt2_sample.py => gpt_sample.py} | 105 +- ..._sample_int8.py => open_encoder_sample.py} | 356 +- .../scripts/profile_decoder_performance.sh | 74 - ...profile_decoding_beamsearch_performance.sh | 83 + .../scripts/profile_decoding_performance.sh | 65 - .../profile_decoding_sampling_performance.sh | 122 + ...ofile_effective_transformer_performance.sh | 57 - ..._effective_transformer_performance_int8.sh | 67 - .../scripts/profile_encoder_performance.sh | 49 +- .../profile_encoder_performance_int8.sh | 83 +- .../tensorflow_bert/ckpt_quantization.py | 17 +- .../tensorflow_bert/fast_infer_util.py | 2 +- sample/tensorflow/translate_sample.py | 43 +- sample/tensorflow/unit_test/README.md | 46 + .../unit_test/bert_encoder_unit_test.py | 124 + .../unit_test/decoding_unit_test.py | 82 +- ...fused_QKV_multihead_attention_unit_test.py | 176 + sample/tensorflow/unit_test/int8_f1_score | 3 + ...unit_test.py => open_encoder_unit_test.py} | 60 +- .../unit_test/squad_int8_unit_test.py | 113 + sample/tensorflow/utils/beam_search.py | 7 +- sample/tensorflow/utils/common.py | 543 +- .../utils/convert_tf_ckpt_to_csv.py | 42 - sample/tensorflow/utils/decoder.py | 77 +- sample/tensorflow/utils/decoding.py | 49 +- .../tensorflow/utils/download_gpt2_model.py | 2 +- sample/tensorflow/utils/encoder.py | 99 +- sample/tensorflow/utils/gpt2_requirement.txt | 4 - .../utils/openai_gpt_ckpt_convert.py | 184 + tools/gemm_test/CMakeLists.txt | 11 +- tools/gemm_test/common.h | 57 +- tools/gemm_test/decoding_gemm.h | 818 +- tools/gemm_test/encoder_gemm.cc | 1 + tools/gemm_test/gpt_gemm.cc | 50 + 203 files changed, 139218 insertions(+), 10604 deletions(-) create mode 100644 .gitignore create mode 100644 cmake/FasterTransformerConfig.cmake.in create mode 100644 cmake/Modules/FindNCCL.cmake create mode 100644 docs/gpt_guide.md create mode 100644 docs/images/FT_GPT_A100.png delete mode 100644 docs/images/PyTorch_Decoder_T4_fp16.png create mode 100644 docs/images/Py_Decoder_T4.png create mode 100644 docs/images/Py_Encoder_T4.png create mode 100644 docs/images/TF_Decoder_T4.png delete mode 100644 docs/images/TF_Decoder_T4_fp16.png delete mode 100644 docs/images/TF_cpp_Encoder_T4.png create mode 100644 docs/images/gpt_flowchart.png mode change 100755 => 100644 fastertransformer/bert_encoder_transformer.h delete mode 100644 fastertransformer/common.h create mode 100644 fastertransformer/cuda/attention_kernels.cu create mode 100644 fastertransformer/cuda/attention_kernels.cuh create mode 100644 fastertransformer/cuda/masked_multihead_attention.cu create mode 100644 fastertransformer/cuda/masked_multihead_attention.h create mode 100644 fastertransformer/cuda/masked_multihead_attention_utils.h create mode 100644 fastertransformer/cuda/open_decoder.cuh create mode 100644 fastertransformer/cuda/transformer_kernels.cu create mode 100644 fastertransformer/cuda/transformer_kernels.cuh delete mode 100644 fastertransformer/faster_transformer.h create mode 100644 fastertransformer/gpt.h delete mode 100644 fastertransformer/gpt2.h create mode 100644 fastertransformer/standard_encoder.h rename fastertransformer/tf_op/{gpt2_op.cc => gpt_op.cc} (64%) rename fastertransformer/th_op/{decoder_ths_op.cc => decoder.cc} (91%) rename fastertransformer/th_op/{decoder_ext.h => decoder.h} (71%) delete mode 100644 fastertransformer/th_op/decoder_ext.cc delete mode 100644 fastertransformer/th_op/decoder_ths_op.h rename fastertransformer/th_op/{decoding_ths_op.cc => decoding.cc} (97%) rename fastertransformer/th_op/{decoding_ext.h => decoding.h} (88%) delete mode 100644 fastertransformer/th_op/decoding_ext.cc delete mode 100644 fastertransformer/th_op/decoding_ths_op.h rename fastertransformer/th_op/{encoder_ths_op.cc => encoder.cc} (90%) rename fastertransformer/th_op/{encoder_ext.h => encoder.h} (91%) delete mode 100644 fastertransformer/th_op/encoder_ext.cc delete mode 100644 fastertransformer/th_op/encoder_ths_op.h delete mode 100644 fastertransformer/th_op/ft_ext.cc rename fastertransformer/th_op/{ft_ths_op.cc => ft_op.cc} (67%) create mode 100644 fastertransformer/th_op/gpt.cc create mode 100644 fastertransformer/th_op/gpt.h create mode 100644 fastertransformer/triton_backend/CMakeLists.txt create mode 100644 fastertransformer/triton_backend/gpt_triton_backend.cc create mode 100644 fastertransformer/triton_backend/gpt_triton_backend.hpp create mode 100644 fastertransformer/triton_backend/transformer.hpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_fp16_128_64_kernel.sm70.cpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_fp16_256_64_kernel.sm70.cpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_fp16_384_64_kernel.sm70.cpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_fp16_64_64_kernel.sm70.cpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_fp16_96_64_kernel.sm70.cpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_int8_64_64_kernel.sm75.cpp create mode 100644 fastertransformer/trt_fused_multihead_attention/fused_multihead_attention_v2_int8_64_64_kernel.sm80.cpp delete mode 100644 fastertransformer/trt_plugin/bert_transformer_plugin.h delete mode 100644 fastertransformer/trt_plugin/trt_model.h create mode 100644 fastertransformer/utils/CMakeLists.txt create mode 100644 fastertransformer/utils/INIReader.h rename fastertransformer/{ => utils}/allocator.h (96%) rename fastertransformer/{ => utils}/arguments.h (73%) create mode 100644 fastertransformer/utils/common.h rename fastertransformer/{ => utils}/common_structure.h (94%) create mode 100644 fastertransformer/utils/functions.h create mode 100644 fastertransformer/utils/nccl_utils.cpp create mode 100644 fastertransformer/utils/nccl_utils.h create mode 100644 fastertransformer/utils/nvtx_utils.cpp create mode 100644 fastertransformer/utils/nvtx_utils.h rename fastertransformer/{ => utils}/utils.h (97%) create mode 100644 images/decoding_flowchart.png create mode 100644 requirement.txt delete mode 100644 sample/cpp/gpt2_sample.cc create mode 100644 sample/cpp/gpt_config.ini create mode 100644 sample/cpp/gpt_sample.cc create mode 100644 sample/cpp/gpt_thread_sample.cc create mode 100644 sample/cpp/gpt_triton_sample.cc create mode 100644 sample/cpp/start_ids.csv rename sample/{tensorRT/CMakeLists.txt => pytorch/__init__.py} (75%) create mode 100644 sample/pytorch/gpt_check_result.py create mode 100644 sample/pytorch/gpt_sample.py delete mode 100644 sample/pytorch/scripts/profile_encoder_effective_transformer.sh delete mode 100644 sample/pytorch/scripts/profile_encoder_effective_transformer_int8.sh create mode 100644 sample/pytorch/scripts/profile_gpt.sh create mode 100644 sample/pytorch/unit_test/__init__.py create mode 100644 sample/pytorch/unit_test/gpt_unit_test.py create mode 100644 sample/pytorch/utils/convert_gpt_token.py create mode 100644 sample/pytorch/utils/generate_gpt_config.py create mode 100644 sample/pytorch/utils/gpt.py rename sample/{tensorflow/utils/gpt2_token_encoder.py => pytorch/utils/gpt_token_encoder.py} (95%) create mode 100644 sample/pytorch/utils/megatron_ckpt_convert.py delete mode 100644 sample/tensorRT/transformer_trt.cc delete mode 100644 sample/tensorflow/encoder_decoder_sample.py delete mode 100644 sample/tensorflow/encoder_decoding_sample.py rename sample/tensorflow/{gpt2_sample.py => gpt_sample.py} (84%) rename sample/tensorflow/{encoder_sample_int8.py => open_encoder_sample.py} (79%) mode change 100755 => 100644 delete mode 100644 sample/tensorflow/scripts/profile_decoder_performance.sh create mode 100644 sample/tensorflow/scripts/profile_decoding_beamsearch_performance.sh delete mode 100644 sample/tensorflow/scripts/profile_decoding_performance.sh create mode 100644 sample/tensorflow/scripts/profile_decoding_sampling_performance.sh delete mode 100644 sample/tensorflow/scripts/profile_effective_transformer_performance.sh delete mode 100644 sample/tensorflow/scripts/profile_effective_transformer_performance_int8.sh mode change 100755 => 100644 sample/tensorflow/scripts/profile_encoder_performance_int8.sh create mode 100644 sample/tensorflow/unit_test/README.md create mode 100644 sample/tensorflow/unit_test/bert_encoder_unit_test.py create mode 100644 sample/tensorflow/unit_test/fused_QKV_multihead_attention_unit_test.py create mode 100644 sample/tensorflow/unit_test/int8_f1_score rename sample/tensorflow/unit_test/{encoder_unit_test.py => open_encoder_unit_test.py} (63%) create mode 100644 sample/tensorflow/unit_test/squad_int8_unit_test.py delete mode 100644 sample/tensorflow/utils/convert_tf_ckpt_to_csv.py delete mode 100644 sample/tensorflow/utils/gpt2_requirement.txt create mode 100644 sample/tensorflow/utils/openai_gpt_ckpt_convert.py create mode 100644 tools/gemm_test/gpt_gemm.cc diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..884d08b46 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*~ +*.o +*build*/ +*.pyc \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 03c48bb4e..76757d608 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. +# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,12 +16,23 @@ project(FasterTransformer LANGUAGES CXX CUDA) find_package(CUDA 10.1 REQUIRED) -option(BUILD_TRT "Build in TensorRT mode" OFF) option(BUILD_TF "Build in TensorFlow mode" OFF) -option(BUILD_THE "Build in PyTorch eager mode" OFF) -option(BUILD_THS "Build in TorchScript class mode" OFF) +option(BUILD_PYT "Build in PyTorch TorchScript class mode" OFF) +option(BUILD_GPT "Build project with gpt" ON) # TODO Set default to OFF -if(BUILD_THS) +if(BUILD_GPT) + message(STATUS "Add DBUILD_GPT, requires MPI and NCCL") + add_definitions("-DBUILD_GPT") + set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules) + find_package(MPI REQUIRED) + find_package(NCCL REQUIRED) + #if(${NCCL_VERSION} LESS 2.7) + # message(FATAL_ERROR "NCCL_VERSION ${NCCL_VERSION} is less than 2.7") + #endif() + set(CMAKE_MODULE_PATH "") # prevent the bugs for pytorch building +endif() + +if(BUILD_PYT) if(DEFINED ENV{NVIDIA_PYTORCH_VERSION}) if($ENV{NVIDIA_PYTORCH_VERSION} VERSION_LESS "20.03") message(FATAL_ERROR "NVIDIA PyTorch image is too old for TorchScript mode.") @@ -32,7 +43,11 @@ if(BUILD_THS) endif() endif() -set(CXX_STD "11" CACHE STRING "C++ standard") +if(BUILD_PYT OR BUILD_GPT) + set(CXX_STD "14" CACHE STRING "C++ standard") +else() + set(CXX_STD "11" CACHE STRING "C++ standard") +endif() set(CUDA_PATH ${CUDA_TOOLKIT_ROOT_DIR}) @@ -42,12 +57,6 @@ if(BUILD_TF AND NOT TF_PATH) message(FATAL_ERROR "TF_PATH must be set if BUILD_TF(=TensorFlow mode) is on.") endif() -set(TRT_PATH "" CACHE STRING "TensorRT path") - -if(BUILD_TRT AND NOT TRT_PATH) - message(FATAL_ERROR "TRT_PATH must be set if BUILD_TRT(=TensorRT mode) is on.") -endif() - list(APPEND CMAKE_MODULE_PATH ${CUDA_PATH}/lib64) if (${CUDA_VERSION} GREATER_EQUAL 11.0) @@ -55,44 +64,99 @@ if (${CUDA_VERSION} GREATER_EQUAL 11.0) add_definitions("-DCUDA11_MODE") endif() +# profiling +option(USE_NVTX "Whether or not to use nvtx" OFF) +if(USE_NVTX) + message(STATUS "NVTX is enabled.") + add_definitions("-DUSE_NVTX") +endif() + # setting compiler flags -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -Wall") - -if (SM STREQUAL 80 OR - SM STREQUAL 86 OR - SM STREQUAL 70 OR - SM STREQUAL 75 OR - SM STREQUAL 61 OR - SM STREQUAL 60) -#set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_${SM},code=\\\"sm_${SM},compute_${SM}\\\" -rdc=true") -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_${SM},code=\\\"sm_${SM},compute_${SM}\\\"") - if (SM STREQUAL 70 OR SM STREQUAL 75 OR SM STREQUAL 80 OR SM STREQUAL 86) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWMMA") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWMMA") - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DWMMA") +set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -Wall -ldl") + +# if (SM STREQUAL 80 OR +# SM STREQUAL 86 OR +# SM STREQUAL 70 OR +# SM STREQUAL 75 OR +# SM STREQUAL 61 OR +# SM STREQUAL 60) +# #set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_${SM},code=\\\"sm_${SM},compute_${SM}\\\" -rdc=true") +# set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_${SM},code=\\\"sm_${SM},compute_${SM}\\\"") +# if (SM STREQUAL 70 OR SM STREQUAL 75 OR SM STREQUAL 80 OR SM STREQUAL 86) +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWMMA") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWMMA") +# set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DWMMA") +# endif() +# message("-- Assign GPU architecture (sm=${SM})") + +# else() +# set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} \ +# -gencode=arch=compute_70,code=\\\"sm_70,compute_70\\\" \ +# -gencode=arch=compute_75,code=\\\"sm_75,compute_75\\\" \ +# ") +# # -rdc=true") +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWMMA") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWMMA") +# set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DWMMA") +# message("-- Assign GPU architecture (sm=70,75)") +# endif() + +set(SM_SETS 52 60 61 70 75 80) +set(USING_WMMA False) +set(FIND_SM False) + +foreach(SM_NUM IN LISTS SM_SETS) + string(FIND "${SM}" "${SM_NUM}" SM_POS) + if(SM_POS GREATER -1) + if(FIND_SM STREQUAL False) + set(ENV{TORCH_CUDA_ARCH_LIST} "") + endif() + set(FIND_SM True) + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_${SM_NUM},code=\\\"sm_${SM_NUM},compute_${SM_NUM}\\\"") + + if (SM_NUM STREQUAL 70 OR SM_NUM STREQUAL 75 OR SM_NUM STREQUAL 80 OR SM_NUM STREQUAL 86) + set(USING_WMMA True) + endif() + + if(BUILD_PYT) + string(SUBSTRING ${SM_NUM} 0 1 SM_MAJOR) + string(SUBSTRING ${SM_NUM} 1 1 SM_MINOR) + set(ENV{TORCH_CUDA_ARCH_LIST} "$ENV{TORCH_CUDA_ARCH_LIST}\;${SM_MAJOR}.${SM_MINOR}") + endif() + + set(CMAKE_CUDA_ARCHITECTURES ${SM_NUM}) + message("-- Assign GPU architecture (sm=${SM_NUM})") endif() -if(BUILD_THE OR BUILD_THS) - string(SUBSTRING ${SM} 0 1 SM_MAJOR) - string(SUBSTRING ${SM} 1 1 SM_MINOR) - set(ENV{TORCH_CUDA_ARCH_LIST} "${SM_MAJOR}.${SM_MINOR}") +endforeach() + +if(USING_WMMA STREQUAL True) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWMMA") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWMMA") + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DWMMA") + message("-- Use WMMA") endif() -message("-- Assign GPU architecture (sm=${SM})") -else() -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} \ - -gencode=arch=compute_70,code=\\\"sm_70,compute_70\\\" \ - -gencode=arch=compute_75,code=\\\"sm_75,compute_75\\\" \ - ") -# -rdc=true") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWMMA") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWMMA") -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DWMMA") -if(BUILD_THE OR BUILD_THS) - set(ENV{TORCH_CUDA_ARCH_LIST} "7.0;7.5") +if(NOT (FIND_SM STREQUAL True)) + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} \ + -gencode=arch=compute_70,code=\\\"sm_70,compute_70\\\" \ + -gencode=arch=compute_75,code=\\\"sm_75,compute_75\\\" \ + -gencode=arch=compute_80,code=\\\"sm_80,compute_80\\\" \ + ") + # -rdc=true") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWMMA") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWMMA") + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -DWMMA") + if(BUILD_PYT) + set(ENV{TORCH_CUDA_ARCH_LIST} "7.0;7.5;8.0") + endif() + set(CMAKE_CUDA_ARCHITECTURES 70 75 80) + message("-- Assign GPU architecture (sm=70,75,80)") endif() -message("-- Assign GPU architecture (sm=70,75)") + +if(BUILD_PYT) + set(TORCH_CUDA_ARCH_LIST $ENV{TORCH_CUDA_ARCH_LIST}) endif() set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -O0") @@ -128,21 +192,14 @@ if(BUILD_TF) list(APPEND COMMON_LIB_DIRS ${TF_PATH}) endif() -if(BUILD_TRT) - list(APPEND COMMON_HEADER_DIRS ${TRT_PATH}/include) - list(APPEND COMMON_LIB_DIRS ${TRT_PATH}/lib) -endif() - set(PYTHON_PATH "python" CACHE STRING "Python path") -if(BUILD_THS) +if(BUILD_PYT) execute_process(COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; import torch; print(torch.__version__,end='');" RESULT_VARIABLE _PYTHON_SUCCESS OUTPUT_VARIABLE TORCH_VERSION) if (TORCH_VERSION VERSION_LESS "1.5.0") message(FATAL_ERROR "PyTorch >= 1.5.0 is needed for TorchScript mode.") endif() -endif() -if(BUILD_THE OR BUILD_THS) execute_process(COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; import os; import torch; print(os.path.dirname(torch.__file__),end='');" RESULT_VARIABLE _PYTHON_SUCCESS @@ -152,34 +209,25 @@ print(os.path.dirname(torch.__file__),end='');" endif() list(APPEND CMAKE_PREFIX_PATH ${TORCH_DIR}) find_package(Torch REQUIRED) - execute_process(COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; from distutils import sysconfig; -print(sysconfig.get_python_inc()); -print(sysconfig.get_config_var('SO'));" +print(sysconfig.get_python_inc());" RESULT_VARIABLE _PYTHON_SUCCESS - OUTPUT_VARIABLE _PYTHON_VALUES) + OUTPUT_VARIABLE PY_INCLUDE_DIR) if (NOT _PYTHON_SUCCESS MATCHES 0) message(FATAL_ERROR "Python config Error.") endif() - string(REGEX REPLACE ";" "\\\\;" _PYTHON_VALUES ${_PYTHON_VALUES}) - string(REGEX REPLACE "\n" ";" _PYTHON_VALUES ${_PYTHON_VALUES}) - list(GET _PYTHON_VALUES 0 PY_INCLUDE_DIR) - list(GET _PYTHON_VALUES 1 PY_SUFFIX) list(APPEND COMMON_HEADER_DIRS ${PY_INCLUDE_DIR}) - - execute_process(COMMAND ${PYTHON_PATH} "-c" "from torch.utils import cpp_extension; print(' '.join(cpp_extension._prepare_ldflags([],True,False)),end='');" - RESULT_VARIABLE _PYTHON_SUCCESS - OUTPUT_VARIABLE TORCH_LINK) - if (NOT _PYTHON_SUCCESS MATCHES 0) - message(FATAL_ERROR "PyTorch link config Error.") - endif() endif() +list(APPEND COMMON_HEADER_DIRS ${MPI_INCLUDE_PATH}) include_directories( ${COMMON_HEADER_DIRS} ) +# set path of mpi +list(APPEND COMMON_LIB_DIRS /usr/local/mpi/lib) + link_directories( ${COMMON_LIB_DIRS} ) @@ -196,7 +244,7 @@ if(BUILD_TF) ) endif() -if(BUILD_THE OR BUILD_THS) +if(BUILD_PYT) add_custom_target(copy ALL COMMENT "Copying pytorch test scripts") add_custom_command(TARGET copy POST_BUILD @@ -205,3 +253,110 @@ if(BUILD_THE OR BUILD_THS) COMMAND cp ${PROJECT_SOURCE_DIR}/sample/tensorflow/utils/translation/test.* ${PROJECT_BINARY_DIR}/pytorch/translation/data/ ) endif() + +######################################## + +if(BUILD_GPT) +# Following feature requires cmake 3.15 +# TODO Remove this part or modify such that we can run it under cmake 3.10 +cmake_minimum_required(VERSION 3.15 FATAL_ERROR) +add_library(transformer-static STATIC + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $) +set_property(TARGET transformer-static PROPERTY POSITION_INDEPENDENT_CODE ON) +set_property(TARGET transformer-static PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) +target_link_libraries(transformer-static PUBLIC -lcublas -lcudart -lcurand -lnccl -lmpi nvtx_utils) + +add_library(transformer-shared SHARED + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $) +## add_library(transformer-shared SHARED $) +set_target_properties(transformer-shared PROPERTIES POSITION_INDEPENDENT_CODE ON) +set_target_properties(transformer-shared PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON) +set_target_properties(transformer-shared PROPERTIES LINKER_LANGUAGE CXX) +target_link_libraries(transformer-shared PUBLIC ${NCCL_LIBRARIES} ${MPI_LIBRARIES} -lcublas -lcublasLt -lcudart -lcurand ) + +include(GNUInstallDirs) +set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/FasterTransformer) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_LIST_DIR}/cmake/FasterTransformerConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/FasterTransformerConfig.cmake + INSTALL_DESTINATION ${INSTALL_CONFIGDIR} +) + +install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/FasterTransformerConfig.cmake + DESTINATION ${INSTALL_CONFIGDIR} +) + +install( + TARGETS + transformer-shared + EXPORT + transformer-shared-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +) + +install( + EXPORT + transformer-shared-targets + FILE + FasterTransformerTargets.cmake + DESTINATION + ${INSTALL_CONFIGDIR} +) + +file(GLOB_RECURSE HEADER_FILES "*.h" "*.hpp" "*.cuh") +foreach ( file ${HEADER_FILES} ) + file( RELATIVE_PATH rfile ${CMAKE_CURRENT_SOURCE_DIR} ${file} ) + get_filename_component( dir ${rfile} DIRECTORY ) + install( FILES ${file} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${dir} ) +endforeach() + + +################################################################################ +add_executable(gpt sample/cpp/gpt_sample.cc ) +target_link_libraries(gpt PUBLIC -lcublas -lcublasLt -lcudart -lcurand -lnccl -lmpi transformer-static) +# target_link_libraries(gpt PUBLIC -lcublas -lcublasLt -lcudart -lcurand -lnccl -lmpi decoder decoding) + +export( + EXPORT + transformer-shared-targets + FILE + ${CMAKE_CURRENT_BINARY_DIR}/FasterTransformerTargets.cmake + NAMESPACE + TritonCore:: +) + +export(PACKAGE FasterTransformer) + +endif() # BUILD_GPT diff --git a/README.md b/README.md index df995575d..201b7ef0e 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This repository provides a script and recipe to run the highly optimized transfo - [FasterTransformer](#fastertransformer) - [Table Of Contents](#table-of-contents) - [Model overview](#model-overview) + - [Architecture matrix](#architecture-matrix) - [Configuration support matrix](#configuration-support-matrix) - [Setup](#setup) - [Requirements](#requirements) @@ -15,53 +16,69 @@ This repository provides a script and recipe to run the highly optimized transfo - [Execute the encoder demos](#execute-the-encoder-demos) - [Execute the decoder/decoding demos](#execute-the-decoderdecoding-demos) - [Translation demos](#translation-demos) + - [GPT demo](#gpt-demo) - [Advanced](#advanced) - [Scripts and sample codes](#scripts-and-sample-codes) - [Command-line options](#command-line-options) - [Inference process](#inference-process) - [Performance](#performance) - [Encoder performance](#encoder-performance) - - [Encoder performances of FasterTransformer new features on cpp](#encoder-performances-of-fastertransformer-new-features-on-cpp) + - [Encoder performances of FasterTransformer new features](#encoder-performances-of-fastertransformer-new-features) - [Encoder performance on TensorFlow](#encoder-performance-on-tensorflow) - [Encoder performance on PyTorch](#encoder-performance-on-pytorch) - [Decoding and Decoder performance](#decoding-and-decoder-performance) - - [Decoder and Decoding performance on TensorFlow](#decoder-and-decoding-performance-on-tensorflow) - - [Decoder and decoding performance on PyTorch](#decoder-and-decoding-performance-on-pytorch) - - [TensorFlow performance on translation](#tensorflow-performance-on-translation) - - [PyTorch performance on translation](#pytorch-performance-on-translation) + - [Decoder and Decoding end-to-end translation performance on TensorFlow](#decoder-and-decoding-end-to-end-translation-performance-on-tensorflow) + - [Decoder and Decoding end-to-end translation performance on PyTorch](#decoder-and-decoding-end-to-end-translation-performance-on-pytorch) + - [GPT performance](#gpt-performance) - [Release notes](#release-notes) - [Changelog](#changelog) - [Known issues](#known-issues) + - [TODO](#todo) ## Model overview - In NLP, encoder and decoder are two important components, with the transformer layer becoming a popular architecture for both components. FasterTransformer implements a highly optimized transformer layer for both the encoder and decoder for inference. On Volta, Turing and Ampere GPUs, the computing power of Tensor Cores are used automatically when the precision of the data and weights are FP16. -In FasterTransformer 1.0, we implemented a highly optimized BERT transformer layer, which is used in the encoder. +FasterTransformer v1.0 provides a highly optimized BERT equivalent Transformer layer for inference, including C++ API, TensorFlow op and TensorRT plugin. The experiments show that FasterTransformer v1 can provide 1.3 ~ 2 times speedup on NVIDIA Tesla T4 and NVIDIA Tesla V100 for inference. + +In FasterTransformer v2.0, we have added a highly optimized decoder and decoding models based on OpenNMT-TF, an open-source library. Here, the decoder is the model that contains some transformer layers. On the other hand, decoding refers to the whole translating process, including the lookup embedding table, position encoding, a decoder and beam search. -In FasterTransformer 2.0, we have added a highly optimized decoder and decoding models based on OpenNMT-TF, an open-source library. Here, the decoder is the model that contains some transformer layers. On the other hand, decoding refers to the whole translating process, including the lookup embedding table, position encoding, a decoder and beam search. +In FasterTransformer v2.1, we add some important features. First one is the supporting on PyTorch. Recently, there are more and more PyTorch users. We hope the users of PyTorch can also use the FasterTransformer in their application and research. The second feature is the supporting of [Effective Transformer](https://github.com/bytedance/effective_transformer). This idea is proposed by ByteDance. We call this feature as Effective FasterTransformer It removes the useless padding of encoder input to reduce the computing cost. Third, in addition to decoding with beam search, we also provide the decoding with sampling module. Finally, we optimize many kernels of encoder, decoder and beam search to improve the speed of FasterTransformer. -In FasterTransformer 2.1, we add some important features. First one is the supporting on PyTorch. Recently, there are more and more PyTorch users. We hope the users of PyTorch can also use the FasterTransformer in their application and research. The second feature is the supporting of [Effective Transformer](https://github.com/bytedance/effective_transformer). This idea is proposed by ByteDance. We call this feature as Effective FasterTransformer It removes the useless padding of encoder input to reduce the computing cost. Third, in addition to decoding with beam search, we also provide the decoding with sampling module. Finally, we optimize many kernels of encoder, decoder and beam search to improve the speed of FasterTransformer. +In FasterTransformer v3.0, we implemented the INT8 quantization for encoder (also supporting Effective FasterTransformer). With INT8 quantization, we can take advantage of the powerful INT8 tensor core in Turing GPU to achieve better inference performance (INT8 quantization in FT 3.0 is only supported on device with SM >= 7.5). We also provide quantization tools of tensorflow. -In FasterTransformer 3.0, we implemented the INT8 quantization for encoder (also supporting Effective FasterTransformer). With INT8 quantization, we can take advantage of the powerful INT8 tensor core in Turing GPU to achieve better inference performance (INT8 quantization in FT 3.0 is only supported on device with SM >= 7.5). We also provide quantization tools of tensorflow. +In FasterTransformer v3.1, we provide following new features and enhancements. First, we optimize the INT8 kernel of encoder to achieve better performance. Compare to FasterTransformer v3.0, the performance of INT8 quantization brings at most 1.75x speedup. Second, we provide a PyTorch tool to let user be able to train a INT8 quantized model on PyTorch. Besides, FasterTransformer also starts to support the INT8 inference with PyTorch op. So, the users of PyTorch can leverage the INT8 inference. Third, we integrate the fused multi-head attention kernel of TensorRT plugin into FasterTransformer to improve the speed of encoder on Turing and new GPUs. This optimization can bring about 10% ~ 20% speedup compare to original implementation. Finally, we add the supporting of GPT-2 model, which is an important and popular model for decoder. -In FasterTransformer 3.1, we provide following new features and enhancements. First, we optimize the INT8 kernel of encoder to achieve better performance. Compare to FasterTransformer 3.0, the performance of INT8 quantization brings at most 1.75x speedup. Second, we provide a PyTorch tool to let user be able to train a INT8 quantized model on PyTorch. Besides, FasterTransformer also starts to support the INT8 inference with PyTorch op. So, the users of PyTorch can leverage the INT8 inference. Third, we integrate the fused multi-head attention kernel of TensorRT plugin into FasterTransformer to improve the speed of encoder on Turing and new GPUs. This optimization can bring about 10% ~ 20% speedup compare to original implementation. Finally, we add the supporting of GPT-2 model, which is an important and popular model for decoder. +In FasterTransformer v4.0, we provide the multi-nodes multi-gpu inference for GPT model. Compare to usual framework to train giant model like Megatron, FasterTransformer provides 1.2x ~ 3x speedup. Besides, integrating the INT8 fused multi-head attention kernel of TensorRT plugin to further improve the performance of FasterTransformer encoder on INT8. We also add supporting of FP16 fused multi-head attention kernel for V100. Finally, we optimize the decoding module. Compare to v3.1, v4.0 provides at most 2x speedup. The following graph demonstrates the model architecture.
Fig. 1 Encoder-Decoding model architecture.
+ FasterTransformer is built on top of CUDA, cuBLAS and cuBLASLt, providing the C++ API and TensorFlow/PyTorch OPs. Users can integrate them into TensorFlow, PyTorch, or other inference service codes that are built in native C++. We also provide some simple sample code to demonstrate how to use the encoder, decoder and to carry out decoding in C++, TensorFlow and PyTorch. -More details are in [`docs/encoder_guide.md`](docs/encoder_guide.md) and [`docs/decoder_guide.md`](docs/decoder_guide.md). Some common questions and the respective answers are put in [`docs/QAList.md`](docs/QAList.md) +More details are in [`docs/encoder_guide.md`](docs/encoder_guide.md), [`docs/decoder_guide.md`](docs/decoder_guide.md) and [`docs/gpt_guide.md`](docs/gpt_guide.md). Some common questions and the respective answers are put in [`docs/QAList.md`](docs/QAList.md) + +### Architecture matrix + +The following matrix shows the architecture differences between the model. + +| Architecure | Encoder | Encoder INT8
quantization | Decoder | Decoding with
beam search | Decoding with
sampling | GPT-2 | GPT-3 | +|-------------|---------|---------------------------------|---------|---------------------------------|------------------------------|-------|-------| +| v1 | Yes | No | No | No | No | No | No | +| v2 | Yes | No | Yes | Yes | No | No | No | +| v2.1 | Yes | No | Yes | Yes | Yes | No | No | +| v3.0 | Yes | Yes | Yes | Yes | Yes | No | No | +| v3.1 | Yes | Yes | Yes | Yes | Yes | Yes | No | +| v4.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ### Configuration support matrix -The following configurations are supported in the FasterTransformer encoder. +The following configurations are supported in the FasterTransformer encoder. - Batch size (B1): smaller or equal to 4096 -- Sequence length (S): smaller or equal to 1024. For INT8 data type, sequence length should be a multiple of 32. +- Sequence length (S): smaller or equal to 1024. - Head number (H) and size per head (N): - 16 heads * 64 per heads - 12 heads * 64 per heads @@ -90,8 +107,7 @@ The following section lists the requirements to use FasterTransformer. - CUDA 10.1 or newer version - Python 3 is recommended because some features are not supported in python 2 - Tensorflow 1.13 or 1.14 or 1.15 -- PyTorch >= 1.4.0 -- TensorRT 5 or newer version +- PyTorch >= 1.5.0 These components are readily available within the NGC TensorFlow/PyTorch Docker image below. @@ -118,25 +134,22 @@ The following section shows how to use FasterTransformer on the NGC container. You can choose the tensorflow version and python version you want. Here, we list some possible images: - - `nvcr.io/nvidia/tensorflow:19.06-py3` contains the TensorFlow 1.13 and python 3.5. - `nvcr.io/nvidia/tensorflow:19.07-py2` contains the TensorFlow 1.14 and python 2.7. - - `nvcr.io/nvidia/tensorflow:20.07-tf1-py3` contains the TensorFlow 1.15 and python 3.6. - - `nvcr.io/nvidia/tensorrt:20.03-py3` contains the TensorRT 7.0.0 and python 3.6. - - `nvcr.io/nvidia/pytorch:20.01-py3` contains the PyTorch 1.4.0 and python 3.6 + - `nvcr.io/nvidia/tensorflow:20.12-tf1-py3` contains the TensorFlow 1.15 and python 3.8. - `nvcr.io/nvidia/pytorch:20.03-py3` contains the PyTorch 1.5.0 and python 3.6 - `nvcr.io/nvidia/pytorch:20.07-py3` contains the PyTorch 1.6.0 and python 3.6 + - `nvcr.io/nvidia/pytorch:20.12-py3` contains the PyTorch 1.8.0 and python 3.8 - For example, running image `nvcr.io/nvidia/tensorflow:19.07-py2` by + To achieve best performance, we recommand to use the latest image. For example, running image `nvcr.io/nvidia/tensorflow:20.12-tf1-py3` by ```bash - nvidia-docker run -ti --rm nvcr.io/nvidia/tensorflow:19.07-py2 bash + nvidia-docker run -ti --rm nvcr.io/nvidia/tensorflow:20.12-tf1-py3 bash ``` 2. Clone the repository. ```bash - git clone https://github.com/NVIDIA/DeepLearningExamples - cd DeepLearningExamples/FasterTransformer/v3.1 + git clone https://github.com/NVIDIA/FasterTransformer.git mkdir -p build cd build ``` @@ -150,92 +163,36 @@ The following section shows how to use FasterTransformer on the NGC container. make ``` - Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4). + Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4) or 80 (A100). 3.2 build with TensorFlow - * `nvcr.io/nvidia/tensorflow:19.06-py3` - - First, update the cmake to cmake 3.8 or later version, and then build the project by the following scripts. - - ```bash - cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_TF=ON -DTF_PATH=/usr/local/lib/python3.5/dist-packages/tensorflow .. - make - ``` - - Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4). - - * `nvcr.io/nvidia/tensorflow:19.07-py2` - - First, link the `libtensorflow_framework.so`, and then build the project by the following scripts. - - ```bash - ln -s /usr/local/lib/python2.7/dist-packages/tensorflow/libtensorflow_framework.so.1 /usr/local/lib/python2.7/dist-packages/tensorflow/libtensorflow_framework.so - cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_TF=ON -DTF_PATH=/usr/local/lib/python2.7/dist-packages/tensorflow .. - make - ``` - - Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4). - - * `nvcr.io/nvidia/tensorflow:20.07-tf1-py3` - - First, link the `libtensorflow_framework.so`, and then build the project by the following scripts. + Uses need to set the path of TensorFlow. For example, if we use `nvcr.io/nvidia/tensorflow:20.12-tf1-py3`, then ```bash - ln -s /usr/local/lib/python3.6/dist-packages/tensorflow_core/libtensorflow_framework.so.1 /usr/local/lib/python3.6/dist-packages/tensorflow_core/libtensorflow_framework.so - cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_TF=ON -DTF_PATH=/usr/local/lib/python3.6/dist-packages/tensorflow_core/ .. + cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_TF=ON -DTF_PATH=/usr/local/lib/python3.8/dist-packages/tensorflow_core/ .. make ``` - Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4). - - 3.3 build with TensorRT - - * `nvcr.io/nvidia/tensorrt:20.03-py3` - - ```bash - cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_TRT=ON -DTRT_PATH=/opt/tensorrt/ .. - make - ``` - - Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4). - - 3.4 build with PyTorch - - * `nvcr.io/nvidia/pytorch:20.01-py3` - - ```bash - cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_THE=ON .. - make - ``` + Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4) or 80 (A100). - * `nvcr.io/nvidia/pytorch:20.03-py3` or later + 3.3 build with PyTorch ```bash - cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_THE=ON -DBUILD_THS=ON -DCXX_STD=14 .. + cmake -DSM=xx -DCMAKE_BUILD_TYPE=Release -DBUILD_PYT=ON .. make ``` - Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4). (You can ignore this variable.) + Note: `xx` is the compute capability of your GPU. For example, 60 (P40) or 61 (P4) or 70 (V100) or 75(T4) or 80 (A100). - `-DBUILD_THE=ON` is to build the regular PyTorch extension for eager mode. It is not compatible with TorchScript, but it may be compatible with more PyTorch versions. + This will build the TorchScript custom class. Please make sure that the `PyTorch >= 1.5.0`. - `-DBUILD_THS=ON` is to build the TorchScript custom class. If you want to use this custom class, please make sure that the `PyTorch >= 1.5.0`. - - ***You can choose one of them or all. No need to add all options.*** - - For `PyTorch == 1.4.0`, please use C++11, that is, `-DCXX_STD=11` or just ignore this variable. - - For `PyTorch >= 1.5.0`, please use C++14, that is, `-DCXX_STD=14`. - - Note: From `FasterTransformer 3.1`, TorchScript custom op (function type) is deprecated. + Note: From `FasterTransformer 3.1`, TorchScript custom op (function type) is deprecated. From `FasterTransformer 4.0`, Eager mode PyTorch extension is deprecated. ### Execute the encoder demos 1. Run FasterTransformer encoder on C++ - - ```bash ./bin/encoder_gemm ./bin/encoder_sample @@ -261,10 +218,10 @@ The following section shows how to use FasterTransformer on the NGC container. | feature | int8_mode == 1 | int8_mode == 2 | - |:-------:|:-------------:|:-------------:| - | quantize residual | No | Yes | - | int8 output gemm | No | Yes | - | per-channel quantiztion for weights | Yes | No | + |:-------:|:--------------:|:--------------:| + | quantize residual | No | Yes | + | int8 output gemm | No | Yes | + | per-channel quantiztion for weights | Yes | No | ```bash #For int8_mode == 1 @@ -311,6 +268,8 @@ The following section shows how to use FasterTransformer on the NGC container. --allow_gemm_test False ``` + If use sets `--test_time 1`, the program will show the performance of TensorFlow, FasterTransformer and FasterTransformer with removing padding. + 2.2 Run FasterTransformer encoder under FP16 on TensorFlow ```bash @@ -355,56 +314,6 @@ The following section shows how to use FasterTransformer on the NGC container. --allow_gemm_test False ``` - 2.4 Run Effective FasterTransformer under FP32 on TensorFlow - - ```bash - ./bin/encoder_gemm 32 32 12 64 0 0 - python tensorflow/encoder_sample.py \ - --batch_size 32 \ - --max_seq_len 32 \ - --head_number 12 \ - --size_per_head 64 \ - --num_layer 12 \ - --data_type fp32 \ - --test_time 1 \ - --remove_padding True \ - --avg_seq_len 16 \ - --allow_gemm_test False - ``` - - 2.5 Run Effective FasterTransformer under INT8 on TensorFlow - ```bash - #For int8_mode == 1 - ./bin/encoder_gemm 32 32 12 64 1 1 - python tensorflow/encoder_sample.py \ - --batch_size 32 \ - --max_seq_len 32 \ - --head_number 12 \ - --size_per_head 64 \ - --num_layer 12 \ - --data_type fp16 \ - --test_time 1 \ - --remove_padding True \ - --avg_seq_len 16 \ - --int8_mode 1 \ - --allow_gemm_test False - - #For int8_mode == 2 - ./bin/encoder_gemm 32 32 12 64 1 2 - python tensorflow/encoder_sample.py \ - --batch_size 32 \ - --max_seq_len 32 \ - --head_number 12 \ - --size_per_head 64 \ - --num_layer 12 \ - --data_type fp16 \ - --test_time 1 \ - --remove_padding True \ - --avg_seq_len 16 \ - --int8_mode 2 \ - --allow_gemm_test False - ``` - 3. Run FasterTransformer on PyTorch Please install HuggingFace's `transformers` first before run the demos by @@ -438,29 +347,6 @@ The following section shows how to use FasterTransformer on the NGC container. python pytorch/encoder_sample.py 32 12 32 12 64 --int8_mode 2 --time ``` - 3.4 Run Effective FasterTransformer under FP32 on PyTorch - - ```bash - ./bin/encoder_gemm 32 32 12 64 0 0 - python pytorch/encoder_sample.py 32 12 32 12 64 --time --remove_padding - ``` - -4. Run FasterTransformer on TensorRT - - 4.1 Run FasterTransformer under FP32 on TensorRT - - ```bash - ./bin/encoder_gemm 32 32 12 64 0 0 - ./bin/transformer_trt 32 12 32 12 64 fp32 - ``` - - 4.2 Run FasterTransformer under FP16 on TensorRT - - ```bash - ./bin/encoder_gemm 32 32 12 64 1 0 - ./bin/transformer_trt 32 12 32 12 64 fp16 - ``` - ### Execute the decoder/decoding demos 1. Run FasterTransformer decoding on C++ @@ -716,6 +602,54 @@ The following section shows how to use FasterTransformer on the NGC container. python pytorch/run_translation.py --batch_size 128 --beam_size 4 --model_type decoding_ext --data_type fp16 ``` +### GPT demo + +Here, we demonstrate how to run Fastertransformer on Megatron model with C++ and PyTorch api. More details are in [`docs/gpt_guide.md`](docs/gpt_guide.md). + +1. Prepare + +```bash +pip install -r ../requirement.txt +wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json -P models +wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt -P models +wget --content-disposition https://api.ngc.nvidia.com/v2/models/nvidia/megatron_lm_345m/versions/v0.0/zip -O megatron_lm_345m_v0.0.zip +mkdir -p models/megatron-models/345m +unzip megatron_lm_345m_v0.0.zip -d models/megatron-models/345m +git clone https://github.com/NVIDIA/Megatron-LM.git +python ../sample/pytorch/utils/megatron_ckpt_convert.py -i ./models/megatron-models/345m/release/ -o ./models/megatron-models/c-model/345m/ -t_g 1 -i_g 1 +``` + +Note that there are different checkpoint version of Megatron. The version of the checkpoint above is 0. If users have trained a model by themselves, the default version of latest Megatron is 3. To convert the checkpoint with version 3, please add `-checkpoint_version 3`. + +2. Run GPT + + 2.1 Run on C++ + + Users can see the details of arguments in `sample/cpp/gpt_config.ini`. It controls the model path, model size, tensor parallelism size, and some hyper-parameters. And then run gpt by following script: + + ```bash + ./bin/gpt_sample + python ../sample/pytorch/utils/convert_gpt_token.py --vocab_file=./models/gpt2-vocab.json --bpe_file=./models/gpt2-merges.txt + ``` + + The following script run multi-gpus (Note that users need to modify the `gpt_config.ini`. For example, set `tensor_para_size` to 8.) + + ```bash + mpirun -n 8 ./bin/gpt_sample + python ../sample/pytorch/utils/convert_gpt_token.py --vocab_file=./models/gpt2-vocab.json --bpe_file=./models/gpt2-merges.txt + ``` + + 2.2 Run on Pytorch + + ```bash + # No parallelism (tensor_para_size=1, layer_para_size=1) + mpirun -n 1 --allow-run-as-root python ./pytorch/gpt_sample.py + + # TP (tensor_para_size=8, layer_para_size=1) + mpirun -n 8 --allow-run-as-root python ./pytorch/gpt_sample.py --tensor_para_size=8 --layer_para_size=1 --ckpt_path="/workspace/fastertransformer/models/megatron-models/c-model/345m/8-gpu" + ``` + + ## Advanced The following sections provide greater details. @@ -729,13 +663,13 @@ The following code lists the directory structure of FasterTransformer: |--/cuda: some CUDA kernels and multi-head attention implementation, both are compiled with cuda/cuBLAS/cuBLASLt. |--/tf_op: custom Tensorflow OP implementation |--/th_op: custom PyTorch OP implementation - |--/trt_plugin: TensorRT plugin implementation + |--/triton_backend: custom triton backend implementation + |--/trt_fused_multihead_attention: fused multihead attention kernels of TensorRT /sample: C++ and tensorflow transformer interface samples |--/cpp: C++ interface samples |--/pytorch: PyTorch OP samples |--/tensorflow: TensorFlow OP samples |--/tensorflow_bert: samples that show of how to integrate our Tensorflow OP into the open source BERT model for sentence (and sentence-pair) classification tasks (GLUE), the samples support both FP16 and FP32, see readme file within this folder more details - |--/tensorRT: both FP16 and FP32 tensorRT plugin samples /tools/gemm_test: loop over all GEMM algorithms to pick the best one /bert-quantization/ |--bert-tf-quantization: TensorFlow quantization tool and sample codes @@ -758,7 +692,7 @@ The `fastertransformer/` folder encapsulates all the source codes of FasterTrans * `open_decoder.h` - Contains the decoder transformer layer * `decoding_beamsearch.h` - Contains the progress of decoding with beam search * `decoding_sampling.h` - Contains the progress of decoding with beam search -* `gpt2.h` - Contains the progress of GPT-2 +* `gpt.h` - Contains the progress of GPT The `tools/` folder contains the tools to generate the GEMM configuration of FasterTransformer for different settings: * `tools/gemm_test/encoder_gemm.cc` - Encoder GEMM config @@ -768,16 +702,13 @@ The `sample/` folder contains useful sample codes for FasterTransformer: * `sample/cpp/encoder_sample.cc` - C encoder sample codes * `sample/cpp/decoding_beamsearch_sample.cc` - C decoding with beam search sample codes * `sample/cpp/decoding_sampling_sample.cc` - C decoding with sampling sample codes -* `sample/cpp/gpt2_sample.cc` - C GPT-2 codes +* `sample/cpp/gpt_sample.cc` - C GPT codes * `sample/tensorflow/encoder_sample.py` - TensorFlow encoder sample codes -* `sample/tensorflow/encoder_sample_int8.py` - TensorFlow encoder sample codes for INT8 * `sample/tensorflow/decoder_sample.py` - TensorFlow decoder sample codes * `sample/tensorflow/decoding_sample.py` - TensorFlow decoding sample codes * `sample/tensorflow/tensorflow_bert/` - TensorFlow using FasterTransformer in BERT sample codes -* `sample/tensorflow/encoder_decoder_sample.py` - TensorFlow `encoder_decoder` sample codes -* `sample/tensorflow/encoder_decoding_sample.py` - TensorFlow `encoder_decoding` sample codes * `sample/tensorflow/translate_sample.py` - TensorFlow translation sample codes -* `sample/tensorflow/gpt2_sample.py` - TensorFlow GPT-2 sample codes +* `sample/tensorflow/gpt_sample.py` - TensorFlow GPT sample codes * `sample/pytorch/encoder_sample.py` - PyTorch encoder sample codes * `sample/pytorch/decoder_sample.py` - PyTorch decoder sample codes * `sample/pytorch/decoding_sample.py` - PyTorch decoding sample codes @@ -791,11 +722,8 @@ To see the full list of available options and their descriptions, use the `-h` o ```bash python tensorflow/encoder_sample.py --help -python tensorflow/encoder_sample_int8.py --help python tensorflow/decoder_sample.py --help python tensorflow/decoding_sample.py --help -python tensorflow/encoder_decoder_sample.py --help -python tensorflow/encoder_decoding_sample.py --help python tensorflow/translate_sample.py --help ``` @@ -805,9 +733,10 @@ This subsection provides the details about how to use the encoder, the decoder a ## Performance -Hardware settings: +Hardware settings: + +* 8xA100-80GBs (with mclk 1593MHz, pclk 1410MHz) with AMD EPYC 7742 64-Core Processor * T4 (with mclk 5000MHz, pclk 1590MHz) with Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz -* V100 (with mclk 877MHz, pclk 1380MHz) with Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz (dgx-1 server) In order to run the following benchmark, we need to install the unix computing tool "bc" by @@ -817,19 +746,13 @@ apt-get install bc ### Encoder performance -We demonstrate the inference time of FasterTransformer in C++, TensorFlow and PyTorch, and compare to the performance of pure TensorFlow and PyTorch on T4 with FP16 and INT8. Besides, we also show the performance of Effective FasterTransformer on T4 with FP16. Note that the total sequence length of Effective FasterTransformer is not fixed, so we use the default gemm configuration to run the benchmark. - -For the benchmark of TensorFlow, we compare the performance of TensorFlow with XLA (TF), the performance of TensorFlow with FasterTransformer OP (FT-OP) and the performance of FasterTransformer on C++ (TF-CPP), and show the speedup of FT-OP and FT-CPP compare to the TensorFlow. +The FP16 results of TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_encoder_performance.sh`. -For the benchmark of PyTorch, we compare the performance of PyTorch, and performance of TorchScript and the performance of PyTorch with FasterTransformer custom extension (CustomExt) and show the speedup of CustomExt compare to the PyTorch and TorchScript. Because CustomExt has no obvious overhead compare to the FasterTransformer on C++, we skip the comparison with the C++ implementation. +The INT8 results of TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_encoder_performance_int8.sh`. -The FP16 results of C++ and TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_encoder_performance.sh` and `sample/tensorflow/scripts/profile_effective_transformer_performance.sh`. +The FP16 results of PyTorch were obtained by running the `sample/pytorch/scripts/profile_encoder.sh`. -The INT8 results of C++ and TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_encoder_performance_int8.sh` and `sample/tensorflow/scripts/profile_effective_transformer_performance_int8.sh`. - -The FP16 results of PyTorch were obtained by running the `sample/pytorch/scripts/profile_encoder.sh` and `sample/pytorch/scripts/profile_encoder_effective_transformer.sh`. - -The INT8 results of PyTorch were obtained by running the `sample/pytorch/scripts/profile_encoder_int8.sh` and `sample/pytorch/scripts/profile_encoder_effective_transformer_int8.sh`. +The INT8 results of PyTorch were obtained by running the `sample/pytorch/scripts/profile_encoder_int8.sh`. In the experiments of encoder, we updated the following parameters: @@ -839,11 +762,11 @@ In the experiments of encoder, we updated the following parameters: More benchmarks are put in [`docs/encoder_guide.md`](docs/encoder_guide.md#encoder-performance). -#### Encoder performances of FasterTransformer new features on cpp +#### Encoder performances of FasterTransformer new features The following figure compares the performances of different features of FasterTransformer and FasterTransformer under FP16 on T4. -For large batch size and sequence length, Effective FasterTransformer brings about 2x speedup and int8v2 brings about 1.75x speedup. Using Effective FasterTransformer and int8v2 at the same time can bring more than 3x speedup compared to FasterTransformer FP16. +For large batch size and sequence length, both EFF-FT and FT-INT8-v2 bring about 2x speedup. Using Effective FasterTransformer and int8v2 at the same time can bring about 3.5x speedup compared to FasterTransformer FP16 for large case.
@@ -851,103 +774,86 @@ For large batch size and sequence length, Effective FasterTransformer brings abo The following figure compares the performances of different features of FasterTransformer and TensorFlow XLA under FP16 on T4. -For small batch size and sequence length, using FasterTransformer CPP can bring about 3x ~ 6.5x speedup. +For small batch size and sequence length, using FasterTransformer can bring about 3x speedup. -For large batch size and sequence length, using Effective FasterTransformer with INT8 quantization can bring about 4x speedup. +For large batch size and sequence length, using Effective FasterTransformer with INT8-v2 quantization can bring about 5x speedup. -
+
#### Encoder performance on PyTorch The following figure compares the performances of different features of FasterTransformer and PyTorch TorchScript under FP16 on T4. -For small batch size and sequence length, using FasterTransformer CustomExt can bring about 4x ~ 6x speedup. +For small batch size and sequence length, using FasterTransformer CustomExt can bring about 4x ~ 6x speedup. -For large batch size and sequence length, using Effective FasterTransformer with INT8 quantization can bring about 4x speedup. +For large batch size and sequence length, using Effective FasterTransformer with INT8-v2 quantization can bring about 5x speedup. -
+
### Decoding and Decoder performance -We demonstrate the inference time of FasterTransformer in C++, TensorFlow and PyTorch, and compare to the performance of pure TensorFlow and PyTorch on T4 with FP16. - -For the benchmark of TensorFlow, we compare the performance of TensorFlow (TF), the performance of FasterTransformer OP Decoder, FasterTransformer OP Decoding and the FasterTransformer CPP Decoding. - -We do not demonstrate the performance of TensorFlow with XLA since we did not find that using XLA has obvious speedup. +The results of TensorFlow were obtained by running the `profile_decoding_beamsearch_performance.sh` and `profile_decoding_sampling_performance.sh` -For the benchmark of PyTorch, we compare the performance of PyTorch, the performance of FasterTransformer OP Decoder and FasterTransformer OP Decoding. Due to the dynamic property, it is hard to trace/script the PyTorch decoder/decoding model, so we only test on plain PyTorch. - -The results of C++ and TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_decoder_performance.sh` and `sample/tensorflow/scripts/profile_decoding_performance.sh`. - -The results of PyTorch were obtained by running the `../sample/pytorch/scripts/profile_decoder_decoding.sh`. +The results of PyTorch were obtained by running the `profile_decoder_decoding.sh`. In the experiments of decoding, we updated the following parameters: * head_num = 8 * size_per_head = 64 -* num_layers = 6 +* num_layers = 6 for both encoder and decoder * vocabulary_size = 30000 for TensorFlow sample codes, 31538 for PyTorch sample codes * memory_hidden_dim = 512 +* max sequenc elength = 128 More benchmarks are put in [`docs/decoder_guide.md`](docs/decoder_guide.md#decoding-performance). -#### Decoder and Decoding performance on TensorFlow - -
- -#### Decoder and decoding performance on PyTorch +#### Decoder and Decoding end-to-end translation performance on TensorFlow -
+The following figure shows the speedup of of FT-Decoder op and FT-Decoding op compared to TensorFlow under FP16 with T4. Here, we use the throughput of translating a test set to prevent the total tokens of each methods may be different. Compared to TensorFlow, FT-Decoder provides 1.5x ~ 3x speedup; while FT-Decoding provides 4x ~ 18x speedup. -#### TensorFlow performance on translation +
-We test with batch size 128, beam width 4 on V100. +#### Decoder and Decoding end-to-end translation performance on PyTorch -| Type | tokens per seconds | BLEU | -|:----:|:------------------:|:----:| -| TensorFlow, beam search, FP32 | 2137 | BLEU 26.29 | -| Decoder, beam search, FP32 | 6473 | BLEU 26.29 | -| Decoding, beam search, FP32 | 8513 | BLEU 26.31 | -| TensorFlow, sampling, FP32 | 4178 | BLEU 25.79 | -| Decoder, sampling, FP32 | 10781 | BLEU 25.79 | -| Decoding, sampling, FP32 | 16524 | BLEU 25.79 | -| TensorFlow, beam search, FP16 | 2949 | BLEU 26.31 | -| Decoder, beam search, FP16 | 8682 | BLEU 26.30 | -| Decoding, beam search, FP16 | 12746 | BLEU 26.33 | -| TensorFlow, sampling, FP16 | 6968 | BLEU 25.83 | -| Decoder, sampling, FP16 | 13773 | BLEU 25.80 | -| Decoding, sampling, FP16 | 26718 | BLEU 25.82 | +The following figure shows the speedup of of FT-Decoder op and FT-Decoding op compared to PyTorch under FP16 with T4. Here, we use the throughput of translating a test set to prevent the total tokens of each methods may be different. Compared to PyTorch, FT-Decoder provides 1.2x ~ 3x speedup; while FT-Decoding provides 3.8x ~ 13x speedup. -#### PyTorch performance on translation +
-batch size 128, beam width 4, max_seq_len 32, beam search algorithm on V100: +### GPT performance -| Type | tokens per seconds | BLEU | -|:----:|:------------------:|:----:| -| PyTorch, FP32 | 2462 | BLEU 24.1 | -| Decoder, FP32 | 3358 | BLEU 24.1 | -| Decoding, FP32 | 8959 | BLEU 24.1 | -| PyTorch, FP16 | 4019 | BLEU 24.1 | -| Decoder, FP16 | 4377 | BLEU 24.1 | -| Decoding, FP16 | 15048 | BLEU 24.1 | +The following figure compares the performances of Megatron and FasterTransformer under FP16 on A100. +In the experiments of decoding, we updated the following parameters: - +
## Release notes ### Changelog +April 2021 +- Support multi-gpus and multi-nodes inference for GPT model on C++ and PyTorch. +- Support single node, multi-gpus inference for GPT model on triton. +- Add the int8 fused multi-head attention kernel for bert. +- Add the FP16 fused multi-head attention kernel of V100 for bert. +- Optimize the kernel of decoder. +- Move to independent repo. +- **Release the FasterTransformer 4.0** + Dec 2020 +- Optimize the decoding by adding the finisehd mask to prevent useless computing. +- Support opennmt encoder. +- Remove the TensorRT plugin supporting. - **Release the FasterTransformer 3.1** Nov 2020 @@ -1020,7 +926,9 @@ July 2019 - Undefined symbol errors when import the extension - Please `import torch` first. If this has been done, it is due to the incompatible C++ ABI. You may need to check the PyTorch used during compilation and execution are the same, or you need to check how your PyTorch is compiled, or the version of your GCC, etc. -- batch_size should be smaller or equal to 1024 in Decoder. -- batch_size x beam_width should be smaller or equal to 1024 in Decoding. - Results of TensorFlow and OP would be different in decoding. This problem is caused by the accumulated log probability, and we do not avoid this problem. - If encounter some problem in the custom environment, try to use the gcc/g++ 4.8 to build the project of TensorFlow op, especially for TensorFlow 1.14. + +### TODO + +- Support the decoding sampling in PyTorch. diff --git a/bert-quantization/bert-pyt-quantization/README.md b/bert-quantization/bert-pyt-quantization/README.md index 0d686045d..cf5de5d85 100644 --- a/bert-quantization/bert-pyt-quantization/README.md +++ b/bert-quantization/bert-pyt-quantization/README.md @@ -21,7 +21,8 @@ export MODEL_DIR= git clone https://github.com/NVIDIA/TensorRT.git cd TensorRT git checkout release/7.2 -pip install tools/pytorch-quantization/. +cd tools/pytorch-quantization +pip install . ``` download SQuAD data: @@ -76,7 +77,7 @@ The results would be like: {"exact_match": 82.63, "f1": 89.53} ``` -Then do PTQ, `ft_mode` is unified with int8_mode in FasterTransformer, can be one of `1` or `2`. +Then do PTQ, `quant_mode` is unified with int8_mode in FasterTransformer, can be one of `ft1` or `ft2` or `ft3`. ```bash python run_squad.py \ @@ -101,14 +102,14 @@ python run_squad.py \ --fp16 \ --calibrator percentile \ --percentile 99.999 \ - --ft_mode 2 + --quant_mode ft2 ``` The results would be like: ```bash -{"exact_match": 81.93, "f1": 89.05} # for mode 1 -{"exact_match": 80.41, "f1": 88.15} # for mode 2 +{"exact_match": 81.92, "f1": 89.09} # for mode 1 +{"exact_match": 80.36, "f1": 88.09} # for mode 2 ``` @@ -117,7 +118,7 @@ The results would be like: If PTQ does not yield an acceptable result you can finetune with quantization to recover accuracy. We recommend to calibrate the pretrained model and finetune to avoid overfitting: -`ft_mode` is unified with int8_mode in FasterTransformer, can be one of `1` or `2`. +`quant_mode` is unified with int8_mode in FasterTransformer, can be one of `ft1` or `ft2` or `ft3`. ```bash python run_squad.py \ @@ -138,7 +139,7 @@ python run_squad.py \ --fp16 \ --calibrator percentile \ --percentile 99.99 \ - --ft_mode 2 + --quant_mode ft2 python -m torch.distributed.launch --nproc_per_node=8 run_squad.py \ --init_checkpoint=$MODEL_DIR/bert-base-uncased-calib-mode-2/pytorch_model.bin \ @@ -161,14 +162,14 @@ python -m torch.distributed.launch --nproc_per_node=8 run_squad.py \ --output_dir=$MODEL_DIR/bert-base-uncased-QAT-mode-2 \ --max_steps=-1 \ --fp16 \ - --ft_mode 2 + --quant_mode ft2 ``` The results would be like: ```bash -{"exact_match": 81.91, "f1": 89.09} # for mode 1 -{"exact_match": 81.72, "f1": 89.09} # for mode 2 +{"exact_match": 82.17, "f1": 89.37} # for mode 1 +{"exact_match": 82.02, "f1": 89.30} # for mode 2 ``` The results of quantization may differ if different seeds are provided. @@ -197,7 +198,7 @@ python run_squad.py \ --fp16 \ --calibrator percentile \ --percentile 99.99 \ - --ft_mode 2 + --quant_mode ft2 python -m torch.distributed.launch --nproc_per_node=8 run_squad.py \ --init_checkpoint=$MODEL_DIR/bert-base-uncased-PTQ-mode-2-for-KD/pytorch_model.bin \ @@ -220,7 +221,7 @@ python -m torch.distributed.launch --nproc_per_node=8 run_squad.py \ --output_dir=$MODEL_DIR/bert-base-uncased-QAT-mode-2 \ --max_steps=-1 \ --fp16 \ - --ft_mode 2 \ + --quant_mode ft2 \ --distillation \ --teacher=$MODEL_DIR/bert-base-uncased-finetuned/pytorch_model.bin ``` @@ -228,5 +229,5 @@ python -m torch.distributed.launch --nproc_per_node=8 run_squad.py \ The results would be like: ```bash -{"exact_match": 83.96, "f1": 90.37} +{"exact_match": 83.67, "f1": 90.37} ``` diff --git a/bert-quantization/bert-pyt-quantization/quant_utils.py b/bert-quantization/bert-pyt-quantization/quant_utils.py index b848900c6..2ff7b55ed 100644 --- a/bert-quantization/bert-pyt-quantization/quant_utils.py +++ b/bert-quantization/bert-pyt-quantization/quant_utils.py @@ -58,31 +58,48 @@ def add_arguments(parser): help='percentile for PercentileCalibrator') group.add_argument('--fuse-qkv', action='store_true', help='use the same scale factor for qkv') - group.add_argument('--quant-asymmetric', action='store_true', - help='use an asymmetric integer range for quantization') - group.add_argument('--ft_mode', type=int, default=None, - help='int8 mode in FasterTransformer') + group.add_argument('--narrow_range', action='store_true', + help='use [-127, 127] range for activations rather than [-128, 127]') + group.add_argument('--quant_mode', type=str, default=None, + help='predefined quantization mode, choices: ["ft1", "ft2", "ft3", "trt"]') def set_args(args): - if args.ft_mode == 1: + if args.quant_mode == 'ft1': args.wprec = 8 args.aprec = 8 args.quant_per_tensor = False args.quant_disable = False args.quant_disable_keyword = ['final_input', 'layernorm_input', 'softmax_input', 'residual_input', 'local_input', 'aftergemm'] args.fuse_qkv = False - args.quant_asymmetric = False - elif args.ft_mode == 2: + args.narrow_range = False + elif args.quant_mode == 'ft2': + args.wprec = 8 + args.aprec = 8 + args.quant_per_tensor = True + args.quant_disable = False + args.quant_disable_keyword = ['final_input', 'layernorm_input', 'softmax_input', 'local_input'] + args.fuse_qkv = True + args.narrow_range = False + elif args.quant_mode == 'ft3': args.wprec = 8 args.aprec = 8 args.quant_per_tensor = True args.quant_disable = False args.quant_disable_keyword = ['final_input', 'layernorm_input', 'local_input'] args.fuse_qkv = True - args.quant_asymmetric = False + args.narrow_range = False + elif args.quant_mode == 'trt': + # for demobert + args.wprec = 8 + args.aprec = 8 + args.quant_per_tensor = True + args.quant_disable = False + args.quant_disable_keyword = ['layernorm_input', 'softmax_input', 'aftergemm'] + args.fuse_qkv = True + args.narrow_range = False else: - raise ValueError("wrong argument value for 'ft_mode'") + raise ValueError("wrong argument value for 'quant_mode'") return args def set_default_quantizers(args): @@ -103,7 +120,7 @@ def set_default_quantizers(args): input_desc = QuantDescriptor(num_bits=args.aprec, calib_method=calib_method, - narrow_range=not args.quant_asymmetric, + narrow_range=args.narrow_range, ) weight_desc = QuantDescriptor(num_bits=args.wprec, axis=(None if args.quant_per_tensor else (0,)), diff --git a/bert-quantization/bert-pyt-quantization/run_squad.py b/bert-quantization/bert-pyt-quantization/run_squad.py index 318e736aa..7c72d8fe6 100755 --- a/bert-quantization/bert-pyt-quantization/run_squad.py +++ b/bert-quantization/bert-pyt-quantization/run_squad.py @@ -888,7 +888,7 @@ def main(): help="scale applied to distillation component of loss") args = parser.parse_args() - if args.ft_mode is not None: + if args.quant_mode is not None: args = quant_utils.set_args(args) args.fp16 = args.fp16 or args.amp print(args) diff --git a/bert-quantization/bert-tf-quantization/README.md b/bert-quantization/bert-tf-quantization/README.md index f5ad53749..3a74beae3 100644 --- a/bert-quantization/bert-tf-quantization/README.md +++ b/bert-quantization/bert-tf-quantization/README.md @@ -9,7 +9,7 @@ Modified the following files: * run_squad.py Hardware settings: - * 8 x Tesla V100-SXM2-16GB (with mclk 877MHz, pclk 1530MHz) + * 4 x Tesla V100-SXM2-16GB (with mclk 877MHz, pclk 1530MHz) ## Setup @@ -27,8 +27,7 @@ Download pretrained bert checkpoint. ```bash wget https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-12_H-768_A-12.zip -O uncased_L-12_H-768_A-12.zip -unzip uncased_L-12_H-768_A-12.zip -mv uncased_L-12_H-768_A-12 squad_model +unzip uncased_L-12_H-768_A-12.zip -d squad_model ``` Download SQuAD dataset @@ -44,7 +43,7 @@ wget -P squad_data https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.j ### Finetune a high precision model with: ```bash -mpirun -np 8 -H localhost:8 \ +mpirun -np 4 -H localhost:4 \ --allow-run-as-root -bind-to none -map-by slot \ -x NCCL_DEBUG=INFO \ -x LD_LIBRARY_PATH \ @@ -59,24 +58,24 @@ mpirun -np 8 -H localhost:8 \ --do_train=True \ --do_predict=True \ --if_quant=False \ - --train_batch_size=4 \ + --train_batch_size=8 \ --learning_rate=1e-5 \ --num_train_epochs=2.0 \ --save_checkpoints_steps 1000 \ --horovod -python ../sample/tensorflow_bert/squad_evaluate_v1_1.py squad_data/dev-v1.1.json squad_model/finetuned_base/predictions.json +python ../../sample/tensorflow/tensorflow_bert/squad_evaluate_v1_1.py squad_data/dev-v1.1.json squad_model/finetuned_base/predictions.json ``` The results would be like: ```bash -{"exact_match": 82.03, "f1": 89.55} +{"exact_match": 82.44, "f1": 89.57} ``` ### PTQ by calibrating: -`ft_mode` is unified with int8_mode in FasterTransformer, can be one of `1` or `2`. +`quant_mode` is unified with int8_mode in FasterTransformer, can be one of `ft1` or `ft2` or `ft3`. ```bash python run_squad.py \ @@ -94,16 +93,16 @@ python run_squad.py \ --calib_batch=16 \ --calib_method=percentile \ --percentile=99.999 \ - --ft_mode=2 + --quant_mode=ft2 -python ../sample/tensorflow_bert/squad_evaluate-v1.1.py squad_data/dev-v1.1.json squad_model/PTQ_mode_2/predictions.json +python ../../sample/tensorflow/tensorflow_bert/squad_evaluate_v1_1.py squad_data/dev-v1.1.json squad_model/PTQ_mode_2/predictions.json ``` The results would be like: ```bash -{"exact_match": 81.68, "f1": 88.97} # for mode 1 -{"exact_match": 80.65, "f1": 88.31} # for mode 2 +{"exact_match": 81.67, "f1": 88.94} # for mode 1 +{"exact_match": 80.44, "f1": 88.30} # for mode 2 ``` @@ -112,7 +111,7 @@ The results would be like: If PTQ does not yield an acceptable result you can finetune with quantization to recover accuracy. We recommend to calibrate the pretrained model and finetune to avoid overfitting: -`ft_mode` is unified with int8_mode in FasterTransformer, can be one of `1` or `2`. +`quant_mode` is unified with int8_mode in FasterTransformer, can be one of `ft1` or `ft2` or `ft3`. ```bash python run_squad.py \ @@ -128,10 +127,10 @@ python run_squad.py \ --calib_batch=16 \ --calib_method=percentile \ --percentile=99.99 \ - --ft_mode=2 + --quant_mode=ft2 -mpirun -np 8 -H localhost:8 \ +mpirun -np 4 -H localhost:4 \ --allow-run-as-root -bind-to none -map-by slot \ -x NCCL_DEBUG=INFO \ -x LD_LIBRARY_PATH \ @@ -146,21 +145,21 @@ mpirun -np 8 -H localhost:8 \ --do_train=True \ --do_predict=True \ --if_quant=True \ - --train_batch_size=4 \ - --learning_rate=5e-6 \ + --train_batch_size=8 \ + --learning_rate=1e-5 \ --num_train_epochs=2.0 \ --save_checkpoints_steps 1000 \ - --ft_mode=2 + --quant_mode=ft2 \ --horovod -python ../sample/tensorflow_bert/squad_evaluate-v1.1.py squad_data/dev-v1.1.json squad_model/QAT_mode_2/predictions.json +python ../../sample/tensorflow/tensorflow_bert/squad_evaluate_v1_1.py squad_data/dev-v1.1.json squad_model/QAT_mode_2/predictions.json ``` The results would be like: ```bash -{"exact_match": 82.17, "f1": 89.34} # for mode 1 -{"exact_match": 81.99, "f1": 89.14} # for mode 2 +{"exact_match": 82.11, "f1": 89.39} # for mode 1 +{"exact_match": 81.74, "f1": 89.12} # for mode 2 ``` @@ -187,9 +186,9 @@ python run_squad.py \ --calib_batch=16 \ --calib_method=percentile \ --percentile=99.99 \ - --ft_mode=2 + --quant_mode=ft2 -mpirun -np 8 -H localhost:8 \ +mpirun -np 4 -H localhost:4 \ --allow-run-as-root -bind-to none -map-by slot \ -x NCCL_DEBUG=INFO \ -x LD_LIBRARY_PATH \ @@ -204,20 +203,21 @@ mpirun -np 8 -H localhost:8 \ --do_train=True \ --do_predict=True \ --if_quant=True \ - --train_batch_size=4 \ - --learning_rate=5e-6 \ + --train_batch_size=8 \ + --learning_rate=2e-5 \ --num_train_epochs=10.0 \ --save_checkpoints_steps 1000 \ - --ft_mode=2 - --horovod + --quant_mode=ft2 \ + --horovod \ --distillation=True \ --teacher=squad_model/finetuned_base/model.ckpt-5474 -python ../sample/tensorflow_bert/squad_evaluate-v1.1.py squad_data/dev-v1.1.json squad_model/QAT_KD_mode_2/predictions.json +python ../../sample/tensorflow/tensorflow_bert/squad_evaluate_v1_1.py squad_data/dev-v1.1.json squad_model/QAT_KD_mode_2/predictions.json ``` The results would be like: ```bash -{"exact_match": 83.56, "f1": 90.22} +{"exact_match": 84.06, "f1": 90.63} # for mode 1 +{"exact_match": 84.02, "f1": 90.56} # for mode 2 ``` diff --git a/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/layers/tensor_quantizer.py b/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/layers/tensor_quantizer.py index c178c9a9a..16492918a 100644 --- a/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/layers/tensor_quantizer.py +++ b/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/layers/tensor_quantizer.py @@ -40,6 +40,7 @@ class QuantDescriptor(): Default None. unsigned: A Boolean. If True, use unsigned. Default False. affine: A Boolean. If True, use affine quantization. Default False. + narrow_range: A Boolean. If True, use narrow range. Default True. disable_key_words: A list of string, indicates disabled quantizer. Raises: @@ -51,6 +52,7 @@ class QuantDescriptor(): - num_bits: read-only property. - unsigned: read-only property. - affine: read-only property. + - narrow_range: read-only property. - axis: read-only property. - disable_key_words: read-only property. """ @@ -64,6 +66,7 @@ def __init__(self, collection_name_prefix, num_bits=8, **kwargs): self._unsigned = kwargs.pop('unsigned', False) self._affine = kwargs.pop('affine', False) + self._narrow_range = kwargs.pop('narrow_range', True) self._axis = kwargs.pop('axis', None) self._collection_name_prefix = collection_name_prefix @@ -92,6 +95,10 @@ def unsigned(self): def affine(self): return self._affine + @property + def narrow_range(self): + return self._narrow_range + @property def axis(self): return self._axis @@ -140,6 +147,7 @@ def __init__(self, quant_desc: QuantDescriptor, scope_name="tensor_quantizer", i self._axis = quant_desc.axis self._unsigned = quant_desc.unsigned self._affine = quant_desc.affine + self._narrow_range = quant_desc.narrow_range self._collection_name_prefix = quant_desc.collection_name_prefix self._scope_name = scope_name self._disable_key_words = quant_desc._disable_key_words @@ -189,7 +197,7 @@ def __call__(self, inputs): if self._if_quant: outputs = fake_quantize(inputs, self._quant_min, self._quant_max, self._num_bits, self._axis, self._unsigned, - self._affine) + self._affine, self._narrow_range) else: outputs = inputs diff --git a/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/ops/fake_quantize.py b/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/ops/fake_quantize.py index 8fe17e023..ca744fa77 100644 --- a/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/ops/fake_quantize.py +++ b/bert-quantization/bert-tf-quantization/ft-tensorflow-quantization/ft_tensorflow_quantization/python/ops/fake_quantize.py @@ -22,7 +22,7 @@ __all__ = ["fake_quantize"] -def fake_quantize(inputs, quant_min=None, quant_max=None, num_bits=8, axis=None, unsigned=False, affine=False): +def fake_quantize(inputs, quant_min=None, quant_max=None, num_bits=8, axis=None, unsigned=False, affine=False, narrow_range=True): """Universal tensor fake quantization function Args: @@ -35,6 +35,7 @@ def fake_quantize(inputs, quant_min=None, quant_max=None, num_bits=8, axis=None, Default None, indicates per tensor quantization. unsigned: A boolean. If True, use unsigned int8. Default False. affine: A boolean. If True, use affine quantization. Default False. + narrow_range: A boolean. If True, use narrow range. Default False. Returns: outputs: A Tensor with same type as inputs @@ -89,6 +90,12 @@ def fake_quantize_core(inputs, quant_min, quant_max): def _scaled_fake_quantize(inputs, quant_min, quant_max): # TODO(haow): Add check for negative values in inputs if unsigned bound = 2.0**(num_bits - 1 + int(unsigned)) - 1.0 + if unsigned: + min_bound = 0 + elif narrow_range: + min_bound = -bound + else: + min_bound = -bound - 1 quant_amax = tf.maximum(tf.abs(quant_min), tf.abs(quant_max)) scale = bound / quant_amax @@ -96,7 +103,7 @@ def _scaled_fake_quantize(inputs, quant_min, quant_max): # Value quantized with quant_amax=0 should all be 0, thus set scale to 1 scale = tf.compat.v2.where(tf.math.less_equal(quant_amax, epsilon), tf.constant(1.), scale) - quantized = tf.clip_by_value(tf.math.round(inputs * scale), -bound, bound) + quantized = tf.clip_by_value(tf.math.round(inputs * scale), min_bound, bound) outputs = quantized / scale return outputs diff --git a/bert-quantization/bert-tf-quantization/modeling.py b/bert-quantization/bert-tf-quantization/modeling.py index 25216a5c7..982bcaeb4 100644 --- a/bert-quantization/bert-tf-quantization/modeling.py +++ b/bert-quantization/bert-tf-quantization/modeling.py @@ -229,7 +229,9 @@ def __init__(self, do_return_all_layers=True, if_quant=if_quant) - self.sequence_output = self.all_encoder_layers[-1] + # self.sequence_output = tf.cast(self.all_encoder_layers[-1], tf.float32) + final_input_quantizer = FakeQuantizer(QuantDense.default_quant_desc_input, 'final_input_quantizer', if_quant) + self.sequence_output = tf.cast(final_input_quantizer(self.all_encoder_layers[-1]), tf.float32) # The "pooler" converts the encoded sequence tensor of shape # [batch_size, seq_length, hidden_size] to a tensor of shape # [batch_size, hidden_size]. This is necessary for segment-level diff --git a/bert-quantization/bert-tf-quantization/run_squad.py b/bert-quantization/bert-tf-quantization/run_squad.py index 1375d4445..10daddb14 100644 --- a/bert-quantization/bert-tf-quantization/run_squad.py +++ b/bert-quantization/bert-tf-quantization/run_squad.py @@ -168,21 +168,36 @@ flags.DEFINE_string("calib_method", "percentile", "calibration method [percentile, mse, max, entropy]") flags.DEFINE_float("percentile", 99.99, "percentile for percentile calibrator") flags.DEFINE_string("calibrator_file", "calibrators.pkl", "pickle file for calibrators") -flags.DEFINE_integer("ft_mode", 1, "int8 mode in FasterTransformer.") +flags.DEFINE_string("quant_mode", 'ft2', "predefined quantization mode, choices: ['ft1', 'ft2', 'ft3', 'trt']") flags.DEFINE_bool("distillation", False, "Whether or not to use the techer-student model for finetuning (Knowledge distillation)") flags.DEFINE_string("teacher", None, "teacher checkpoint file for distillation") flags.DEFINE_float("distillation_loss_scale", 10000., "scale applied to distillation component of loss") -if FLAGS.ft_mode == 1: +if FLAGS.quant_mode == 'ft1': KERNEL_AXIS = 1 - DISABLE_LIST = ['aftergemm', 'softmax_input', 'residual_input', 'local_input'] -elif FLAGS.ft_mode == 2: + ACTIVATION_NARROW_RANGE = False + DISABLE_LIST = ['aftergemm', 'softmax_input', 'residual_input', 'local_input', 'final_input'] + FUSE_QKV = False +elif FLAGS.quant_mode == 'ft2': KERNEL_AXIS = None - DISABLE_LIST = ['local_input'] + ACTIVATION_NARROW_RANGE = False + DISABLE_LIST = ['local_input', 'softmax_input', 'final_input'] + FUSE_QKV = True +elif FLAGS.quant_mode == 'ft3': + KERNEL_AXIS = None + ACTIVATION_NARROW_RANGE = False + DISABLE_LIST = ['local_input', 'final_input'] + FUSE_QKV = True +elif FLAGS.quant_mode == 'trt': + # for demobert + KERNEL_AXIS = None + ACTIVATION_NARROW_RANGE = False + DISABLE_LIST = ['aftergemm', 'softmax_input'] + FUSE_QKV = True else: - raise ValueError("wrong argument value for 'ft_mode'") -input_desc = QuantDescriptor('input', disable_key_words=DISABLE_LIST) + raise ValueError("wrong argument value for 'quant_mode'") +input_desc = QuantDescriptor('input', narrow_range=ACTIVATION_NARROW_RANGE, disable_key_words=DISABLE_LIST) kernel_desc = QuantDescriptor('kernel', axis=KERNEL_AXIS, disable_key_words=DISABLE_LIST) QuantDense.set_default_quant_desc_input(input_desc) QuantDense.set_default_quant_desc_kernel(kernel_desc) @@ -248,7 +263,7 @@ def end(self, session): for calibrator in self.calibrator_lists['kernel']: calibrator.compute_range('max') - if FLAGS.ft_mode == 2: + if FUSE_QKV: tf.compat.v1.logging.info("fusing QKV") for i in range(self.layer_num): prefix = f"bert/encoder/layer_{i}/attention/self" diff --git a/cmake/FasterTransformerConfig.cmake.in b/cmake/FasterTransformerConfig.cmake.in new file mode 100644 index 000000000..73295c587 --- /dev/null +++ b/cmake/FasterTransformerConfig.cmake.in @@ -0,0 +1,39 @@ +# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of NVIDIA CORPORATION nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +include(CMakeFindDependencyMacro) + +get_filename_component( + FASTERTRANSFORMER_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH +) + +list(APPEND CMAKE_MODULE_PATH ${FASTERTRANSFORMER_CMAKE_DIR}) + +if(NOT TARGET transformer-shared) + include("${FASTERTRANSFORMER_CMAKE_DIR}/FasterTransformerTargets.cmake") +endif() + +set(FASTERTRANSFORMER_LIBRARIES transformer-shared) diff --git a/cmake/Modules/FindNCCL.cmake b/cmake/Modules/FindNCCL.cmake new file mode 100644 index 000000000..ed4dbb986 --- /dev/null +++ b/cmake/Modules/FindNCCL.cmake @@ -0,0 +1,88 @@ +# Find the nccl libraries +# +# The following variables are optionally searched for defaults +# NCCL_ROOT: Base directory where all NCCL components are foundHong Xu, 1 year ago: • Let CMake handle NCCL detection instead of ou… +# NCCL_INCLUDE_DIR: Directory where NCCL header is foundPieter Noordhuis, 3 years ago: • Bump gloo +# NCCL_LIB_DIR: Directory where NCCL library is found +# +# The following are set after configuration is done: +# NCCL_FOUND +# NCCL_INCLUDE_DIRS +# NCCL_LIBRARIES +# +# The path hints include CUDA_TOOLKIT_ROOT_DIR seeing as some folks +# install NCCL in the same location as the CUDA toolkit. +# See https://github.com/caffe2/caffe2/issues/1601 + +set(NCCL_INCLUDE_DIR $ENV{NCCL_INCLUDE_DIR} CACHE PATH "Folder contains NVIDIA NCCL headers") +set(NCCL_LIB_DIR $ENV{NCCL_LIB_DIR} CACHE PATH "Folder contains NVIDIA NCCL libraries") +set(NCCL_VERSION $ENV{NCCL_VERSION} CACHE STRING "Version of NCCL to build with") + +if ($ENV{NCCL_ROOT_DIR}) + message(WARNING "NCCL_ROOT_DIR is deprecated. Please set NCCL_ROOT instead.") +endif() +list(APPEND NCCL_ROOT $ENV{NCCL_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}) +# Compatible layer for CMake <3.12. NCCL_ROOT will be accounted in for searching paths and libraries for CMake >=3.12. +list(APPEND CMAKE_PREFIX_PATH ${NCCL_ROOT}) + +find_path(NCCL_INCLUDE_DIRS + NAMES nccl.h + HINTS ${NCCL_INCLUDE_DIR}) + +if (USE_STATIC_NCCL) + MESSAGE(STATUS "USE_STATIC_NCCL is set. Linking with static NCCL library.") + SET(NCCL_LIBNAME "nccl_static") + if (NCCL_VERSION) # Prefer the versioned library if a specific NCCL version is specified + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a.${NCCL_VERSION}" ${CMAKE_FIND_LIBRARY_SUFFIXES}) + endif() +else() + SET(NCCL_LIBNAME "nccl") + if (NCCL_VERSION) # Prefer the versioned library if a specific NCCL version is specified + set(CMAKE_FIND_LIBRARY_SUFFIXES ".so.${NCCL_VERSION}" ${CMAKE_FIND_LIBRARY_SUFFIXES}) + endif() +endif() + +find_library(NCCL_LIBRARIES + NAMES ${NCCL_LIBNAME} + HINTS ${NCCL_LIB_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(NCCL DEFAULT_MSG NCCL_INCLUDE_DIRS NCCL_LIBRARIES) + +if(NCCL_FOUND) # obtaining NCCL version and some sanity checks + set (NCCL_HEADER_FILE "${NCCL_INCLUDE_DIRS}/nccl.h") + message (STATUS "Determining NCCL version from ${NCCL_HEADER_FILE}...") + set (OLD_CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES}) + list (APPEND CMAKE_REQUIRED_INCLUDES ${NCCL_INCLUDE_DIRS}) + include(CheckCXXSymbolExists) + check_cxx_symbol_exists(NCCL_VERSION_CODE nccl.h NCCL_VERSION_DEFINED) + + if (NCCL_VERSION_DEFINED) + set(file "${PROJECT_BINARY_DIR}/detect_nccl_version.cc") + file(WRITE ${file} " + #include + #include + int main() + { + std::cout << NCCL_MAJOR << '.' << NCCL_MINOR << '.' << NCCL_PATCH << std::endl; + int x; + ncclGetVersion(&x); + return x == NCCL_VERSION_CODE; + } +") + try_run(NCCL_VERSION_MATCHED compile_result ${PROJECT_BINARY_DIR} ${file} + RUN_OUTPUT_VARIABLE NCCL_VERSION_FROM_HEADER + LINK_LIBRARIES ${NCCL_LIBRARIES}) + if (NOT NCCL_VERSION_MATCHED) + message(FATAL_ERROR "Found NCCL header version and library version do not match! \ +(include: ${NCCL_INCLUDE_DIRS}, library: ${NCCL_LIBRARIES}) Please set NCCL_INCLUDE_DIR and NCCL_LIB_DIR manually.") + endif() + message(STATUS "NCCL version: ${NCCL_VERSION_FROM_HEADER}") + else() + # message(STATUS "NCCL version < 2.3.5-5") + endif () + set (CMAKE_REQUIRED_INCLUDES ${OLD_CMAKE_REQUIRED_INCLUDES}) + + message(STATUS "Found NCCL (include: ${NCCL_INCLUDE_DIRS}, library: ${NCCL_LIBRARIES})") + mark_as_advanced(NCCL_ROOT_DIR NCCL_INCLUDE_DIRS NCCL_LIBRARIES) +endif() diff --git a/docs/QAList.md b/docs/QAList.md index d32e80c08..64bceea2f 100644 --- a/docs/QAList.md +++ b/docs/QAList.md @@ -20,7 +20,7 @@ Another method is using multi-threading on the same TensorFlow graph and session ### 5. Which GPUs are supported in FasterTransformer? ### -We have verified the correctness and performance for GPUs with Compute Compatibility >= 7.0 such as V100 and T4. A100 also works, but still have some performance issue for small batch size. +We have verified the correctness and performance for GPUs with Compute Compatibility >= 7.0 such as V100, T4 and A100. ### 6. Do the users only be able to use the docker image we recommend? ### @@ -36,4 +36,4 @@ In C, users need to load the model by themselves and copy into GPU memory. In TensorFlow or PyTorch, users can load the checkpoint and put the weight tensor into FasterTransformer directly. Users can also load the model in other formats, like numpy, and put them into FasterTransformer directly like the weight tensor. - +The multi-gpu inference of GPT is special. FasterTransformer provides a tool to convert the checkpoint of OpenAI and Megatron, and then load the converted model by FasterTransformer directly. diff --git a/docs/decoder_guide.md b/docs/decoder_guide.md index db0edd822..77df0f56d 100644 --- a/docs/decoder_guide.md +++ b/docs/decoder_guide.md @@ -1,6 +1,6 @@ # FasterTransformer Decoder -The FasterTransformer Decoder contains the transformer decoder block, whole decoding progress, and GPT-2 model. +The FasterTransformer Decoder contains the transformer decoder block, whole decoding progress, and GPT model. ## Table Of Contents @@ -10,30 +10,26 @@ The FasterTransformer Decoder contains the transformer decoder block, whole deco - [Decoder](#decoder) - [Decoding progress](#decoding-progress) - [Decoder and Decoding](#decoder-and-decoding) - - [GPT-2](#gpt-2) + - [GPT](#gpt) - [Setup](#setup) - [Requirements](#requirements) - [How to use](#how-to-use) - [Decoder and decoding process](#decoder-and-decoding-process) - [Translation process](#translation-process) - - [GPT-2 process](#gpt-2-process) - [Performance](#performance) - - [Decoder performance](#decoder-performance) - - [Decoder performance on T4 and TensorFlow](#decoder-performance-on-t4-and-tensorflow) - - [Decoder performance on V100 and TensorFlow](#decoder-performance-on-v100-and-tensorflow) - - [Decoding performance](#decoding-performance) - - [Decoding performance on T4 and TensorFlow](#decoding-performance-on-t4-and-tensorflow) - - [Decoding performance on V100 and TensorFlow](#decoding-performance-on-v100-and-tensorflow) - - [Decoder and decoding performance on T4 and PyTorch](#decoder-and-decoding-performance-on-t4-and-pytorch) - - [Decoder and decoding performance on V100 and PyTorch](#decoder-and-decoding-performance-on-v100-and-pytorch) - - [TensorFlow performance on translation](#tensorflow-performance-on-translation) - - [PyTorch performance on translation](#pytorch-performance-on-translation) - - [GPT-2 performance on V100 and TensorFlow](#gpt-2-performance-on-v100-and-tensorflow) + - [End to end translation performance on TensorFlow](#end-to-end-translation-performance-on-tensorflow) + - [Beamsearch performance on V100 and TensorFlow](#beamsearch-performance-on-v100-and-tensorflow) + - [Sampling performance on V100 and TensorFlow](#sampling-performance-on-v100-and-tensorflow) + - [Beamsearch performance on T4 and TensorFlow](#beamsearch-performance-on-t4-and-tensorflow) + - [Sampling performance on T4 and TensorFlow](#sampling-performance-on-t4-and-tensorflow) + - [End to end translation performance on PyTorch](#end-to-end-translation-performance-on-pytorch) + - [Beamsearch performance on V100 and PyTorch](#beamsearch-performance-on-v100-and-pytorch) + - [Beamsearch performance on T4 and PyTorch](#beamsearch-performance-on-t4-and-pytorch) ## Model architecture
-
Fig. 1 Flowchart of Decoding and GPT-2.
+
Fig. 1 Flowchart of Decoding and GPT.
### Decoder @@ -112,28 +108,9 @@ Note that K and P cannot be zero or non-zero value at the same time. FasterTrans Although the decoding process of most methods is similar, we find that there are lots of different kinds to compute the probability and implement the beam search. Therefore, if your chosen beam search algorithm is different from our implementation and it is hard for you to modify the beam search kernel, TensorFlow decoding with FasterTransformer Decoder is the recommended choice. However, the performance of the TensorFlow decoding with the FasterTransformer Decoder is worse than the performance of the FasterTransformer Decoding, especially for small batch sizes. -### GPT-2 +### GPT -The GPT-2 model is based on This project is based on [OpenAI gpt-2 project](https://github.com/openai/gpt-2). GPT-2 is a special case of Decoding, it does not require the cross-attention block and the results from encoder. Users can put some started words into GPT-2, and GPT-2 will use these words to generate the next word. By this method, GPT-2 can translate the sentence, reply the questions, and do many different applications. Fig. 1 shows the difference between GPT-2 standard decoding model. - -* Arguments: - 1. batch size (B) - 2. Top k value (K) - 3. Top p value (P) - 4. maximum sequence length (S) - 5. Head number (H) - 6. Size per head (N) - 7. Number of decoder layers - 8. Start id of the vocabulary - 9. Start ids, which are converted from the input sentences. If “start ids” is empty list, then FasterTransformer will use the “start id” as the first token. - 10. End id of the vocabulary - 11. temperature: -* Inputs: - 1. The table for embedding lookup. The shape is \[ V, H x N \]. - 2. The weights of all parameters. - 3. Position encoding table. The shape is \[ S, H x N \]. -* Outputs: - 1. The output ids. The shape is \[ B \]. +The GPT model is based on [OpenAI gpt-2 project](https://github.com/openai/gpt-2). GPT is a special case of Decoding, it does not require the cross-attention block and the results from encoder. Users can put some started words into GPT, and GPT will use these words to generate the next word. By this method, GPT can translate the sentence, reply the questions, and do many different applications. Fig. 1 shows the difference between GPT standard decoding model. More details are put in [`docs/gpt_guide.md`](gpt_guide.md). ## Setup @@ -539,48 +516,6 @@ For those unable to use the NGC container, to set up the required environment or Note that the results of FasterTransformer may be different, especially when the batch size is larger. - 2.5 Run FasterTransformer encoder and decoder/decoding on TensorFlow at the same time - - In this subsection, we demonstrate how to use the FasterTransformer encoder and decoder/decoding at the same time. - - ```bash - ./bin/encoder_gemm 32 32 8 64 0 0 - ./bin/decoding_gemm 32 4 8 64 30000 32 512 0 - python tensorflow/encoder_decoder_sample.py \ - --batch_size 32 \ - --beam_width 4 \ - --encoder_head_number 8 \ - --encoder_size_per_head 64 \ - --decoder_head_number 8 \ - --decoder_size_per_head 64 \ - --vocab_size 30000 \ - --max_seq_len 32 \ - --encoder_num_layer 6 \ - --decoder_num_layer 6 \ - --data_type fp32 - ``` - - The `encoder_decoder_sample.py` files show the results of "TensorFlow encoder + FasterTransformer decoder" and the results of "FasterTransformer encoder + FasterTransformer decoder. The usage is similar to `decoder_sample.py`. - - ```bash - ./bin/encoder_gemm 32 32 8 64 0 0 - ./bin/decoding_gemm 32 4 8 64 30000 32 512 0 - python tensorflow/encoder_decoding_sample.py \ - --batch_size 32 \ - --beam_width 4 \ - --encoder_head_number 8 \ - --encoder_size_per_head 64 \ - --decoder_head_number 8 \ - --decoder_size_per_head 64 \ - --vocab_size 30000 \ - --max_seq_len 32 \ - --encoder_num_layer 6 \ - --decoder_num_layer 6 \ - --data_type fp32 - ``` - - For convenience, we only show how to use the FasterTransformer encoder and decoding with beam search in the `encoder_decoding_sample.py`. The usage is like `decoding_sample.py`. - 3. Run FasterTransformer decoder/decoding on PyTorch Please install OpenNMT-py first before running the demos by @@ -602,7 +537,7 @@ For those unable to use the NGC container, to set up the required environment or python pytorch/decoder_sample.py <--fp16> <--time> python pytorch/decoder_sample.py 8 6 32 8 64 --fp16 --time ``` - Remove `--fp16` for fp32 mode. `--ths` will use the TorchScript custom class. + Remove `--fp16` for fp32 mode. The outputs should be like to the following: @@ -621,7 +556,7 @@ For those unable to use the NGC container, to set up the required environment or python pytorch/decoding_sample.py <--fp16> <--time> python pytorch/decoding_sample.py 8 6 32 8 64 4 31538 --fp16 --time ``` - Remove `--fp16` for fp32 mode. `--ths` will use the TorchScript custom class. + Remove `--fp16` for fp32 mode. The outputs should be like to the following: @@ -729,11 +664,11 @@ For those unable to use the NGC container, to set up the required environment or ```bash python pytorch/run_translation.py --batch_size --beam_size --model_type --data_type --output_file ``` - you can also use `--module_path` to set the FasterTransformer module `.so` file path, and use `--input_file` to set the input file to be translated. + you can also use `--input_file` to set the input file to be translated. the `` can be: - - `ori`: original OpenNMT model - - `decoder_ext`: replace the decoder in OpenNMT model with our FasterTransformer decoder + + - `decoding_ext`: using our FasterTransformer decoding module - `torch_decoding`: PyTorch version decoding with the method FasterTransformer decoding uses - `torch_decoding_with_decoder_ext`: PyTorch version decoding with the method FasterTransformer decoding uses but replace the decoder with the FasterTransformer decoder @@ -766,168 +701,6 @@ For those unable to use the NGC container, to set up the required environment or cat debpe_output.txt | sacrebleu debpe_ref.txt ``` -### GPT-2 process - -1. Install required tools - -```bash -pip install -r tensorflow/utils/gpt2_requirement.txt -``` - -2. Download the gpt-2 model by following scripts. - -```bash -python tensorflow/utils/download_gpt2_model.py -e.g. python tensorflow/utils/download_gpt2_model.py 124M -``` - -In the repo of OpenAI, they provide many models, including `124M`, `355M`, `774M` and `1558M` - -Next, using the following script to convert the model to csv files, which are used in C++ sample codes. - -```bash -mkdir tmp -python tensorflow/utils/convert_tf_ckpt_to_csv.py -o tmp -i models/124M/model.ckpt -``` - -3. Run GPT-2 - - 3.1 Generate the `decoding_gemm_config.in` file. - - - `./bin/decoding_gemm` can generate the best GEMM configuration. The arguments of `decoding_gemm` are: - - ```bash - ./bin/decoding_gemm - ``` - - Assume the settings of decoding are as follows (the hyper-parameters of GPT-2 124M model). - - - `batch_size`=4 - - `top k`=4 - - `top p`=0.6 - - `head_number`=12 - - `size_per_head`=64 - - `vocabulary_size`=50257 - - `sequence_length`=32 - - `data_type`=FP32 - - Then the following scripts can generate the best GEMM configuration under such settings, and record the configuration into the `decoding_gemm_config.in` file. - - ```bash - ./bin/decoding_gemm 4 1 12 64 50257 32 768 0 - ``` - - Note that the beam width of sampling algorithm is always 1, so we need to generate the new configuration. - - 3.2 Run GPT-2 under FP32 on C++ - - Assume the settings are the same as above, and the decoder contains 12 transformer layers. - - The arguments of `gpt2_sample` is - - ```bash - ./bin/decoding_sample - ``` - - where `candidate_num` is the k value of top k, while `probability_threshold` is the p value of top p. - - ```bash - ./bin/gpt2_sample 4 4 0.6 12 64 50257 32 12 0 - ``` - - The outputs should be like to the following: - - ```bash - Device Tesla V100-PCIE-32GB - [INFO] batch_size 4 head_num 12 size_per_head 64 seq_len 32 decoder_layers 12 vocab_size 50257 FT-CPP-gpt2-time 52.67 ms - ``` - - 3.3 Run GPT-2 under FP16 on C++ - - So far, we use the FP32 to run the FasterTransformer. If we use the volta or newer NVIDIA GPU, we can use tensor core to accelerate when we use the FP16. - - To use the FP16, we only need to set the `` flag to 1 like following: - - ```bash - ./bin/decoding_gemm 4 1 12 64 50257 32 768 1 - ./bin/gpt2_sample 4 4 0.6 12 64 50257 32 12 1 - ``` - - Note that the configuration of FP32 and FP16 are different, so we need to generate the configuration again. - - The outputs should be like to the following: - - ```bash - Device Tesla V100-PCIE-32GB - [INFO] batch_size 4 head_num 12 size_per_head 64 seq_len 32 decoder_layers 12 vocab_size 50257 FT-CPP-gpt2-time 40.65 ms - ``` - - 3.4 Run FasterTransformer GPT-2 under FP32 on TensorFlow - - ```bash - ./bin/decoding_gemm 4 1 12 64 50257 32 768 0 - python tensorflow/gpt2_sample.py --batch_size=4 \ - --length=32 \ - --top_k=4 \ - --top_p=0.6 \ - --data_type=fp32 - ``` - - The outputs should be like to the following: - - ```bash - [INFO] FT op time: 57.9542 - ======================================== SAMPLE 1 ======================================== - The first of three films from the acclaimed director, who is also a producer on the upcoming Star Wars: The Force Awakens, is set to be released on December 8 - ======================================== SAMPLE 2 ======================================== - - The first time I saw the new "The Last of Us" trailer, I was blown away. I had never seen anything like it before. It was so - ======================================== SAMPLE 3 ======================================== - - A new study from the University of California, Berkeley, and the University of California, Santa Barbara found that the number of people who have been diagnosed with schizophrenia in - ======================================== SAMPLE 4 ======================================== - - The U.S. government has been accused of using a secret surveillance program to spy on American citizens. - - The Justice Department has said that the program was - ``` - - It generates four different sentences due to different random seeds. - - 3.5 Run FasterTransformer GPT-2 under FP16 on TensorFlow - - ```bash - ./bin/decoding_gemm 4 1 12 64 50257 32 768 1 - python tensorflow/gpt2_sample.py --batch_size=4 \ - --length=32 \ - --top_k=4 \ - --top_p=0.6 \ - --data_type=fp16 - ``` - - The outputs should be like to the following: - - ```bash - [INFO] FT op time: 47.6268 - ======================================== SAMPLE 1 ======================================== - - The U.S. Department of Justice has filed a lawsuit against the company that owns the video game company, Electronic Arts, alleging that the company violated antitrust laws - ======================================== SAMPLE 2 ======================================== - The U.S. government has been trying to find ways to prevent the spread of Zika virus in the Americas, but it has been unable to do so. - - ======================================== SAMPLE 3 ======================================== - - The U.S. Department of Justice has filed a lawsuit against the company that owns the video game company, Electronic Arts, alleging that the company violated antitrust laws - ======================================== SAMPLE 4 ======================================== - - The first of two episodes of the new season of "The Walking Dead" is here, and it's a great one. - - The first episode of the - ``` - - User can check the arguments in `sample/tensorflow/gpt2_sample.py` file. - ## Performance Hardware settings: @@ -941,532 +714,219 @@ To run the following benchmark, we need to install the unix computing tool "bc" apt-get install bc ``` -### Decoder performance +To understand the speedup on real application, we use real end to end model and task in this benchmark on both TensorFlow and PyTorch. It is hard to compare the performance of v3.1 and v4.0 this the benchmark directly. But by our testing, compared to v3.1, v4.0 brings at most 50% speedup, especially for large batch size. -We demonstrate the inference time of FasterTransformer in C++, TensorFlow, and compare to the performance of pure TensorFlow on T4 and V100. The performance of PyTorch are put in the "Decoding performance" subsection. +### End to end translation performance on TensorFlow -In this benchmark, we compare the performance of TensorFlow decoding with beam search method (TF), and the performance of replacing the decoder of TensorFlow by FasterTransformer (FT-OP), and show the speedup of FT-OP compare to TF. +We demonstrate the throughput of TensorFlow (`TF`), `FT Decoder` and `FT Decoding` for end to end translation. Here, TensorFlow means that the program fully runs on TensorFlow. FT Decoder means that we replace the decoder transformer layer by FasterTransformer. FT Decoding means that we replace the whole procedure of decoder by FasterTransformer. Besides, we also replace the encoder transformer layer by FasterTransformer Encoder in FT Decoding. -We do not demonstrate the performance of TensorFlow with XLA since we did not find that using XLA has obvious speedup. +We do not demonstrate the performance of TensorFlow with XLA since we did not find that using XLA has obvious speedup. We also skip the BLEU score because the score of TensorFlow, FT Decoder and FT Decoding are close. -Our results of C++ and TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_decoder_performance.sh` +Althought the bleu scores of all methods are close, the results may be little different and the number of generated tokens may be also different. So, we use throughput but not latency to show the peformance in this benchmark. -In the experiments of decoding, we updated the following parameters: +The benchmark of beamsearch were obtained by running the `sample/tensorflow/scripts/profile_decoding_beamsearch_performance.sh`; while The benchmark of sampling were obtained by running the `sample/tensorflow/scripts/profile_decoding_sampling_performance.sh`.. -* head_num = 8 -* size_per_head = 64 -* num_layers = 6 -* vocabulary_size = 30000 for TensorFlow sample codes, 31538 for PyTorch sample codes -* memory_hidden_dim = 512 +In this benchmark, we updated the following parameters: -#### Decoder performance on T4 and TensorFlow - -* Performance on FP32 - -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:| -| <1, 1, 32> | 509.16 | 107.98 | 4.71 | -| <1, 1, 64> | 951.49 | 223.69 | 4.25 | -| <1, 1, 128> | 1943.97 | 425.28 | 4.57 | -| <1, 4, 32> | 497.88 | 126.70 | 3.92 | -| <1, 4, 64> | 1050.92 | 243.64 | 4.31 | -| <1, 4, 128> | 2064.92 | 508.16 | 4.06 | -| <8, 1, 32> | 510.90 | 125.96 | 4.05 | -| <8, 1, 64> | 995.81 | 244.18 | 4.07 | -| <8, 1, 128> | 2041.21 | 479.02 | 4.26 | -| <8, 4, 32> | 539.70 | 129.21 | 4.17 | -| <8, 4, 64> | 1100.77 | 267.75 | 4.11 | -| <8, 4, 128> | 2100.58 | 558.91 | 3.75 | -| <32, 1, 32> | 575.80 | 123.16 | 4.67 | -| <32, 1, 64> | 1070.51 | 251.52 | 4.25 | -| <32, 1, 128> | 2172.67 | 554.32 | 3.91 | -| <32, 4, 32> | 673.70 | 204.51 | 3.29 | -| <32, 4, 64> | 1335.84 | 492.47 | 2.71 | -| <32, 4, 128> | 3136.18 | 1331.35 | 2.35 | -| <64, 1, 32> | 582.22 | 142.49 | 4.08 | -| <64, 1, 64> | 1243.74 | 312.54 | 3.97 | -| <64, 1, 128> | 2420.20 | 791.30 | 3.05 | -| <64, 4, 32> | 850.54 | 350.63 | 2.42 | -| <64, 4, 64> | 1833.49 | 874.46 | 2.09 | -| <64, 4, 128> | 4586.01 | 2450.19 | 1.87 | -| <128, 1, 32> | 656.85 | 208.91 | 3.14 | -| <128, 1, 64> | 1461.70 | 499.76 | 2.92 | -| <128, 1, 128> | 3209.60 | 1361.95 | 2.35 | -| <128, 4, 32> | 1260.55 | 656.29 | 1.92 | -| <128, 4, 64> | 2875.73 | 1663.91 | 1.72 | -| <128, 4, 128> | 8018.63 | 4718.32 | 1.69 | - -* Performance on FP16 +* head_num = 8 for both encoder and decoder +* size_per_head = 64 for both encoder and decoder +* num_layers = 6 for both encoder and decoder +* vocabulary_size = 32001 +* max_seq_len = 128 -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:| -| <1, 1, 32> | 400.02 | 121.19 | 3.30 | -| <1, 1, 64> | 823.41 | 233.93 | 3.51 | -| <1, 1, 128> | 1616.38 | 422.73 | 3.82 | -| <1, 4, 32> | 476.33 | 128.45 | 3.70 | -| <1, 4, 64> | 868.67 | 261.18 | 3.32 | -| <1, 4, 128> | 1857.95 | 464.51 | 3.99 | -| <8, 1, 32> | 452.70 | 119.73 | 3.78 | -| <8, 1, 64> | 906.15 | 222.74 | 4.06 | -| <8, 1, 128> | 1789.19 | 428.80 | 4.17 | -| <8, 4, 32> | 484.09 | 127.14 | 3.80 | -| <8, 4, 64> | 973.28 | 252.81 | 3.84 | -| <8, 4, 128> | 1907.93 | 527.98 | 3.61 | -| <32, 1, 32> | 476.66 | 124.72 | 3.82 | -| <32, 1, 64> | 933.16 | 240.70 | 3.87 | -| <32, 1, 128> | 1953.02 | 518.10 | 3.76 | -| <32, 4, 32> | 607.62 | 159.24 | 3.81 | -| <32, 4, 64> | 1280.93 | 352.51 | 3.63 | -| <32, 4, 128> | 2511.20 | 882.21 | 2.84 | -| <64, 1, 32> | 501.07 | 135.40 | 3.70 | -| <64, 1, 64> | 1020.40 | 281.34 | 3.62 | -| <64, 1, 128> | 2243.14 | 627.33 | 3.57 | -| <64, 4, 32> | 692.42 | 213.80 | 3.23 | -| <64, 4, 64> | 1517.27 | 542.75 | 2.79 | -| <64, 4, 128> | 3351.21 | 1554.97 | 2.15 | -| <128, 1, 32> | 593.39 | 163.73 | 3.62 | -| <128, 1, 64> | 1258.93 | 358.26 | 3.51 | -| <128, 1, 128> | 2672.11 | 910.34 | 2.93 | -| <128, 4, 32> | 989.35 | 364.63 | 2.71 | -| <128, 4, 64> | 2216.00 | 962.84 | 2.30 | -| <128, 4, 128> | 5515.29 | 2913.02 | 1.89 | - -#### Decoder performance on V100 and TensorFlow +#### Beamsearch performance on V100 and TensorFlow * Performance on FP32 -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:| -| <1, 1, 32> | 239.38 | 68.88 | 3.47 | -| <1, 1, 64> | 500.20 | 133.88 | 3.73 | -| <1, 1, 128> | 1021.87 | 261.55 | 3.90 | -| <1, 4, 32> | 242.70 | 74.93 | 3.23 | -| <1, 4, 64> | 509.43 | 145.60 | 3.49 | -| <1, 4, 128> | 893.73 | 296.82 | 3.01 | -| <8, 1, 32> | 241.06 | 68.85 | 3.50 | -| <8, 1, 64> | 494.16 | 145.88 | 3.38 | -| <8, 1, 128> | 1028.89 | 285.51 | 3.60 | -| <8, 4, 32> | 274.33 | 73.38 | 3.73 | -| <8, 4, 64> | 534.15 | 152.04 | 3.51 | -| <8, 4, 128> | 1090.66 | 321.77 | 3.38 | -| <32, 1, 32> | 249.78 | 71.74 | 3.48 | -| <32, 1, 64> | 527.18 | 150.84 | 3.49 | -| <32, 1, 128> | 1053.79 | 313.93 | 3.35 | -| <32, 4, 32> | 313.01 | 114.31 | 2.73 | -| <32, 4, 64> | 666.00 | 252.23 | 2.64 | -| <32, 4, 128> | 1376.10 | 593.28 | 2.31 | -| <64, 1, 32> | 288.73 | 86.66 | 3.33 | -| <64, 1, 64> | 553.34 | 177.65 | 3.11 | -| <64, 1, 128> | 1125.72 | 404.00 | 2.78 | -| <64, 4, 32> | 377.06 | 156.55 | 2.40 | -| <64, 4, 64> | 806.34 | 373.36 | 2.15 | -| <64, 4, 128> | 1913.47 | 974.17 | 1.96 | -| <128, 1, 32> | 319.11 | 110.49 | 2.88 | -| <128, 1, 64> | 666.36 | 243.54 | 2.73 | -| <128, 1, 128> | 1426.32 | 591.99 | 2.40 | -| <128, 4, 32> | 528.52 | 256.18 | 2.06 | -| <128, 4, 64> | 1215.82 | 620.55 | 1.95 | -| <128, 4, 128> | 3167.89 | 1733.38 | 1.82 | +| Batch Size | Beam Width | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP32 | 95 | 351 | 800 | 3.69 | 8.42 | +| 1 | 4 | FP32 | 110 | 341 | 763 | 3.10 | 6.93 | +| 1 | 32 | FP32 | 78 | 171 | 489 | 2.19 | 6.26 | +| 8 | 1 | FP32 | 484 | 1645 | 3694 | 3.39 | 7.63 | +| 8 | 4 | FP32 | 511 | 1435 | 3068 | 2.80 | 6.00 | +| 8 | 32 | FP32 | 231 | 427 | 916 | 1.84 | 3.96 | +| 128 | 1 | FP32 | 3157 | 8373 | 19803 | 2.65 | 6.27 | +| 128 | 4 | FP32 | 1773 | 3648 | 7848 | 2.05 | 4.42 | * Performance on FP16 -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:| -| <1, 1, 32> | 209.70 | 70.37 | 2.97 | -| <1, 1, 64> | 423.41 | 141.34 | 2.99 | -| <1, 1, 128> | 775.10 | 287.64 | 2.69 | -| <1, 4, 32> | 215.05 | 81.37 | 2.64 | -| <1, 4, 64> | 449.72 | 146.28 | 3.07 | -| <1, 4, 128> | 910.03 | 291.50 | 3.12 | -| <8, 1, 32> | 226.01 | 68.60 | 3.29 | -| <8, 1, 64> | 437.30 | 153.32 | 2.85 | -| <8, 1, 128> | 915.96 | 286.39 | 3.19 | -| <8, 4, 32> | 248.44 | 75.81 | 3.27 | -| <8, 4, 64> | 463.51 | 154.71 | 2.99 | -| <8, 4, 128> | 960.88 | 293.46 | 3.27 | -| <32, 1, 32> | 233.93 | 69.80 | 3.35 | -| <32, 1, 64> | 482.73 | 147.54 | 3.27 | -| <32, 1, 128> | 922.02 | 294.40 | 3.13 | -| <32, 4, 32> | 279.34 | 88.29 | 3.16 | -| <32, 4, 64> | 582.95 | 193.42 | 3.01 | -| <32, 4, 128> | 1198.26 | 454.66 | 2.63 | -| <64, 1, 32> | 245.73 | 76.29 | 3.22 | -| <64, 1, 64> | 463.44 | 158.65 | 2.92 | -| <64, 1, 128> | 1007.24 | 332.69 | 3.02 | -| <64, 4, 32> | 331.58 | 114.84 | 2.88 | -| <64, 4, 64> | 699.38 | 262.69 | 2.66 | -| <64, 4, 128> | 1618.15 | 695.07 | 2.32 | -| <128, 1, 32> | 270.86 | 82.38 | 3.28 | -| <128, 1, 64> | 537.55 | 181.03 | 2.96 | -| <128, 1, 128> | 1183.11 | 442.73 | 2.67 | -| <128, 4, 32> | 433.38 | 165.23 | 2.62 | -| <128, 4, 64> | 928.87 | 410.96 | 2.26 | -| <128, 4, 128> | 2297.10 | 1175.40 | 1.95 | - - +#### Sampling performance on V100 and TensorFlow -### Decoding performance +* Performance on FP32 -We demonstrate the inference time of FasterTransformer in C++, TensorFlow and PyTorch, and compare to the performance of pure TensorFlow and PyTorch on T4 and V100. +| Batch Size | Topk/Topp | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:---------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 4 | FP32 | 119 | 379 | 759 | 3.18 | 6.37 | +| 1 | 32 | FP32 | 103 | 368 | 739 | 3.57 | 7.17 | +| 1 | 0.75 | FP32 | 111 | 324 | 619 | 2.91 | 5.57 | +| 8 | 4 | FP32 | 491 | 1765 | 3475 | 3.59 | 7.07 | +| 8 | 32 | FP32 | 483 | 1637 | 3395 | 3.38 | 7.02 | +| 8 | 0.75 | FP32 | 460 | 1460 | 2645 | 3.17 | 5.75 | +| 128 | 4 | FP32 | 3387 | 9203 | 18165 | 2.71 | 5.36 | +| 128 | 32 | FP32 | 3380 | 8605 | 17541 | 2.54 | 5.18 | +| 128 | 0.75 | FP32 | 3194 | 6898 | 13925 | 2.15 | 4.35 | -For the benchmark of TensorFlow, we compare the performance of TensorFlow (TF), the performance of TensorFlow with FasterTransformer OP (FT-OP) and the performance of FasterTransformer on C++ (TF-CPP), and show the speedup of FT-OP and FT-CPP compare to the TensorFlow. +* Performance on FP16 -We do not demonstrate the performance of TensorFlow with XLA since we did not find that using XLA has obvious speedup. +| Batch Size | Topk/Topp | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:---------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 4 | FP16 | 169 | 412 | 992 | 2.43 | 5.86 | +| 1 | 32 | FP16 | 167 | 376 | 970 | 2.25 | 5.80 | +| 1 | 0.75 | FP16 | 160 | 350 | 845 | 2.18 | 5.28 | +| 8 | 4 | FP16 | 739 | 1802 | 4620 | 2.43 | 6.25 | +| 8 | 32 | FP16 | 785 | 1754 | 4425 | 2.23 | 5.63 | +| 8 | 0.75 | FP16 | 715 | 1586 | 3634 | 2.21 | 5.08 | +| 128 | 4 | FP16 | 6217 | 11392 | 29409 | 1.83 | 4.73 | +| 128 | 32 | FP16 | 5937 | 10366 | 27995 | 1.74 | 4.71 | +| 128 | 0.75 | FP16 | 5129 | 8423 | 22094 | 1.64 | 4.30 | -For the benchmark of PyTorch, we compare the performance of PyTorch decoding with beam search (PyTorch), the performance of replacing the decoder of PyTorch by FasterTransformer (Decoder) and performance of FasterTransformer Decoding with beam search (Decoding), and show the speedup Decoder and Decoding compare to the PyTorch. Due to the dynamic property, it is hard to trace/script the PyTorch decoder/decoding model, so we only test on plain PyTorch. +#### Beamsearch performance on T4 and TensorFlow -The results of C++ and TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_decoding_performance.sh`. +* Performance on FP32 -The results of PyTorch were obtained by running the `../sample/pytorch/scripts/profile_decoder_decoding.sh`. +| Batch Size | Beam Width | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP32 | 40 | 151 | 599 | 3.77 | 14.97 | +| 1 | 4 | FP32 | 34 | 137 | 563 | 4.02 | 16.55 | +| 1 | 32 | FP32 | 37 | 91 | 330 | 2.45 | 8.91 | +| 8 | 1 | FP32 | 193 | 807 | 2868 | 4.18 | 14.86 | +| 8 | 4 | FP32 | 198 | 644 | 2205 | 3.25 | 11.13 | +| 8 | 32 | FP32 | 94 | 209 | 366 | 2.22 | 3.89 | +| 128 | 1 | FP32 | 1234 | 3420 | 10313 | 2.77 | 8.35 | +| 128 | 4 | FP32 | 677 | 1260 | 3114 | 1.86 | 4.59 | -In the experiments of decoding, we updated the following parameters: +* Performance on FP16 -* head_num = 8 -* size_per_head = 64 -* num_layers = 6 -* vocabulary_size = 30000 for TensorFlow sample codes, 31538 for PyTorch sample codes -* memory_hidden_dim = 512 +| Batch Size | Beam Width | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP16 | 57 | 175 | 786 | 3.07 | 13.78 | +| 1 | 4 | FP16 | 55 | 169 | 766 | 3.07 | 13.92 | +| 1 | 32 | FP16 | 45 | 94 | 465 | 2.08 | 10.33 | +| 8 | 1 | FP16 | 226 | 683 | 4077 | 3.02 | 18.03 | +| 8 | 4 | FP16 | 217 | 631 | 3440 | 2.90 | 15.85 | +| 8 | 32 | FP16 | 151 | 259 | 619 | 1.71 | 4.09 | +| 128 | 1 | FP16 | 2060 | 4474 | 21675 | 2.17 | 10.52 | +| 128 | 4 | FP16 | 1250 | 1948 | 8796 | 1.55 | 7.03 | -#### Decoding performance on T4 and TensorFlow +#### Sampling performance on T4 and TensorFlow * Performance on FP32 -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | FT-CPP (ms) | FT-CPP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:|:-----------:|:--------------:| -| <1, 1, 32> | 453.10 | 31.84 | 14.23 | 28.00 | 16.18 | -| <1, 1, 64> | 882.08 | 61.51 | 14.34 | 57.33 | 15.38 | -| <1, 1, 128> | 1843.03 | 126.54 | 14.56 | 122.76 | 15.01 | -| <1, 4, 32> | 471.63 | 40.71 | 11.58 | 36.44 | 12.94 | -| <1, 4, 64> | 937.28 | 79.41 | 11.80 | 75.54 | 12.40 | -| <1, 4, 128> | 1926.79 | 166.26 | 11.58 | 160.75 | 11.98 | -| <8, 1, 32> | 482.82 | 43.48 | 11.10 | 39.85 | 12.11 | -| <8, 1, 64> | 921.57 | 87.21 | 10.56 | 83.39 | 11.05 | -| <8, 1, 128> | 1894.78 | 184.38 | 10.27 | 183.43 | 10.32 | -| <8, 4, 32> | 515.76 | 56.47 | 9.13 | 53.63 | 9.61 | -| <8, 4, 64> | 1014.02 | 119.61 | 8.47 | 120.85 | 8.39 | -| <8, 4, 128> | 2020.41 | 277.44 | 7.28 | 300.16 | 6.73 | -| <32, 1, 32> | 534.25 | 56.06 | 9.52 | 53.65 | 9.95 | -| <32, 1, 64> | 1034.65 | 121.27 | 8.53 | 121.52 | 8.51 | -| <32, 1, 128> | 1966.53 | 285.25 | 6.89 | 300.35 | 6.54 | -| <32, 4, 32> | 640.24 | 154.65 | 4.13 | 154.34 | 4.14 | -| <32, 4, 64> | 1354.65 | 350.07 | 3.86 | 367.81 | 3.68 | -| <32, 4, 128> | 3027.38 | 859.86 | 3.52 | 947.46 | 3.19 | -| <64, 1, 32> | 553.85 | 86.66 | 6.39 | 85.61 | 6.46 | -| <64, 1, 64> | 1114.51 | 192.89 | 5.77 | 198.66 | 5.61 | -| <64, 1, 128> | 2318.32 | 472.83 | 4.90 | 512.98 | 4.51 | -| <64, 4, 32> | 825.52 | 285.46 | 2.89 | 289.26 | 2.85 | -| <64, 4, 64> | 1752.80 | 653.98 | 2.68 | 685.59 | 2.55 | -| <64, 4, 128> | 4390.23 | 1631.13 | 2.69 | 1798.83 | 2.44 | -| <128, 1, 32> | 620.29 | 151.94 | 4.08 | 153.28 | 4.04 | -| <128, 1, 64> | 1366.14 | 342.94 | 3.98 | 358.99 | 3.80 | -| <128, 1, 128> | 2987.18 | 868.05 | 3.44 | 945.11 | 3.16 | -| <128, 4, 32> | 1170.25 | 542.47 | 2.15 | 552.39 | 2.11 | -| <128, 4, 64> | 2760.15 | 1257.03 | 2.19 | 1334.39 | 2.06 | -| <128, 4, 128> | 7774.93 | 3155.91 | 2.46 | 3445.01 | 2.25 | +| Batch Size | Topk/Topp | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:---------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 4 | FP32 | 49 | 201 | 584 | 4.10 | 11.91 | +| 1 | 32 | FP32 | 50 | 175 | 568 | 3.50 | 11.36 | +| 1 | 0.75 | FP32 | 48 | 156 | 494 | 3.25 | 10.29 | +| 8 | 4 | FP32 | 226 | 791 | 2753 | 3.50 | 12.18 | +| 8 | 32 | FP32 | 230 | 859 | 2643 | 3.73 | 11.49 | +| 8 | 0.75 | FP32 | 230 | 706 | 2225 | 3.06 | 9.67 | +| 128 | 4 | FP32 | 1443 | 3729 | 8822 | 2.58 | 6.11 | +| 128 | 32 | FP32 | 1372 | 3396 | 8694 | 2.47 | 6.33 | +| 128 | 0.75 | FP32 | 1259 | 2640 | 7127 | 2.09 | 5.66 | * Performance on FP16 -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | FT-CPP (ms) | FT-CPP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:|:-----------:|:--------------:| -| <1, 1, 32> | 396.28 | 34.38 | 11.52 | 26.66 | 14.86 | -| <1, 1, 64> | 768.43 | 63.88 | 12.02 | 56.44 | 13.61 | -| <1, 1, 128> | 1543.99 | 129.90 | 11.88 | 123.63 | 12.48 | -| <1, 4, 32> | 419.53 | 35.09 | 11.95 | 26.25 | 15.98 | -| <1, 4, 64> | 806.38 | 59.80 | 13.48 | 54.02 | 14.92 | -| <1, 4, 128> | 1570.90 | 123.67 | 12.70 | 115.83 | 13.56 | -| <8, 1, 32> | 410.31 | 36.86 | 11.13 | 26.83 | 15.29 | -| <8, 1, 64> | 795.15 | 63.40 | 12.54 | 58.65 | 13.55 | -| <8, 1, 128> | 1639.86 | 132.13 | 12.41 | 127.12 | 12.90 | -| <8, 4, 32> | 439.64 | 38.89 | 11.30 | 35.99 | 12.21 | -| <8, 4, 64> | 891.54 | 82.09 | 10.86 | 79.82 | 11.16 | -| <8, 4, 128> | 1766.03 | 182.58 | 9.67 | 193.54 | 9.12 | -| <32, 1, 32> | 466.24 | 40.58 | 11.48 | 35.76 | 13.03 | -| <32, 1, 64> | 886.57 | 82.15 | 10.79 | 80.28 | 11.04 | -| <32, 1, 128> | 1837.41 | 187.04 | 9.82 | 195.01 | 9.42 | -| <32, 4, 32> | 536.00 | 84.37 | 6.35 | 82.82 | 6.47 | -| <32, 4, 64> | 1116.74 | 189.16 | 5.90 | 198.95 | 5.61 | -| <32, 4, 128> | 2473.57 | 470.40 | 5.25 | 518.77 | 4.76 | -| <64, 1, 32> | 480.88 | 53.39 | 9.00 | 50.89 | 9.44 | -| <64, 1, 64> | 939.87 | 114.97 | 8.17 | 118.25 | 7.94 | -| <64, 1, 128> | 2051.09 | 280.67 | 7.30 | 305.32 | 6.71 | -| <64, 4, 32> | 668.45 | 143.41 | 4.66 | 144.53 | 4.62 | -| <64, 4, 64> | 1476.17 | 332.89 | 4.43 | 351.14 | 4.20 | -| <64, 4, 128> | 3282.27 | 860.21 | 3.81 | 966.68 | 3.39 | -| <128, 1, 32> | 587.50 | 80.61 | 7.28 | 80.79 | 7.27 | -| <128, 1, 64> | 1107.02 | 182.72 | 6.05 | 193.22 | 5.72 | -| <128, 1, 128> | 2635.13 | 467.93 | 5.63 | 518.73 | 5.07 | -| <128, 4, 32> | 996.88 | 265.51 | 3.75 | 271.80 | 3.66 | -| <128, 4, 64> | 2157.85 | 627.24 | 3.44 | 671.76 | 3.21 | -| <128, 4, 128> | 5389.81 | 1646.64 | 3.27 | 1848.24 | 2.91 | - -#### Decoding performance on V100 and TensorFlow +| Batch Size | Topk/Topp | Precision | TF
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:---------:|:---------:|:-------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 4 | FP16 | 70 | 211 | 765 | 3.01 | 10.92 | +| 1 | 32 | FP16 | 68 | 201 | 756 | 2.95 | 11.11 | +| 1 | 0.75 | FP16 | 65 | 163 | 658 | 2.50 | 10.12 | +| 8 | 4 | FP16 | 296 | 904 | 3821 | 3.05 | 12.90 | +| 8 | 32 | FP16 | 291 | 851 | 3929 | 2.92 | 13.50 | +| 8 | 0.75 | FP16 | 280 | 723 | 3168 | 2.58 | 11.31 | +| 128 | 4 | FP16 | 2649 | 4810 | 21185 | 1.81 | 7.99 | +| 128 | 32 | FP16 | 2337 | 4632 | 18966 | 1.98 | 8.11 | +| 128 | 0.75 | FP16 | 1937 | 3269 | 15599 | 1.68 | 8.05 | -* Performance of FP32 +### End to end translation performance on PyTorch -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | FT-CPP (ms) | FT-CPP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:|:-----------:|:--------------:| -| <1, 1, 32> | 247.70 | 20.99 | 11.80 | 19.17 | 12.92 | -| <1, 1, 64> | 495.89 | 43.63 | 11.36 | 39.93 | 12.41 | -| <1, 1, 128> | 936.57 | 90.46 | 10.35 | 87.20 | 10.74 | -| <1, 4, 32> | 234.78 | 30.85 | 7.61 | 28.12 | 8.34 | -| <1, 4, 64> | 464.19 | 54.83 | 8.46 | 52.79 | 8.79 | -| <1, 4, 128> | 909.90 | 117.46 | 7.74 | 113.13 | 8.04 | -| <8, 1, 32> | 231.98 | 28.18 | 8.23 | 25.61 | 9.05 | -| <8, 1, 64> | 457.38 | 56.72 | 8.06 | 53.44 | 8.55 | -| <8, 1, 128> | 923.71 | 121.91 | 7.57 | 117.66 | 7.85 | -| <8, 4, 32> | 249.10 | 31.72 | 7.85 | 29.34 | 8.49 | -| <8, 4, 64> | 503.95 | 65.72 | 7.66 | 64.22 | 7.84 | -| <8, 4, 128> | 1020.94 | 147.66 | 6.91 | 149.51 | 6.82 | -| <32, 1, 32> | 245.18 | 31.71 | 7.73 | 29.16 | 8.40 | -| <32, 1, 64> | 521.13 | 65.71 | 7.93 | 64.31 | 8.10 | -| <32, 1, 128> | 968.92 | 149.11 | 6.49 | 149.72 | 6.47 | -| <32, 4, 32> | 290.96 | 67.00 | 4.34 | 66.66 | 4.36 | -| <32, 4, 64> | 662.04 | 147.43 | 4.49 | 155.35 | 4.26 | -| <32, 4, 128> | 1445.38 | 352.77 | 4.09 | 382.38 | 3.77 | -| <64, 1, 32> | 267.80 | 42.61 | 6.28 | 42.18 | 6.34 | -| <64, 1, 64> | 573.75 | 93.68 | 6.12 | 94.01 | 6.10 | -| <64, 1, 128> | 1204.28 | 217.32 | 5.54 | 228.94 | 5.26 | -| <64, 4, 32> | 369.10 | 113.17 | 3.26 | 114.41 | 3.22 | -| <64, 4, 64> | 811.20 | 251.04 | 3.23 | 265.57 | 3.05 | -| <64, 4, 128> | 1896.34 | 615.58 | 3.08 | 687.73 | 2.75 | -| <128, 1, 32> | 300.77 | 67.01 | 4.48 | 66.01 | 4.55 | -| <128, 1, 64> | 619.74 | 150.08 | 4.12 | 151.31 | 4.09 | -| <128, 1, 128> | 1406.48 | 356.22 | 3.94 | 387.80 | 3.62 | -| <128, 4, 32> | 497.61 | 202.93 | 2.45 | 207.86 | 2.39 | -| <128, 4, 64> | 1194.74 | 463.58 | 2.57 | 496.50 | 2.40 | -| <128, 4, 128> | 3068.19 | 1135.37 | 2.70 | 1259.20 | 2.43 | - -* Performance of FP16 - -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | FT-CPP (ms) | FT-CPP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:|:-----------:|:--------------:| -| <1, 1, 32> | 179.29 | 22.79 | 7.86 | 19.90 | 9.00 | -| <1, 1, 64> | 424.71 | 46.31 | 9.17 | 42.07 | 10.09 | -| <1, 1, 128> | 800.49 | 106.68 | 7.50 | 102.70 | 7.79 | -| <1, 4, 32> | 215.21 | 22.99 | 9.36 | 20.42 | 10.53 | -| <1, 4, 64> | 426.36 | 47.33 | 9.00 | 42.67 | 9.99 | -| <1, 4, 128> | 842.32 | 105.93 | 7.95 | 105.07 | 8.01 | -| <8, 1, 32> | 218.83 | 22.45 | 9.74 | 20.29 | 10.78 | -| <8, 1, 64> | 429.64 | 46.16 | 9.30 | 42.66 | 10.07 | -| <8, 1, 128> | 827.80 | 96.64 | 8.56 | 94.76 | 8.73 | -| <8, 4, 32> | 228.45 | 25.30 | 9.02 | 23.36 | 9.77 | -| <8, 4, 64> | 434.26 | 51.36 | 8.45 | 49.95 | 8.69 | -| <8, 4, 128> | 879.69 | 113.05 | 7.78 | 115.80 | 7.59 | -| <32, 1, 32> | 224.73 | 25.34 | 8.86 | 23.12 | 9.72 | -| <32, 1, 64> | 447.28 | 51.98 | 8.60 | 50.01 | 8.94 | -| <32, 1, 128> | 887.31 | 114.14 | 7.77 | 114.74 | 7.73 | -| <32, 4, 32> | 249.40 | 43.55 | 5.72 | 43.17 | 5.77 | -| <32, 4, 64> | 549.04 | 96.69 | 5.67 | 101.74 | 5.39 | -| <32, 4, 128> | 1182.18 | 225.50 | 5.24 | 248.09 | 4.76 | -| <64, 1, 32> | 227.12 | 30.99 | 7.32 | 29.93 | 7.58 | -| <64, 1, 64> | 494.82 | 67.05 | 7.37 | 67.49 | 7.33 | -| <64, 1, 128> | 1000.46 | 154.54 | 6.47 | 160.94 | 6.21 | -| <64, 4, 32> | 304.52 | 68.84 | 4.42 | 69.72 | 4.36 | -| <64, 4, 64> | 666.90 | 154.89 | 4.30 | 164.80 | 4.04 | -| <64, 4, 128> | 1494.30 | 373.57 | 4.00 | 425.44 | 3.51 | -| <128, 1, 32> | 252.69 | 43.08 | 5.86 | 42.74 | 5.91 | -| <128, 1, 64> | 535.56 | 93.53 | 5.72 | 97.05 | 5.51 | -| <128, 1, 128> | 1134.44 | 225.94 | 5.02 | 245.81 | 4.61 | -| <128, 4, 32> | 410.80 | 114.56 | 3.58 | 118.16 | 3.47 | -| <128, 4, 64> | 934.86 | 263.50 | 3.54 | 283.36 | 3.29 | -| <128, 4, 128> | 2236.95 | 653.69 | 3.42 | 746.66 | 2.99 | +We demonstrate the throughput of PyTorch, FT Decoder and FT Decoding for end to end translation. Here, PyTorch means that the program fully runs on PyTorch. FT Decoder means that we replace the decoder transformer layer by FasterTransformer. FT Decoding means that we replace the whole procedure of decoder by FasterTransformer. - +This benchmark were obtained by running the `../sample/pytorch/scripts/profile_decoder_decoding.sh`. -#### Decoder and decoding performance on T4 and PyTorch +In this benchmark, we updated the following parameters: -* Performance on FP32 +* head_num = 8 for both encoder and decoder +* size_per_head = 64 for both encoder and decoder +* num_layers = 6 for both encoder and decoder +* vocabulary_size = 31538 +* max_seq_len = 128 -| | PyTorch (ms) | Decoder (ms) | Decoding (ms) | Decoder Speedup | Decoding Speedup | -|:-----------------------:|:------:|:------:|:------:|:---------:|:---------:| -| <1, 32, 1> | 484.75 | 144.20 | 29.08 | 3.36 | 16.66 | -| <1, 64, 1> | 964.91 | 295.16 | 57.97 | 3.26 | 16.64 | -| <1, 128, 1> | 2482.00 | 716.21 | 118.97 | 3.46 | 20.86 | -| <8, 32, 1> | 640.09 | 198.37 | 41.27 | 3.22 | 15.50 | -| <8, 64, 1> | 1026.29 | 326.66 | 86.32 | 3.14 | 11.88 | -| <8, 128, 1> | 2077.31 | 683.36 | 180.75 | 3.03 | 11.49 | -| <32, 32, 1> | 539.02 | 182.05 | 55.35 | 2.96 | 9.73 | -| <32, 64, 1> | 1060.14 | 368.43 | 121.32 | 2.87 | 8.73 | -| <32, 128, 1> | 2198.63 | 822.78 | 294.63 | 2.67 | 7.46 | -| <64, 32, 1> | 544.38 | 216.06 | 87.28 | 2.51 | 6.23 | -| <64, 64, 1> | 1359.49 | 483.68 | 196.35 | 2.81 | 6.92 | -| <64, 128, 1> | 2409.26 | 1239.34 | 487.91 | 1.94 | 4.93 | -| <128, 32, 1> | 705.29 | 321.99 | 157.30 | 2.19 | 4.48 | -| <128, 64, 1> | 1490.15 | 765.70 | 359.43 | 1.94 | 4.14 | -| <128, 128, 1> | 3328.75 | 2032.92 | 900.86 | 1.63 | 3.69 | -| <1, 32, 4> | 519.91 | 170.90 | 37.49 | 3.04 | 13.86 | -| <1, 64, 4> | 1022.17 | 329.85 | 75.47 | 3.09 | 13.54 | -| <1, 128, 4> | 2087.35 | 654.85 | 156.97 | 3.18 | 13.29 | -| <8, 32, 4> | 653.81 | 212.86 | 55.83 | 3.07 | 11.71 | -| <8, 64, 4> | 1056.50 | 363.22 | 121.80 | 2.90 | 8.67 | -| <8, 128, 4> | 2187.94 | 842.20 | 298.90 | 2.59 | 7.31 | -| <32, 32, 4> | 588.74 | 320.21 | 160.45 | 1.83 | 3.66 | -| <32, 64, 4> | 1280.28 | 773.54 | 363.31 | 1.65 | 3.52 | -| <32, 128, 4> | 2869.27 | 2116.43 | 916.30 | 1.35 | 3.13 | -| <64, 32, 4> | 694.86 | 530.53 | 297.42 | 1.30 | 2.33 | -| <64, 64, 4> | 1777.26 | 1331.30 | 687.77 | 1.33 | 2.58 | -| <64, 128, 4> | 4769.54 | 3960.06 | 1740.75 | 1.20 | 2.73 | -| <128, 32, 4> | 990.83 | 975.95 | 576.75 | 1.01 | 1.71 | -| <128, 64, 4> | 2794.30 | 2610.29 | 1310.25 | 1.07 | 2.13 | +#### Beamsearch performance on V100 and PyTorch -* Performance on FP16 +* Perofrmance on FP32 -| | PyTorch (ms) | Decoder (ms) | Decoding (ms) | Decoder Speedup | Decoding Speedup | -|:-----------------------:|:------:|:------:|:------:|:---------:|:---------:| -| <1, 32, 1> | 636.17 | 187.04 | 28.32 | 3.40 | 22.46 | -| <1, 64, 1> | 1030.81 | 313.46 | 53.82 | 3.28 | 19.15 | -| <1, 128, 1> | 2029.57 | 612.47 | 121.08 | 3.31 | 16.76 | -| <8, 32, 1> | 546.08 | 163.20 | 34.43 | 3.34 | 15.86 | -| <8, 64, 1> | 1112.37 | 315.34 | 73.64 | 3.52 | 15.10 | -| <8, 128, 1> | 2237.78 | 638.65 | 160.04 | 3.50 | 13.98 | -| <32, 32, 1> | 546.68 | 171.72 | 40.91 | 3.18 | 13.36 | -| <32, 64, 1> | 1374.25 | 342.27 | 89.34 | 4.01 | 15.38 | -| <32, 128, 1> | 2219.99 | 712.94 | 206.78 | 3.11 | 10.73 | -| <64, 32, 1> | 557.29 | 196.28 | 60.96 | 2.83 | 9.14 | -| <64, 64, 1> | 1127.56 | 423.53 | 133.64 | 2.66 | 8.43 | -| <64, 128, 1> | 2431.01 | 1024.73 | 324.01 | 2.37 | 7.50 | -| <128, 32, 1> | 604.19 | 260.15 | 100.36 | 2.32 | 6.02 | -| <128, 64, 1> | 1252.95 | 594.85 | 228.57 | 2.10 | 5.48 | -| <128, 128, 1> | 2727.85 | 1526.56 | 567.00 | 1.78 | 4.81 | -| <1, 32, 4> | 568.26 | 165.05 | 33.89 | 3.44 | 16.76 | -| <1, 64, 4> | 1099.60 | 321.63 | 68.78 | 3.41 | 15.98 | -| <1, 128, 4> | 2177.06 | 630.75 | 146.24 | 3.45 | 14.88 | -| <8, 32, 4> | 558.22 | 173.52 | 41.02 | 3.21 | 13.60 | -| <8, 64, 4> | 1105.78 | 343.64 | 88.14 | 3.21 | 12.54 | -| <8, 128, 4> | 2240.45 | 728.21 | 205.81 | 3.07 | 10.88 | -| <32, 32, 4> | 606.68 | 267.60 | 104.44 | 2.26 | 5.80 | -| <32, 64, 4> | 1254.07 | 606.08 | 237.79 | 2.06 | 5.27 | -| <32, 128, 4> | 2741.17 | 1553.44 | 580.81 | 1.76 | 4.71 | -| <64, 32, 4> | 669.47 | 399.96 | 192.19 | 1.67 | 3.48 | -| <64, 64, 4> | 1424.02 | 966.43 | 436.73 | 1.47 | 3.26 | -| <64, 128, 4> | 3638.59 | 2843.25 | 1091.42 | 1.27 | 3.33 | -| <128, 32, 4> | 968.40 | 690.89 | 369.87 | 1.40 | 2.61 | -| <128, 64, 4> | 2087.75 | 1808.63 | 838.92 | 1.15 | 2.48 | -| <128, 128, 4> | 6735.41 | 5440.68 | 2082.84 | 1.23 | 3.23 | - -#### Decoder and decoding performance on V100 and PyTorch +| Batch Size | Beam Width | Precision | PyTorch
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:------------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP32 | 92 | 277 | 699 | 3.00 | 7.56 | +| 1 | 4 | FP32 | 80 | 226 | 703 | 2.82 | 8.76 | +| 1 | 32 | FP32 | 69 | 217 | 471 | 3.12 | 6.76 | +| 8 | 1 | FP32 | 385 | 1232 | 3225 | 3.20 | 8.37 | +| 8 | 4 | FP32 | 352 | 1121 | 2756 | 3.18 | 7.81 | +| 8 | 32 | FP32 | 262 | 465 | 950 | 1.77 | 3.62 | +| 128 | 1 | FP32 | 2968 | 6213 | 12848 | 2.09 | 4.32 | +| 128 | 4 | FP32 | 1953 | 2447 | 6759 | 1.25 | 3.46 | -* Performance on FP32 +* Performance on FP16 -| | PyTorch (ms) | Decoder (ms) | Decoding (ms) | Decoder Speedup | Decoding Speedup | -|:-----------------------:|:------:|:------:|:------:|:---------:|:---------:| -| <1, 32, 1> | 353.90 | 103.39 | 19.72 | 3.42 | 17.94 | -| <1, 64, 1> | 698.88 | 212.27 | 40.61 | 3.29 | 17.20 | -| <1, 128, 1> | 1449.20 | 441.20 | 79.19 | 3.28 | 18.30 | -| <8, 32, 1> | 439.07 | 139.12 | 27.43 | 3.15 | 16.00 | -| <8, 64, 1> | 761.94 | 237.07 | 55.40 | 3.21 | 13.75 | -| <8, 128, 1> | 1731.31 | 535.99 | 117.83 | 3.23 | 14.69 | -| <32, 32, 1> | 373.02 | 124.94 | 30.53 | 2.98 | 12.21 | -| <32, 64, 1> | 771.97 | 250.84 | 66.12 | 3.07 | 11.67 | -| <32, 128, 1> | 1563.37 | 527.23 | 147.27 | 2.96 | 10.61 | -| <64, 32, 1> | 391.65 | 166.63 | 43.54 | 2.35 | 8.99 | -| <64, 64, 1> | 763.75 | 347.91 | 95.53 | 2.19 | 7.99 | -| <64, 128, 1> | 1626.91 | 734.35 | 225.06 | 2.21 | 7.22 | -| <128, 32, 1> | 399.32 | 205.76 | 65.84 | 1.94 | 6.06 | -| <128, 64, 1> | 845.62 | 428.30 | 147.87 | 1.97 | 5.71 | -| <128, 128, 1> | 1780.45 | 1061.66 | 362.33 | 1.67 | 4.91 | -| <1, 32, 4> | 361.21 | 113.60 | 29.08 | 3.17 | 12.42 | -| <1, 64, 4> | 733.17 | 220.84 | 52.21 | 3.31 | 14.04 | -| <1, 128, 4> | 1489.75 | 467.02 | 125.59 | 3.18 | 11.86 | -| <8, 32, 4> | 382.98 | 124.76 | 30.43 | 3.06 | 12.58 | -| <8, 64, 4> | 768.14 | 248.43 | 64.50 | 3.09 | 11.90 | -| <8, 128, 4> | 1535.88 | 532.08 | 149.88 | 2.88 | 10.24 | -| <32, 32, 4> | 401.86 | 196.38 | 69.34 | 2.04 | 5.79 | -| <32, 64, 4> | 842.37 | 435.26 | 151.97 | 1.93 | 5.54 | -| <32, 128, 4> | 1758.36 | 1076.28 | 367.99 | 1.63 | 4.77 | -| <64, 32, 4> | 433.80 | 283.74 | 114.21 | 1.52 | 3.79 | -| <64, 64, 4> | 955.72 | 698.55 | 256.37 | 1.36 | 3.72 | -| <64, 128, 4> | 2137.94 | 1777.37 | 642.46 | 1.20 | 3.32 | -| <128, 32, 4> | 510.07 | 456.99 | 213.86 | 1.11 | 2.38 | -| <128, 64, 4> | 1140.04 | 1192.74 | 485.95 | .95 | 2.34 | +| Batch Size | Beam Width | Precision | PyTorch
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:------------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP16 | 78 | 267 | 967 | 3.40 | 12.39 | +| 1 | 4 | FP16 | 76 | 251 | 868 | 3.29 | 11.39 | +| 1 | 32 | FP16 | 70 | 217 | 635 | 3.10 | 9.07 | +| 8 | 1 | FP16 | 357 | 1242 | 4508 | 3.47 | 12.61 | +| 8 | 4 | FP16 | 336 | 886 | 3769 | 2.63 | 11.20 | +| 8 | 32 | FP16 | 265 | 575 | 1454 | 2.17 | 5.48 | +| 128 | 1 | FP16 | 3193 | 7396 | 19264 | 2.31 | 6.03 | +| 128 | 4 | FP16 | 2141 | 3141 | 12609 | 1.46 | 5.88 | + + +#### Beamsearch performance on T4 and PyTorch + +* Perofrmance on FP32 + +| Batch Size | Beam Width | Precision | PyTorch
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:------------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP32 | 62 | 179 | 566 | 2.85 | 8.99 | +| 1 | 4 | FP32 | 56 | 158 | 535 | 2.79 | 9.46 | +| 1 | 32 | FP32 | 47 | 144 | 312 | 3.06 | 6.62 | +| 8 | 1 | FP32 | 259 | 764 | 2418 | 2.94 | 9.30 | +| 8 | 4 | FP32 | 239 | 711 | 1914 | 2.97 | 7.99 | +| 8 | 32 | FP32 | 140 | 183 | 358 | 1.30 | 2.54 | +| 128 | 1 | FP32 | 1803 | 2885 | 6400 | 1.60 | 3.54 | +| 128 | 4 | FP32 | 690 | 836 | 2519 | 1.21 | 3.64 | * Performance on FP16 -| | PyTorch (ms) | Decoder (ms) | Decoding (ms) | Decoder Speedup | Decoding Speedup | -|:-----------------------:|:------:|:------:|:------:|:---------:|:---------:| -| <1, 32, 1> | 364.93 | 104.67 | 23.59 | 3.48 | 15.46 | -| <1, 64, 1> | 730.63 | 219.29 | 48.02 | 3.33 | 15.21 | -| <1, 128, 1> | 1448.80 | 435.08 | 90.06 | 3.32 | 16.08 | -| <8, 32, 1> | 396.70 | 113.47 | 28.43 | 3.49 | 13.95 | -| <8, 64, 1> | 766.96 | 213.44 | 58.41 | 3.59 | 13.13 | -| <8, 128, 1> | 1508.97 | 430.11 | 123.92 | 3.50 | 12.17 | -| <32, 32, 1> | 380.00 | 113.32 | 30.81 | 3.35 | 12.33 | -| <32, 64, 1> | 755.43 | 230.70 | 56.28 | 3.27 | 13.42 | -| <32, 128, 1> | 1592.17 | 481.88 | 140.00 | 3.30 | 11.37 | -| <64, 32, 1> | 385.02 | 150.23 | 36.38 | 2.56 | 10.58 | -| <64, 64, 1> | 1006.94 | 352.55 | 77.56 | 2.85 | 12.98 | -| <64, 128, 1> | 1647.93 | 669.11 | 174.38 | 2.46 | 9.45 | -| <128, 32, 1> | 393.47 | 172.10 | 49.39 | 2.28 | 7.96 | -| <128, 64, 1> | 846.32 | 371.34 | 109.92 | 2.27 | 7.69 | -| <128, 128, 1> | 1812.89 | 892.29 | 260.72 | 2.03 | 6.95 | -| <1, 32, 4> | 403.72 | 111.89 | 28.33 | 3.60 | 14.25 | -| <1, 64, 4> | 758.80 | 215.31 | 58.97 | 3.52 | 12.86 | -| <1, 128, 4> | 1565.94 | 431.89 | 113.51 | 3.62 | 13.79 | -| <8, 32, 4> | 388.91 | 117.17 | 31.56 | 3.31 | 12.32 | -| <8, 64, 4> | 768.24 | 232.11 | 61.85 | 3.30 | 12.42 | -| <8, 128, 4> | 1618.71 | 497.68 | 136.25 | 3.25 | 11.88 | -| <32, 32, 4> | 415.84 | 183.10 | 51.08 | 2.27 | 8.14 | -| <32, 64, 4> | 874.10 | 390.93 | 112.19 | 2.23 | 7.79 | -| <32, 128, 4> | 1806.96 | 876.53 | 255.26 | 2.06 | 7.07 | -| <64, 32, 4> | 453.94 | 234.66 | 84.20 | 1.93 | 5.39 | -| <64, 64, 4> | 948.13 | 517.52 | 185.68 | 1.83 | 5.10 | -| <64, 128, 4> | 2071.99 | 1333.14 | 446.57 | 1.55 | 4.63 | -| <128, 32, 4> | 486.71 | 349.62 | 146.36 | 1.39 | 3.32 | -| <128, 64, 4> | 1084.80 | 808.79 | 330.19 | 1.34 | 3.28 | -| <128, 128, 4> | 2638.70 | 2248.28 | 800.58 | 1.17 | 3.29 | - -#### TensorFlow performance on translation - -We test with batch_size 128, beam width 4 on V100. - -| Type | tokens per seconds | BLEU | -|:----:|:------------------:|:----:| -| TensorFlow, beam search, FP32 | 2137 | BLEU 26.29 | -| Decoder, beam search, FP32 | 6473 | BLEU 26.29 | -| Decoding, beam search, FP32 | 8513 | BLEU 26.31 | -| TensorFlow, sampling, FP32 | 4178 | BLEU 25.79 | -| Decoder, sampling, FP32 | 10781 | BLEU 25.79 | -| Decoding, sampling, FP32 | 16524 | BLEU 25.79 | -| TensorFlow, beam search, FP16 | 2949 | BLEU 26.31 | -| Decoder, beam search, FP16 | 8682 | BLEU 26.30 | -| Decoding, beam search, FP16 | 12746 | BLEU 26.33 | -| TensorFlow, sampling, FP16 | 6968 | BLEU 25.83 | -| Decoder, sampling, FP16 | 13773 | BLEU 25.80 | -| Decoding, sampling, FP16 | 26718 | BLEU 25.82 | - -#### PyTorch performance on translation - -batch size 128, beam width 4, max_seq_len 32, beam search algorithm on V100: - -| Type | tokens per seconds | BLEU | -|:----:|:------------------:|:----:| -| PyTorch, FP32 | 2462 | BLEU 24.1 | -| Decoder, FP32 | 3358 | BLEU 24.1 | -| Decoding, FP32 | 8959 | BLEU 24.1 | -| PyTorch, FP16 | 4019 | BLEU 24.1 | -| Decoder, FP16 | 4377 | BLEU 24.1 | -| Decoding, FP16 | 15048 | BLEU 24.1 | - -#### GPT-2 performance on V100 and TensorFlow - -* Performance on 124M GPT-2 model, top 1 sampling - -We use the source codes of [here](https://github.com/openai/gpt-2) as the baseline, and compare to FasterTransformer TensorFlow OP and CPP under FP16. - -| | TF (ms) | FT-OP (ms) | FT-OP Speedup | FT-CPP (ms) | FT-CPP Speedup | -|:---------------------------------:|:-------:|:----------:|:-------------:|:-----------:|:--------------:| -| <1, 128> | 1887.46 | 171.04 | 11.03 | 151.12 | 12.49 | -| <1, 1024> | 15734.21 | 1676.85 | 9.38 | 1651.21 | 9.53 | -| <8, 128> | 1756.14 | 180.87 | 9.71 | 173.97 | 10.09 | -| <8, 1024> | 17227.00 | 1917.78 | 8.98 | 1906.97 | 9.03 | -| <32, 128> | 2275.04 | 214.84 | 10.59 | 204.82 | 11.11 | -| <32, 1024> | 31674.81 | 2462.69 | 12.86 | 2440.94 | 12.98 | +| Batch Size | Beam Width | Precision | PyTorch
Throughput (token/sec) | FT Decoder
Throughput (token/sec) | FT Decoding
Throughput (token/sec) | FT Decoder
Speedup | FT Decoding
Speedup | +|:----------:|:----------:|:---------:|:------------------------------------:|:---------------------------------------:|:----------------------------------------:|:------------------------:|:-------------------------:| +| 1 | 1 | FP16 | 60 | 176 | 774 | 2.93 | 12.81 | +| 1 | 4 | FP16 | 55 | 170 | 699 | 3.08 | 12.68 | +| 1 | 32 | FP16 | 46 | 147 | 468 | 3.17 | 10.06 | +| 8 | 1 | FP16 | 254 | 832 | 3389 | 3.27 | 13.32 | +| 8 | 4 | FP16 | 237 | 759 | 2981 | 3.19 | 12.53 | +| 8 | 32 | FP16 | 164 | 256 | 636 | 1.56 | 3.87 | +| 128 | 1 | FP16 | 2035 | 4000 | 10836 | 1.96 | 5.32 | +| 128 | 4 | FP16 | 977 | 1192 | 6369 | 1.21 | 6.51 | + diff --git a/docs/encoder_guide.md b/docs/encoder_guide.md index ad7dffa61..c0dba089b 100644 --- a/docs/encoder_guide.md +++ b/docs/encoder_guide.md @@ -14,14 +14,14 @@ The FasterTransformer Encoder contains the optimized BERT model, Effective Faste - [Encoder process](#encoder-process) - [Performance](#performance) - [Encoder performance](#encoder-performance) - - [Encoder performance on T4 and cpp](#encoder-performance-on-t4-and-cpp) + - [Encoder performance on A100 and TensorFlow](#encoder-performance-on-a100-and-tensorflow) - [Encoder performance on T4 and TensorFlow](#encoder-performance-on-t4-and-tensorflow) - [Encoder performance on V100 and TensorFlow](#encoder-performance-on-v100-and-tensorflow) + - [Encoder performance comparison between T4, V100, A100 and A100 with MIG mode on TensorFlow](#encoder-performance-comparison-between-t4-v100-a100-and-a100-with-mig-mode-on-tensorflow) + - [Encoder performance comparison between different features on T4 and TensorFlow](#encoder-performance-comparison-between-different-features-on-t4-and-tensorflow) + - [Encoder performance on A100 and PyTorch](#encoder-performance-on-a100-and-pytorch) - [Encoder performance on T4 and PyTorch](#encoder-performance-on-t4-and-pytorch) - [Encoder performance on V100 and PyTorch](#encoder-performance-on-v100-and-pytorch) - - [Effective FasterTransformer performance](#effective-fastertransformer-performance) - - [Performance on TensorFlow](#performance-on-tensorflow) - - [Effective FasterTransformer performance on PyTorch](#effective-fastertransformer-performance-on-pytorch) - [Performance on BERT Applications: SQuAD MRPC](#performance-on-bert-applications-squad-mrpc) - [Performance of TensorFlow](#performance-of-tensorflow) - [Performance of PyTorch](#performance-of-pytorch) @@ -32,7 +32,7 @@ The FasterTransformer Encoder contains the optimized BERT model, Effective Faste The following configurations are supported in the FasterTransformer encoder. - Batch size (B1): smaller or equal to 4096 -- Sequence length (S): smaller or equal to 1024. For INT8 data type, sequence length should be a multiple of 32. +- Sequence length (S): smaller or equal to 1024. For INT8 mode=1, S should be a multiple of 32 when S > 384. - Head number (H) and size per head (N): - 16 heads * 64 per heads - 12 heads * 64 per heads @@ -41,7 +41,7 @@ The following configurations are supported in the FasterTransformer encoder. - Data type: FP32, FP16 and INT8 - Any number layer (N1) if the memory is enough -In the FasterTransformer v1.0, we provide a highly optimized BERT-equivalent encoder model. Next, based on the idea of [Effective Transformer](https://github.com/bytedance/effective_transformer), we further optimize BERT inference by removing the useless padding in FasterTransformer v2.1 and provide the Effective FasterTransformer. In FasterTransformer v3.0, we provide INT8 quantization inference to get better performance. In FasterTransformer v3.1, we optimize the INT8 kernels to improve the performance of INT8 inference, and integrate the multi-head attention of TensorRT plugin into FasterTransformer. The following graph demonstrates the flow chart of these optimization, except INT8. +In the FasterTransformer v1.0, we provide a highly optimized BERT-equivalent encoder model. Next, based on the idea of [Effective Transformer](https://github.com/bytedance/effective_transformer), we further optimize BERT inference by removing the useless padding in FasterTransformer v2.1 and provide the Effective FasterTransformer. In FasterTransformer v3.0, we provide INT8 quantization inference to get better performance. In FasterTransformer v3.1, we optimize the INT8 kernels to improve the performance of INT8 inference, and integrate the multi-head attention of TensorRT plugin into FasterTransformer. In FasterTransformer v4.0, we add the multi-head attention kernel to support FP16 on V100 and INT8 on T4, A100. The following graph demonstrates the flow chart of these optimization, except INT8.
Fig. 1 Flowchart of encoder.
@@ -83,7 +83,7 @@ Note that S2 means that the total sequence length after removing padd Besides, notice that the multi-head attention kernel from TensorRT is powerful but have some limitation. First, this kernel requires Turing or new GPU and the size per head must be 64. When the conditions are not satisfied, we use original multi-head attention implementation of FasterTransformer. Second, it requires an additional sequence length offset as we describe above. When the input has padding, the shape of the sequence length offset is \[2 x B1 + 1 \]. Assume there are there sentences with sequence length s1, s2 and s3, and the sequence length after padding is S. Then the sequence length offset is \[0, s1, S, s2 + S, 2 x S, 2 x S + s3, 3 x S\]. On the other hand, when we remove the padding, the shape of the sequence length offset is \[B1 + 1\], and the sequence length offset is \[0, s1, s1 + s2, s1 + s2 + s3 \]. Namely, the sequence length offset records the sequence length for each sentence. When we have padding, we view the padding as some independent sentences. -In FasterTransformer v3.1, we implement two pipelines of INT8 inference, as shown in Fig. 3.. For int8_mode == 1 (int8v1), we don't quantize residual connection, use int32 as the output of int8 gemms and use per-channel quantization for weights. For int8_mode == 2 (int8v2), we quantize residual connection, use int8 as the output of int8 gemms and use per-tensor quantization for weights. Generally speaking, int8_mode == 1 will have higher accuracy while int8_mode == 2 will have better performance. +In FasterTransformer v4.0, we implement two pipelines of INT8 inference, as shown in Fig. 3.. For int8_mode == 1 (int8v1), we don't quantize residual connection, use int32 as the output of int8 gemms and use per-channel quantization for weights. For int8_mode == 2 (int8v2), we quantize residual connection, use int8 as the output of int8 gemms and use per-tensor quantization for weights. Generally speaking, int8_mode == 1 will have higher accuracy while int8_mode == 2 will have better performance.
Fig. 3 Workflow of int8 inference.
@@ -107,7 +107,6 @@ The following section lists the requirements to use FasterTransformer Encoder. - Python 3 is recommended because some features are not supported in python 2 - Tensorflow 1.13 or 1.14 or 1.15 - PyTorch >= 1.4.0 -- TensorRT 5 or newer version These components are readily available within the NGC TensorFlow/PyTorch Docker image below. @@ -238,15 +237,17 @@ For those unable to use the NGC container, to set up the required environment or ```bash #For int8_mode == 1 Device Tesla T4 + Device Tesla T4 before allocate free 14.64 GB total 14.76 GB After allocate free 14.62 GB used 0.13 GB total 14.76 GB - [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 8.14 ms + [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 7.49 ms ( 50 iterations) #For int8_mode == 2 Device Tesla T4 + Device Tesla T4 before allocate free 14.64 GB total 14.76 GB After allocate free 14.62 GB used 0.13 GB total 14.76 GB - [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 5.52 ms + [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 4.79 ms ( 50 iterations) ``` 1.5 Run Effective FasterTransformer under FP32 on C++ @@ -286,16 +287,18 @@ For those unable to use the NGC container, to set up the required environment or ```bash #For int8_mode == 1 Device Tesla T4 + Device Tesla T4 before allocate free 14.64 GB total 14.76 GB After allocate free 14.62 GB used 0.14 GB total 14.76 GB - [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 4.81 ms + [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 4.06 ms ( 50 iterations) #For int8_mode == 2 Device Tesla T4 + Device Tesla T4 before allocate free 14.64 GB total 14.76 GB After allocate free 14.62 GB used 0.14 GB total 14.76 GB - [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 3.49 ms + [INFO] batch_size 32 seq_len 32 layer 12 FT-CPP-time 2.69 ms ( 50 iterations) ``` 2. Run FasterTransformer on TensorFlow (on T4 GPU) @@ -354,7 +357,7 @@ For those unable to use the NGC container, to set up the required environment or [INFO] batch_size 32 max_seq_len 32 12 layer FT-OP-tensor-time 10.13 ms ``` - 2.3 Run FasterTransformer encoder under INT8 on TensorFlow + 2.3 Run FasterTransformer and Effective FasterTransformer encoder under INT8 on TensorFlow To use the INT8 in TensorFlow, we only need to set the `--int8_mode 1` or `--int8_mode 2` like following: @@ -391,17 +394,25 @@ For those unable to use the NGC container, to set up the required environment or ```bash #For int8_mode == 1 [INFO] Encoder TF v.s. FT with tensor input Cross check False - [INFO] Max diff 4.1328125 + [INFO] Max diff 4.19140625 + [INFO] min diff 0.0 + [INFO] Encoder TF v.s. EFF-FT with tensor input Cross check False + [INFO] Max diff 4.19140625 [INFO] min diff 0.0 - [INFO] batch_size 32 max_seq_len 32 12 layer TF-time 14.01 ms - [INFO] batch_size 32 max_seq_len 32 12 layer FT-OP-tensor-time 9.85 ms + [INFO] batch_size 32 max_seq_len 32 precision FP16 12 layer TF-while-time 12.64 ms ( 50 iterations) + [INFO] batch_size 32 max_seq_len 32 precision INT8-v1 12 layer FT-OP-while-time 7.68 ms ( 50 iterations) + [INFO] batch_size 32 max_seq_len 32 precision INT8-v1 12 layer EFF-OP-while-time 4.34 ms ( 50 iterations) #For int8_mode == 2 [INFO] Encoder TF v.s. FT with tensor input Cross check False [INFO] Max diff 6.06640625 [INFO] min diff 0.0 - [INFO] batch_size 32 max_seq_len 32 12 layer TF-time 14.01 ms - [INFO] batch_size 32 max_seq_len 32 12 layer FT-OP-tensor-time 7.55 ms + [INFO] Encoder TF v.s. EFF-FT with tensor input Cross check False + [INFO] Max diff 6.06640625 + [INFO] min diff 0.0 + [INFO] batch_size 32 max_seq_len 32 precision FP16 12 layer TF-while-time 12.47 ms ( 50 iterations) + [INFO] batch_size 32 max_seq_len 32 precision INT8-v2 12 layer FT-OP-while-time 4.94 ms ( 50 iterations) + [INFO] batch_size 32 max_seq_len 32 precision INT8-v2 12 layer EFF-OP-while-time 2.93 ms ( 50 iterations) ``` Note: since we do not use the correct scales for quantization in this test, the Cross Check between TF and FT should fail. @@ -435,61 +446,6 @@ For those unable to use the NGC container, to set up the required environment or [INFO] batch_size 32 max_seq_len 32 12 layer FT-OP-tensor-time 24.17 ms ``` - 2.5 Run Effective FasterTransformer under INT8 on TensorFlow - - To use the Effective FasterTransformer under INT8, we only need to set the `--remove_padding True` and `--int8_mode 1`/`--int8_mode 2` like following: - - ```bash - #For int8_mode == 1 - ./bin/encoder_gemm 32 32 12 64 1 1 - python tensorflow/encoder_sample.py \ - --batch_size 32 \ - --max_seq_len 32 \ - --head_number 12 \ - --size_per_head 64 \ - --num_layer 12 \ - --data_type fp16 \ - --test_time 1 \ - --remove_padding True \ - --avg_seq_len 16 \ - --int8_mode 1 \ - --allow_gemm_test False - - #For int8_mode == 2 - ./bin/encoder_gemm 32 32 12 64 1 2 - python tensorflow/encoder_sample.py \ - --batch_size 32 \ - --max_seq_len 32 \ - --head_number 12 \ - --size_per_head 64 \ - --num_layer 12 \ - --data_type fp16 \ - --test_time 1 \ - --remove_padding True \ - --avg_seq_len 16 \ - --int8_mode 2 \ - --allow_gemm_test False - ``` - - The outputs should be like to the following: - - ```bash - #For int8_mode == 1 - [INFO] Encoder TF v.s. FT with tensor input Cross check False - [INFO] Max diff 4.1328125 - [INFO] min diff 0.0 - [INFO] batch_size 32 max_seq_len 32 12 layer TF-time 13.96 ms - [INFO] batch_size 32 max_seq_len 32 12 layer FT-OP-tensor-time 7.32 ms - - #For int8_mode == 2 - [INFO] Encoder TF v.s. FT with tensor input Cross check False - [INFO] Max diff 6.06640625 - [INFO] min diff 0.0 - [INFO] batch_size 32 max_seq_len 32 12 layer TF-time 13.94 ms - [INFO] batch_size 32 max_seq_len 32 12 layer FT-OP-tensor-time 6.15 ms - ``` - Note: since we do not use the correct scales for quantization in this test, the Cross Check between TF and FT should fail. - 2.6 Run FasterTransformer for GLUE dataset This subsection demonstrates how to integrate the FasterTransformer in TensorFlow, and evaluate the accuracy of FasterTransformer on GLUE dataset. To evaluate on GLUE dataset, it requires the repo of [BERT](https://github.com/google-research/bert). @@ -505,7 +461,7 @@ For those unable to use the NGC container, to set up the required environment or 2.6.2 Download the GLUE MRPC dataset. Note that the file `download_glue_data.py` can only executed under python3. ```bash - wget https://gist.githubusercontent.com/W4ngatang/60c2bdb54d156a41194446737ce03e2e/raw/17b8dd0d724281ed7c3b2aeeda662b92809aadd5/download_glue_data.py + wget https://gist.githubusercontent.com/W4ngatang/60c2bdb54d156a41194446737ce03e2e/raw/1502038877f6a88c225a34450793fbc3ea87eaba/download_glue_data.py python download_glue_data.py --tasks MRPC ``` @@ -787,19 +743,19 @@ For those unable to use the NGC container, to set up the required environment or 2.7.7 Evaluate the accuracy of FasterTransformer under INT8 - Please refer to the directory `bert-quantization\bert-tf-quantization` first for how to get a quantized model. In `section 2.7.7` and `section 2.7.8`, to keep consistent with the procedures described in `bert-quantization\bert-tf-quantization`, we use `https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-12_H-768_A-12.zip` as initial checkpoint with finetuned accuracy of == <89.55, 82.42>. + Please refer to the directory `bert-quantization\bert-tf-quantization` first for how to get a quantized model. In `section 2.7.7` and `section 2.7.8`, to keep consistent with the procedures described in `bert-quantization\bert-tf-quantization`, we use `https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-12_H-768_A-12.zip` as initial checkpoint with finetuned accuracy of == <89.57, 82.44>. - In `bert-tf-quantization`, we give detailed procedure of Post Training Quantization(PTQ), Quantization Aware Training (QAT) and QAT with Knowledge-distillation. Since they have the same inference procedure, we use QAT checkpoint to show how to evaluate the accuracy of FasterTransformer under INT8. + In `bert-tf-quantization`, we give detailed procedure of Post Training Quantization(PTQ), Quantization Aware Training (QAT) and QAT with Knowledge-distillation. Since they have the same inference procedure, we use QAT-KD checkpoint to show how to evaluate the accuracy of FasterTransformer under INT8. - Suppose we already fine-tuned a FP32 checkpoint using QAT with ft_mode == 2 as described in `bert-tf-quantization`. The path to checkpoint is `squad_model/QAT_mode_2/`. + Suppose we already fine-tuned a FP32 checkpoint using QAT-KD with int8_mode == 2 as described in `bert-tf-quantization`. The path to checkpoint is `squad_model/QAT_KD_mode_2/`. We first convert the checkpoint from FP32 to FP16 (this step is not nesseary, but it will give us a better performance) and then quantize the FP16 checkpoint using `tensorflow/tensorflow_bert/ckpt_quantization.py`. This file requires three arguments, the location of initial checkpoint, the location putting the quantized checkpoint and the int8_mode. ```bash - python tensorflow/tensorflow_bert/ckpt_type_convert.py --init_checkpoint=squad_model/QAT_mode_2/model.ckpt-5474 --fp16_checkpoint=squad_model/QAT_mode_2_fp16/model.ckpt + python tensorflow/tensorflow_bert/ckpt_type_convert.py --init_checkpoint=squad_model/QAT_KD_mode_2/model.ckpt-27374 --fp16_checkpoint=squad_model/QAT_KD_mode_2_fp16/model.ckpt - python tensorflow/tensorflow_bert/ckpt_quantization.py --init_checkpoint=squad_model/QAT_mode_2_fp16/model.ckpt --quantized_checkpoint=squad_model/QAT_mode_2_fp16_quantized/model.ckpt --int8_mode=2 + python tensorflow/tensorflow_bert/ckpt_quantization.py --init_checkpoint=squad_model/QAT_KD_mode_2_fp16/model.ckpt --quantized_checkpoint=squad_model/QAT_KD_mode_2_fp16_quantized/model.ckpt --int8_mode=2 ./bin/encoder_gemm 8 384 12 64 1 1 python tensorflow/tensorflow_bert/run_squad_wrap.py \ @@ -807,7 +763,7 @@ For those unable to use the NGC container, to set up the required environment or --predict_batch_size=8 \ --vocab_file=squad_model/vocab.txt \ --bert_config_file=squad_model/bert_config.json \ - --init_checkpoint=squad_model/QAT_mode_2_fp16_quantized/model.ckpt \ + --init_checkpoint=squad_model/QAT_KD_mode_2_fp16_quantized/model.ckpt \ --train_file=squad_data/train-v1.1.json \ --do_predict=True \ --predict_file=squad_data/dev-v1.1.json \ @@ -822,7 +778,7 @@ For those unable to use the NGC container, to set up the required environment or The results of TensorFlow would be like: ```bash - {"exact_match": 81.95837275307474, "f1": 89.2021841747768} + {"exact_match": 83.85052034058657, "f1": 90.46351799300075} ``` 2.7.8 Evaluate the accuracy of Effective FasterTransformer under INT8 @@ -836,7 +792,7 @@ For those unable to use the NGC container, to set up the required environment or --predict_batch_size=8 \ --vocab_file=squad_model/vocab.txt \ --bert_config_file=squad_model/bert_config.json \ - --init_checkpoint=squad_model/QAT_mode_2_fp16_quantized/model.ckpt \ + --init_checkpoint=squad_model/QAT_KD_mode_2_fp16_quantized/model.ckpt \ --train_file=squad_data/train-v1.1.json \ --do_predict=True \ --predict_file=squad_data/dev-v1.1.json \ @@ -852,7 +808,7 @@ For those unable to use the NGC container, to set up the required environment or The results of TensorFlow would be like: ```bash - {"exact_match": 81.95837275307474, "f1": 89.2021841747768} + {"exact_match": 83.85052034058657, "f1": 90.46351799300075} ``` 2.7.9 Compare the speed of BERT of TensorFlow and FasterTransformer under both FP32 and FP16. @@ -908,11 +864,11 @@ For those unable to use the NGC container, to set up the required environment or 3.2 Run the PyTorch encoder sample: ```bash - python pytorch/encoder_sample.py <--fp16> <--int8_mode 0/1/2> <--time> <--ths> <--remove_padding> <--allow_gemm_test> + python pytorch/encoder_sample.py <--fp16> <--int8_mode 0/1/2> <--time> <--remove_padding> <--allow_gemm_test> python pytorch/encoder_sample.py 1 12 32 12 64 --fp16 --time ``` - Remove `--fp16` for fp32 mode. `--int8_mode 1` or `--int8_mode 2` will use int8_mode 1 or 2 in FasterTransformer. `--ths` will run on TorchScript mode. `--remove_padding` will remove the padding of sentence and this brings speedups when the average of sequence length is smaller than the maximum sequence length. `--allow_gemm_test` will enable gemm test config during forward pass. + Remove `--fp16` for fp32 mode. `--int8_mode 1` or `--int8_mode 2` will use int8_mode 1 or 2 in FasterTransformer. `--remove_padding` will remove the padding of sentence and this brings speedups when the average of sequence length is smaller than the maximum sequence length. `--allow_gemm_test` will enable gemm test config during forward pass. The outputs should be like to the following: @@ -934,7 +890,6 @@ For those unable to use the NGC container, to set up the required environment or ``` the `` can be: - `ori`: original HuggingFace's BERT encoder - - `ext`: our PyTorch eager extension - `ths`: original HuggingFace's BERT encoder in TorchScript mode - `thsext`: our TorchScript custom class @@ -987,7 +942,7 @@ For those unable to use the NGC container, to set up the required environment or --cache_dir pytorch/bert_squad/models/ \ --max_seq_length 384 \ --per_gpu_eval_batch_size 8 \ - --model_type ext \ # or thsext, quantized model cannot run on original PyTorch codes (ori or ths) + --model_type thsext \ # quantized model cannot run on original PyTorch codes (ori or ths) --data_type fp16 \ --int8_mode 2 \ # or 1, should match with the quantized checkpoint --allow_gemm_test @@ -996,6 +951,7 @@ For those unable to use the NGC container, to set up the required environment or ## Performance Hardware settings: +* A100 (with mclk 1593MHz, pclk 1410MHz) with AMD EPYC 7742 64-Core Processor * T4 (with mclk 5000MHz, pclk 1590MHz) with Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz * V100 (with mclk 877MHz, pclk 1380MHz) with Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz (dgx-1 server) @@ -1009,9 +965,9 @@ apt-get install bc ### Encoder performance -We demonstrate the inference time of FasterTransformer in C++, TensorFlow and PyTorch, and compare to the performance on T4 and V100. +We demonstrate the inference time of FasterTransformer in C++, TensorFlow and PyTorch, and compare to the performance on A100, T4 and V100. -For the benchmark of TensorFlow, we compare the performance of TensorFlow with XLA (TF), the performance of TensorFlow with FasterTransformer OP (FT-OP) and the performance of FasterTransformer on C++ (TF-CPP), and show the speedup of FT-OP and FT-CPP compare to the TensorFlow. +For the benchmark of TensorFlow, we compare the performance of TensorFlow with XLA (TF), the performance of TensorFlow with FasterTransformer OP (FT) and the performance of TensorFlow with Effctive FasterTransformer (EFF-FT), and show the speedup of FT and EFF-FT compare to the TensorFlow. Compare to v3.1, we modify the profiling method to hide the overhead of seession run and memory copy. Thus, both TensorFlow and FasterTransformer are faster than v3.1 in TensorFlow benchmark on small batch size and sequence length. Because this new method has no obvious overhead compare to the FasterTransformer on C++, we skip the comparison with the C++ implementation. For the benchmark of PyTorch, we compare the performance of TorchScript and the performance of PyTorch with FasterTransformer custom extension (CustomExt), and show the speedup of CustomExt compare to the TorchScript. For standard PyTorch implementation, we find that its performance is smaller or close to TorchScript, so we only demonstrate the performance of TorchScript. Besides, because CustomExt has no obvious overhead compare to the FasterTransformer on C++, we skip the comparison with the C++ implementation. @@ -1029,402 +985,370 @@ In the experiments of encoder, we updated the following parameters: * size_per_head = 64 * num_layers = 12 -#### Encoder performance on T4 and cpp - -| | FT-FP16-cpp (ms) | FT-EFF-cpp (ms) | FT-int8v2-cpp (ms) | FT-EFF-int8v2-cpp (ms) | FT-EFF-cpp Speedup | FT-int8v2-cpp Speedup | FT-EFF-int8v2-cpp Speedup | -|:---------------------:|:----------------:|:---------------:|:------------------:|:----------------------:|:------------------:|:---------------------:|:-------------------------:| -| <1, 32> | 1.45 | 2.92 | 1.66 | 1.74 | 0.50 | 0.87 | 0.83 | -| <1, 64> | 1.53 | 2.95 | 1.66 | 1.74 | 0.52 | 0.92 | 0.88 | -| <1, 128> | 1.92 | 3.41 | 1.75 | 1.76 | 0.56 | 1.10 | 1.10 | -| <8, 32> | 2.61 | 3.28 | 2.13 | 1.94 | 0.80 | 1.23 | 1.35 | -| <8, 64> | 4.38 | 3.34 | 2.94 | 2.25 | 1.31 | 1.49 | 1.95 | -| <8, 128> | 8.55 | 5.09 | 5.33 | 3.24 | 1.68 | 1.60 | 2.64 | -| <32, 32> | 8.53 | 5.07 | 5.58 | 3.48 | 1.68 | 1.53 | 2.45 | -| <32, 64> | 17.84 | 9.14 | 10.13 | 5.98 | 1.95 | 1.76 | 2.98 | -| <32, 128> | 35.14 | 18.05 | 20.01 | 11.28 | 1.95 | 1.76 | 3.12 | -| <64, 32> | 18.4 | 9.3 | 10.58 | 6.44 | 1.98 | 1.74 | 2.86 | -| <64, 64> | 34.19 | 17.98 | 19.64 | 11.15 | 1.90 | 1.74 | 3.07 | -| <64, 128> | 68.28 | 34.49 | 38.92 | 22.27 | 1.98 | 1.75 | 3.07 | -| <128, 32> | 35.41 | 18.19 | 20.52 | 12.07 | 1.95 | 1.73 | 2.93 | -| <128, 64> | 67.73 | 34.09 | 37.74 | 21.78 | 1.99 | 1.79 | 3.11 | -| <128, 128> | 139.72 | 66.88 | 80.12 | 49.95 | 2.09 | 1.74 | 2.80 | +#### Encoder performance on A100 and TensorFlow -#### Encoder performance on T4 and TensorFlow +* Performance on TF32 -* Performance on FP32 +User can use `export NVIDIA_TF32_OVERRIDE=0` to enforce the program run under FP32. + +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP32 | 2.57 | 1.87 | 1.97 | 1.37 | 1.30 | +| 1 | 128 | FP32 | 5.37 | 4.70 | 2.55 | 1.14 | 2.10 | +| 1 | 384 | FP32 | 7.39 | 6.61 | 9.03 | 1.11 | 0.81 | +| 8 | 32 | FP32 | 5.26 | 4.59 | 4.65 | 1.14 | 1.13 | +| 8 | 128 | FP32 | 13.29 | 12.54 | 7.03 | 1.05 | 1.89 | +| 8 | 384 | FP32 | 38.07 | 36.66 | 22.17 | 1.03 | 1.71 | +| 32 | 32 | FP32 | 13.78 | 13.24 | 7.69 | 1.04 | 1.79 | +| 32 | 128 | FP32 | 45.90 | 45.02 | 24.63 | 1.01 | 1.86 | +| 32 | 384 | FP32 | 150.26 | 143.41 | 84.28 | 1.04 | 1.78 | -| | TF (ms) | FT-OP (ms) | FT-CPP (ms) | FT-OP Speedup | FT-CPP Speedup | -|:---------------------:|:-------:|:----------:|:-----------:|:-------------:|:--------------:| -| <1, 32> | 8.09 | 4.70 | 2.57 | 1.72 | 3.14 | -| <1, 64> | 8.47 | 5.75 | 3.71 | 1.47 | 2.28 | -| <1, 128> | 9.78 | 7.50 | 6.17 | 1.30 | 1.58 | -| <8, 32> | 14.45 | 12.56 | 11.70 | 1.15 | 1.23 | -| <8, 64> | 24.99 | 23.17 | 22.22 | 1.07 | 1.12 | -| <8, 128> | 49.23 | 48.09 | 46.99 | 1.02 | 1.04 | -| <32, 32> | 47.23 | 46.44 | 45.58 | 1.01 | 1.03 | -| <32, 64> | 94.47 | 87.76 | 86.57 | 1.07 | 1.09 | -| <32, 128> | 195.23 | 177.79 | 174.46 | 1.09 | 1.11 | -| <64, 32> | 94.07 | 86.56 | 85.25 | 1.08 | 1.10 | -| <64, 64> | 191.65 | 173.67 | 170.94 | 1.10 | 1.12 | -| <64, 128> | 393.74 | 352.82 | 341.39 | 1.11 | 1.15 | -| <128, 32> | 190.89 | 170.55 | 167.32 | 1.11 | 1.14 | -| <128, 64> | 384.93 | 344.23 | 332.85 | 1.11 | 1.15 | -| <128, 128> | 817.94 | 729.46 | 711.44 | 1.12 | 1.14 | +* Performance on TF32 (Note that the absolute differences of results under TF32 are larger than FP32.) + +User can use `export NVIDIA_TF32_OVERRIDE=1` to enforce the program run under TF32. + +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | TF32 | 2.65 | 1.70 | 1.76 | 1.55 | 1.50 | +| 1 | 128 | TF32 | 2.58 | 1.74 | 1.83 | 1.48 | 1.40 | +| 1 | 384 | TF32 | 3.48 | 2.69 | 2.22 | 1.29 | 1.56 | +| 8 | 32 | TF32 | 2.84 | 2.11 | 1.90 | 1.34 | 1.49 | +| 8 | 128 | TF32 | 4.88 | 3.99 | 2.74 | 1.22 | 1.78 | +| 8 | 384 | TF32 | 12.16 | 12.16 | 7.54 | 1.00 | 1.61 | +| 32 | 32 | TF32 | 4.82 | 4.11 | 2.89 | 1.17 | 1.66 | +| 32 | 128 | TF32 | 12.97 | 11.77 | 7.03 | 1.10 | 1.84 | +| 32 | 384 | TF32 | 46.86 | 45.79 | 25.87 | 1.02 | 1.81 | * Performance on FP16 -| | TF (ms) | FT-OP (ms) | FT-CPP (ms) | FT-OP Speedup | FT-CPP Speedup | -|:---------------------:|:-------:|:----------:|:-----------:|:-------------:|:--------------:| -| <1, 32> | 9.70 | 4.24 | 1.45 | 2.28 | 6.68 | -| <1, 64> | 9.08 | 4.83 | 1.53 | 1.87 | 5.93 | -| <1, 128> | 6.56 | 3.91 | 1.92 | 1.67 | 3.41 | -| <8, 32> | 8.22 | 6.00 | 2.61 | 1.37 | 3.14 | -| <8, 64> | 9.55 | 5.94 | 4.38 | 1.60 | 2.18 | -| <8, 128> | 14.76 | 10.04 | 8.55 | 1.47 | 1.72 | -| <32, 32> | 14.53 | 10.13 | 8.53 | 1.43 | 1.70 | -| <32, 64> | 27.73 | 18.84 | 17.84 | 1.47 | 1.55 | -| <32, 128> | 53.68 | 36.33 | 35.14 | 1.47 | 1.52 | -| <64, 32> | 27.85 | 19.53 | 18.40 | 1.42 | 1.51 | -| <64, 64> | 52.34 | 35.67 | 34.19 | 1.46 | 1.53 | -| <64, 128> | 104.39 | 70.87 | 68.28 | 1.47 | 1.52 | -| <128, 32> | 52.92 | 36.55 | 35.41 | 1.44 | 1.49 | -| <128, 64> | 101.59 | 70.16 | 67.73 | 1.44 | 1.49 | -| <128, 128> | 209.16 | 143.13 | 139.72 | 1.46 | 1.49 | - -* Performance on INT8 - -| | TF FP16 (ms) | FT-int8v1-op (ms) | FT-int8v2-op (ms) | FT-int8v1-op Speedup | FT-int8v2-op Speedup | -|----------------------:|:------------:|:-----------------:|:-----------------:|:--------------------:|:--------------------:| -| <1, 32> | 8.95 | 5.23 | 5.70 | 1.71 | 1.57 | -| <1, 64> | 9.54 | 5.01 | 4.98 | 1.90 | 1.92 | -| <1, 128> | 9.27 | 5.85 | 5.31 | 1.58 | 1.75 | -| <8, 32> | 9.04 | 5.86 | 5.77 | 1.54 | 1.57 | -| <8, 64> | 8.87 | 6.42 | 5.84 | 1.38 | 1.52 | -| <8, 128> | 14.74 | 10.78 | 7.45 | 1.37 | 1.98 | -| <32, 32> | 14.01 | 9.85 | 7.54 | 1.42 | 1.86 | -| <32, 64> | 27.13 | 17.84 | 10.95 | 1.52 | 2.48 | -| <32, 128> | 53.44 | 33.62 | 19.78 | 1.59 | 2.70 | -| <64, 32> | 26.46 | 17.21 | 11.42 | 1.54 | 2.32 | -| <64, 64> | 51.2 | 31.64 | 19.37 | 1.62 | 2.64 | -| <64, 128> | 103.66 | 65.08 | 36.57 | 1.59 | 2.83 | -| <128, 32> | 50.91 | 31.27 | 20.17 | 1.63 | 2.52 | -| <128, 64> | 100.14 | 60.55 | 35.77 | 1.65 | 2.80 | -| <128, 128> | 206.65 | 128.28 | 73.08 | 1.61 | 2.83 | +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP16 | 2.08 | 0.90 | 0.96 | 2.31 | 2.16 | +| 1 | 128 | FP16 | 2.21 | 1.00 | 1.02 | 2.21 | 2.16 | +| 1 | 384 | FP16 | 2.50 | 1.33 | 1.20 | 1.87 | 2.08 | +| 8 | 32 | FP16 | 2.08 | 1.04 | 1.04 | 2.00 | 2.00 | +| 8 | 128 | FP16 | 3.32 | 1.77 | 1.43 | 1.87 | 2.32 | +| 8 | 384 | FP16 | 8.55 | 4.39 | 2.57 | 1.94 | 3.32 | +| 32 | 32 | FP16 | 3.28 | 1.77 | 1.40 | 1.85 | 2.34 | +| 32 | 128 | FP16 | 8.38 | 4.81 | 2.75 | 1.74 | 3.04 | +| 32 | 384 | FP16 | 27.80 | 14.67 | 7.71 | 1.89 | 3.60 | + +* Performance on INT8-v1 + +| Batch_size | Seq_len | TF-FP16
Latency (ms) | FT-INT8-v1
Latency (ms) | EFF-FT-INT8-v1
Latency (ms) | FT-INT8-v1
Speedup | EFF-FT-INT8-v1
Speedup | +|:----------:|:-------:|:--------------------------:|:----------------------------------------:|:--------------------------------------------:|:-----------------------------------:|:---------------------------------------:| +| 1 | 32 | 2.09 | 1.40 | 1.51 | 1.49 | 1.38 | +| 1 | 128 | 2.17 | 1.74 | 1.70 | 1.24 | 1.27 | +| 1 | 384 | 2.49 | 1.99 | 2.04 | 1.25 | 1.22 | +| 8 | 32 | 2.10 | 1.77 | 1.87 | 1.18 | 1.12 | +| 8 | 128 | 3.31 | 2.34 | 2.01 | 1.41 | 1.64 | +| 8 | 384 | 8.57 | 4.75 | 3.17 | 1.80 | 2.70 | +| 32 | 32 | 3.29 | 2.59 | 2.09 | 1.27 | 1.57 | +| 32 | 128 | 8.32 | 5.53 | 3.36 | 1.50 | 2.47 | +| 32 | 384 | 27.81 | 14.80 | 8.34 | 1.87 | 3.33 | + +* Performance on INT8-v2 + +Note that the INT8-v2 leads to larger overhead because some optimization requires the weights of Q, K and V are continous. Using c API or preprocess the model can bring better performance. + +| Batch_size | Seq_len | TF-FP16
Latency (ms) | FT-INT8-v2
Latency (ms) | EFF-FT-INT8-v2
Latency (ms) | FT-INT8-v2
Speedup | EFF-FT-INT8-v2
Speedup | +|:----------:|:-------:|:--------------------------:|:----------------------------------------:|:--------------------------------------------:|:-----------------------------------:|:---------------------------------------:| +| 1 | 32 | 2.06 | 1.53 | 1.53 | 1.34 | 1.34 | +| 1 | 128 | 2.18 | 1.57 | 1.57 | 1.38 | 1.38 | +| 1 | 384 | 2.44 | 1.70 | 1.62 | 1.43 | 1.50 | +| 8 | 32 | 2.07 | 1.63 | 1.62 | 1.26 | 1.27 | +| 8 | 128 | 3.33 | 1.93 | 1.73 | 1.72 | 1.92 | +| 8 | 384 | 8.52 | 3.40 | 2.50 | 2.50 | 3.40 | +| 32 | 32 | 3.33 | 2.18 | 1.85 | 1.52 | 1.80 | +| 32 | 128 | 8.32 | 3.85 | 2.48 | 2.16 | 3.35 | +| 32 | 384 | 27.80 | 10.07 | 5.63 | 2.76 | 4.93 | -#### Encoder performance on V100 and TensorFlow +#### Encoder performance on T4 and TensorFlow * Performance on FP32 -| | TF (ms) | FT-OP (ms) | FT-CPP (ms) | FT-OP Speedup | FT-CPP Speedup | -|:---------------------:|:-------:|:----------:|:-----------:|:-------------:|:--------------:| -| <1, 32> | 3.78 | 2.99 | 1.76 | 1.26 | 2.14 | -| <1, 64> | 4.55 | 3.29 | 2.16 | 1.38 | 2.10 | -| <1, 128> | 5.23 | 4.15 | 2.94 | 1.26 | 1.77 | -| <8, 32> | 7.42 | 6.14 | 4.66 | 1.20 | 1.59 | -| <8, 64> | 10.80 | 9.98 | 8.48 | 1.08 | 1.27 | -| <8, 128> | 18.73 | 17.63 | 15.50 | 1.06 | 1.20 | -| <32, 32> | 18.16 | 16.97 | 15.34 | 1.07 | 1.18 | -| <32, 64> | 33.87 | 32.69 | 30.01 | 1.03 | 1.12 | -| <32, 128> | 66.11 | 64.31 | 59.46 | 1.02 | 1.11 | -| <64, 32> | 34.17 | 32.56 | 29.91 | 1.04 | 1.14 | -| <64, 64> | 66.21 | 63.51 | 58.84 | 1.04 | 1.12 | -| <64, 128> | 133.61 | 126.58 | 119.08 | 1.05 | 1.12 | -| <128, 32> | 65.36 | 62.72 | 58.22 | 1.04 | 1.12 | -| <128, 64> | 131.12 | 123.94 | 117.80 | 1.05 | 1.11 | -| <128, 128> | 253.90 | 251.03 | 234.30 | 1.01 | 1.08 | +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP32 | 3.63 | 2.51 | 2.96 | 1.44 | 1.22 | +| 1 | 128 | FP32 | 7.10 | 6.11 | 4.78 | 1.16 | 1.48 | +| 1 | 384 | FP32 | 19.69 | 19.01 | 11.16 | 1.03 | 1.76 | +| 8 | 32 | FP32 | 12.85 | 11.44 | 6.75 | 1.12 | 1.90 | +| 8 | 128 | FP32 | 49.19 | 42.88 | 23.48 | 1.14 | 2.09 | +| 8 | 384 | FP32 | 154.09 | 140.36 | 84.84 | 1.09 | 1.81 | +| 32 | 32 | FP32 | 45.37 | 41.66 | 22.33 | 1.08 | 2.03 | +| 32 | 128 | FP32 | 183.49 | 162.62 | 93.41 | 1.12 | 1.96 | +| 32 | 384 | FP32 | 602.69 | 552.46 | 331.55 | 1.09 | 1.81 | * Performance on FP16 -| | TF (ms) | FT-OP (ms) | FT-CPP (ms) | FT-OP Speedup | FT-CPP Speedup | -|:---------------------:|:-------:|:----------:|:-----------:|:-------------:|:--------------:| -| <1, 32> | 3.44 | 3.05 | 1.24 | 1.12 | 2.77 | -| <1, 64> | 4.96 | 2.88 | 1.45 | 1.72 | 3.42 | -| <1, 128> | 3.59 | 2.79 | 1.57 | 1.28 | 2.28 | -| <8, 32> | 3.94 | 3.00 | 1.80 | 1.31 | 2.18 | -| <8, 64> | 5.12 | 3.86 | 2.45 | 1.32 | 2.08 | -| <8, 128> | 7.16 | 5.21 | 3.79 | 1.37 | 1.88 | -| <32, 32> | 7.27 | 5.25 | 3.60 | 1.38 | 2.01 | -| <32, 64> | 11.26 | 8.47 | 6.61 | 1.32 | 1.70 | -| <32, 128> | 20.62 | 15.52 | 12.52 | 1.32 | 1.64 | -| <64, 32> | 11.31 | 8.57 | 6.59 | 1.31 | 1.71 | -| <64, 64> | 19.94 | 15.63 | 12.22 | 1.27 | 1.63 | -| <64, 128> | 36.25 | 28.86 | 23.73 | 1.25 | 1.52 | -| <128, 32> | 20.15 | 15.27 | 12.24 | 1.31 | 1.64 | -| <128, 64> | 35.67 | 28.73 | 23.40 | 1.24 | 1.52 | -| <128, 128> | 68.84 | 54.53 | 46.11 | 1.26 | 1.49 | +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP16 | 5.84 | 1.92 | 2.33 | 3.04 | 2.50 | +| 1 | 128 | FP16 | 3.30 | 2.57 | 2.47 | 1.28 | 1.33 | +| 1 | 384 | FP16 | 5.91 | 3.85 | 3.34 | 1.53 | 1.76 | +| 8 | 32 | FP16 | 4.48 | 2.69 | 2.76 | 1.66 | 1.62 | +| 8 | 128 | FP16 | 12.34 | 8.31 | 4.89 | 1.48 | 2.52 | +| 8 | 384 | FP16 | 39.88 | 24.37 | 12.47 | 1.63 | 3.19 | +| 32 | 32 | FP16 | 12.21 | 8.40 | 4.89 | 1.45 | 2.49 | +| 32 | 128 | FP16 | 45.50 | 32.32 | 17.04 | 1.40 | 2.67 | +| 32 | 384 | FP16 | 159.93 | 97.66 | 48.60 | 1.63 | 3.29 | + +* Performance on INT8-v1 + +| Batch_size | Seq_len | TF-FP16
Latency (ms) | FT-INT8-v1
Latency (ms) | EFF-FT-INT8-v1
Latency (ms) | FT-INT8-v1
Speedup | EFF-FT-INT8-v1
Speedup | +|:----------:|:-------:|:--------------------------:|:----------------------------------------:|:--------------------------------------------:|:-----------------------------------:|:---------------------------------------:| +| 1 | 32 | 4.44 | 1.98 | 2.50 | 2.24 | 1.77 | +| 1 | 128 | 3.48 | 2.93 | 3.03 | 1.18 | 1.14 | +| 1 | 384 | 5.94 | 3.68 | 3.24 | 1.61 | 1.83 | +| 8 | 32 | 4.51 | 2.71 | 3.04 | 1.66 | 1.48 | +| 8 | 128 | 12.10 | 6.63 | 3.93 | 1.82 | 3.07 | +| 8 | 384 | 39.64 | 18.10 | 9.68 | 2.19 | 4.09 | +| 32 | 32 | 12.30 | 7.54 | 4.39 | 1.63 | 2.80 | +| 32 | 128 | 45.26 | 22.97 | 12.45 | 1.97 | 3.63 | +| 32 | 384 | 173.49 | 68.89 | 39.49 | 2.51 | 4.39 | + +* Performance on INT8-v2 + +| Batch_size | Seq_len | TF-FP16
Latency (ms) | FT-INT8-v2
Latency (ms) | EFF-FT-INT8-v2
Latency (ms) | FT-INT8-v2
Speedup | EFF-FT-INT8-v2
Speedup | +|:----------:|:-------:|:--------------------------:|:----------------------------------------:|:--------------------------------------------:|:-----------------------------------:|:---------------------------------------:| +| 1 | 32 | 4.57 | 3.03 | 2.96 | 1.50 | 1.54 | +| 1 | 128 | 3.75 | 2.41 | 2.20 | 1.55 | 1.70 | +| 1 | 384 | 5.88 | 2.90 | 3.17 | 2.02 | 1.85 | +| 8 | 32 | 4.10 | 2.87 | 2.91 | 1.42 | 1.40 | +| 8 | 128 | 12.27 | 5.13 | 3.38 | 2.39 | 3.63 | +| 8 | 384 | 39.50 | 13.47 | 7.14 | 2.93 | 5.53 | +| 32 | 32 | 12.09 | 5.90 | 3.51 | 2.04 | 3.44 | +| 32 | 128 | 45.23 | 17.19 | 9.09 | 2.63 | 4.97 | +| 32 | 384 | 158.10 | 52.41 | 28.65 | 3.01 | 5.51 | -#### Encoder performance on T4 and PyTorch +#### Encoder performance on V100 and TensorFlow * Performance on FP32 -| | TorchScript (ms) | CustomExt (ms) | CustomExt Speedup | -|:---------------------:|:----------------:|:--------------:|:-----------------:| -| <1, 32> | 12.16 | 2.71 | 4.48 | -| <1, 64> | 12.45 | 3.98 | 3.12 | -| <1, 128> | 12.46 | 6.37 | 1.95 | -| <8, 32> | 13.50 | 11.34 | 1.19 | -| <8, 64> | 24.91 | 21.14 | 1.17 | -| <8, 128> | 52.93 | 42.62 | 1.24 | -| <32, 32> | 51.04 | 41.27 | 1.23 | -| <32, 64> | 93.57 | 82.27 | 1.13 | -| <32, 128> | 197.38 | 164.14 | 1.20 | -| <64, 32> | 93.19 | 81.00 | 1.15 | -| <64, 64> | 191.26 | 162.27 | 1.17 | -| <64, 128> | 394.24 | 333.26 | 1.18 | -| <128, 32> | 191.31 | 158.40 | 1.20 | -| <128, 64> | 383.33 | 325.44 | 1.17 | -| <128, 128> | 799.05 | 670.33 | 1.19 | +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP32 | 2.84 | 1.56 | 1.81 | 1.82 | 1.56 | +| 1 | 128 | FP32 | 3.97 | 2.90 | 2.27 | 1.36 | 1.74 | +| 1 | 384 | FP32 | 8.32 | 6.72 | 5.02 | 1.23 | 1.65 | +| 8 | 32 | FP32 | 5.71 | 4.65 | 3.33 | 1.22 | 1.71 | +| 8 | 128 | FP32 | 16.98 | 15.51 | 9.76 | 1.09 | 1.73 | +| 8 | 384 | FP32 | 53.46 | 48.70 | 28.52 | 1.09 | 1.87 | +| 32 | 32 | FP32 | 16.65 | 15.24 | 9.48 | 1.09 | 1.75 | +| 32 | 128 | FP32 | 62.98 | 57.85 | 32.53 | 1.08 | 1.93 | +| 32 | 384 | FP32 | 208.40 | 188.17 | 109.95 | 1.10 | 1.89 | * Performance on FP16 -| | TorchScript (ms) | CustomExt (ms) | CustomExt Speedup | -|:---------------------:|:----------------:|:--------------:|:-----------------:| -| <1, 32> | 11.59 | 1.84 | 6.29 | -| <1, 64> | 12.15 | 1.91 | 6.36 | -| <1, 128> | 12.47 | 2.26 | 5.51 | -| <8, 32> | 11.17 | 2.90 | 3.85 | -| <8, 64> | 10.74 | 4.61 | 2.32 | -| <8, 128> | 13.51 | 8.65 | 1.56 | -| <32, 32> | 13.03 | 8.70 | 1.49 | -| <32, 64> | 25.71 | 16.81 | 1.52 | -| <32, 128> | 53.81 | 32.88 | 1.63 | -| <64, 32> | 25.67 | 17.24 | 1.48 | -| <64, 64> | 51.31 | 32.36 | 1.58 | -| <64, 128> | 106.72 | 63.85 | 1.67 | -| <128, 32> | 51.73 | 33.42 | 1.54 | -| <128, 64> | 101.73 | 62.72 | 1.62 | -| <128, 128> | 209.20 | 130.55 | 1.60 | - -* Performance on INT8 - -| | TorchScript FP16 (ms) | FT-INT8v1-OP (ms) | FT-INT8v2-OP (ms) | FT-INT8v1-OP Speedup | FT-INT8v2-OP Speedup | -|:---------------------:|:---------------------:|:-----------------:|:-----------------:|:--------------------:|:--------------------:| -| <1, 32> | 11.66 | 1.99 | 2.23 | 5.86 | 5.23 | -| <1, 64> | 12.2 | 1.96 | 2.18 | 6.22 | 5.60 | -| <1, 128> | 11.27 | 2.16 | 2.31 | 5.22 | 4.88 | -| <8, 32> | 11.09 | 2.83 | 2.59 | 3.92 | 4.28 | -| <8, 64> | 10.79 | 4.43 | 3.31 | 2.44 | 3.26 | -| <8, 128> | 13.5 | 8.82 | 5.67 | 1.53 | 2.38 | -| <32, 32> | 12.85 | 8.49 | 6 | 1.51 | 2.14 | -| <32, 64> | 25.57 | 16.07 | 10.18 | 1.59 | 2.51 | -| <32, 128> | 53.58 | 32.76 | 19.72 | 1.64 | 2.72 | -| <64, 32> | 25.34 | 16.25 | 10.71 | 1.56 | 2.37 | -| <64, 64> | 51.28 | 30.78 | 19.74 | 1.67 | 2.60 | -| <64, 128> | 104.8 | 64.53 | 39.04 | 1.62 | 2.68 | -| <128, 32> | 50.8 | 31.03 | 20.66 | 1.64 | 2.46 | -| <128, 64> | 99.47 | 60.09 | 38.77 | 1.66 | 2.57 | -| <128, 128> | 210.27 | 128.63 | 79.11 | 1.63 | 2.66 | +| Batch_size | Seq_len | Precision | TF
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:---------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP16 | 2.96 | 1.13 | 1.58 | 2.61 | 1.87 | +| 1 | 128 | FP16 | 2.49 | 1.43 | 1.49 | 1.74 | 1.67 | +| 1 | 384 | FP16 | 3.61 | 2.12 | 2.04 | 1.70 | 1.76 | +| 8 | 32 | FP16 | 2.86 | 1.74 | 1.63 | 1.64 | 1.75 | +| 8 | 128 | FP16 | 5.58 | 3.59 | 2.99 | 1.55 | 1.86 | +| 8 | 384 | FP16 | 14.59 | 10.60 | 7.31 | 1.37 | 1.99 | +| 32 | 32 | FP16 | 5.56 | 3.55 | 3.00 | 1.56 | 1.85 | +| 32 | 128 | FP16 | 17.24 | 12.41 | 8.05 | 1.38 | 2.14 | +| 32 | 384 | FP16 | 53.24 | 40.20 | 26.55 | 1.32 | 2.00 | + +#### Encoder performance comparison between T4, V100, A100 and A100 with MIG mode on TensorFlow + +* Performance of EFF-FT on FP16 + +| Batch Size | Sequence
Length"| Precision | T4 Latency | T4
Throughput | V100 Latency | V100
Throughput | A100 Latency | A100
Throughput | A100 MIG
Latency | A100 MIG
Throughput | +|:----------:|:---------------------:|:---------:|:----------:|:-------------------:|:------------:|:---------------------:|:------------:|:---------------------:|:---------------------:|:------------------:| +| 1 | 32 | FP16 | 1.84 | 543 | 1.58 | 632 | 0.88 | 1136 | 1.42 | 4929 | +| 1 | 128 | FP16 | 1.88 | 531 | 1.49 | 671 | 0.91 | 1098 | 1.54 | 4545 | +| 1 | 384 | FP16 | 2.99 | 334 | 2.04 | 490 | 1.12 | 892 | 3.38 | 2071 | +| 8 | 32 | FP16 | 2.1 | 3809 | 1.63 | 4907 | 0.96 | 8333 | 2 | 28000 | +| 8 | 128 | FP16 | 4.93 | 1622 | 2.99 | 2675 | 1.38 | 5797 | 5.23 | 10707 | +| 8 | 384 | FP16 | 13.47 | 593 | 7.31 | 1094 | 2.64 | 3030 | 13.87 | 4037 | +| 32 | 32 | FP16 | 4.89 | 6543 | 3 | 10666 | 1.34 | 23880 | 5.26 | 42585 | +| 32 | 128 | FP16 | 17.32 | 1847 | 8.05 | 3975 | 3.01 | 10631 | 16.41 | 13650 | +| 32 | 384 | FP16 | 52.75 | 606 | 26.55 | 1205 | 8.98 | 3563 | 53.2 | 4210 | + +* Performance of EFF-FT on INT8-v2 + +| Batch Size | Sequence
Length"| Precision | T4 Latency | T4
Throughput | V100 Latency | V100
Throughput | A100 Latency | A100
Throughput | A100 MIG
Latency | A100 MIG
Throughput | +|:----------:|:---------------------:|:---------:|:----------:|:-------------------:|:------------:|:---------------------:|:------------:|:---------------------:|:-----------------:|:------------------:| +| 1 | 32 | INT8-v2 | 1.87 | 534 | x | x | 1.19 | 840 | 1.35 | 5185 | +| 1 | 128 | INT8-v2 | 1.88 | 531 | x | x | 1.2 | 833 | 1.46 | 4794 | +| 1 | 384 | INT8-v2 | 2.4 | 416 | x | x | 1.31 | 763 | 2.23 | 3139 | +| 8 | 32 | INT8-v2 | 2.37 | 3375 | x | x | 1.23 | 6504 | 1.87 | 29946 | +| 8 | 128 | INT8-v2 | 3.07 | 2605 | x | x | 1.32 | 6060 | 3.43 | 16326 | +| 8 | 384 | INT8-v2 | 7.42 | 1078 | x | x | 2.24 | 3571 | 10.94 | 5118 | +| 32 | 32 | INT8-v2 | 3.41 | 9384 | x | x | 1.51 | 21192 | 4.26 | 52582 | +| 32 | 128 | INT8-v2 | 9.53 | 3357 | x | x | 2.28 | 14035 | 11.57 | 19360 | +| 32 | 384 | INT8-v2 | 30.53 | 1048 | x | x | 5.71 | 5604 | 37.03 | 6049 | + +#### Encoder performance comparison between different features on T4 and TensorFlow + +| Batch Size | Sequence
Length | FT-FP16
Latency | EFF-FT
Latency | FT-INT8-v2
Latency | EFF-FT-INT8-v2
Latency | EFF-FT
Speedup | FT-INT8-v2
Speedup | EFF-FT-INT8-v2
Speedup | +|:----------:|:---------------------:|:---------------------:|:--------------------:|:------------------------:|:----------------------------:|:--------------------:|:--------------------:|:---------------------:| +| 1 | 32 | 1.58 | 1.84 | 2.06 | 1.87 | 0.859 | 0.767 | 0.845 | +| 1 | 128 | 1.96 | 1.88 | 2.19 | 1.88 | 1.043 | 0.895 | 1.043 | +| 1 | 384 | 3.71 | 2.99 | 2.68 | 2.4 | 1.241 | 1.384 | 1.546 | +| 8 | 32 | 2.62 | 2.1 | 2.61 | 2.37 | 1.248 | 1.004 | 1.105 | +| 8 | 128 | 8.37 | 4.93 | 5.19 | 3.07 | 1.698 | 1.613 | 2.726 | +| 8 | 384 | 25.87 | 13.47 | 14.54 | 7.42 | 1.921 | 1.779 | 3.487 | +| 32 | 32 | 8.43 | 4.89 | 6 | 3.41 | 1.724 | 1.405 | 2.472 | +| 32 | 128 | 34.13 | 17.32 | 17.91 | 9.53 | 1.971 | 1.906 | 3.581 | +| 32 | 384 | 99.72 | 52.75 | 55.39 | 30.53 | 1.890 | 1.800 | 3.266 | + +#### Encoder performance on A100 and PyTorch + +* Performance on TF32 + +User can use `export NVIDIA_TF32_OVERRIDE=1` to enforce the program run under TF32. + +| Batch_size | Seq_len | Precision | TorchScript
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:------------------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | TF32 | 5.01 | 1.99 | 2.08 | 2.51 | 2.40 | +| 1 | 128 | TF32 | 4.89 | 1.94 | 2.02 | 2.52 | 2.42 | +| 1 | 384 | TF32 | 4.52 | 2.74 | 2.07 | 1.64 | 2.18 | +| 8 | 32 | TF32 | 5.07 | 2.18 | 2.09 | 2.32 | 2.42 | +| 8 | 128 | TF32 | 4.96 | 4.03 | 3.82 | 1.23 | 1.29 | +| 8 | 384 | TF32 | 12.87 | 12.21 | 8.02 | 1.05 | 1.60 | +| 32 | 32 | TF32 | 4.78 | 4.16 | 3.92 | 1.14 | 1.21 | +| 32 | 128 | TF32 | 13.49 | 11.64 | 7.00 | 1.15 | 1.92 | +| 32 | 384 | TF32 | 47.17 | 45.47 | 25.52 | 1.03 | 1.84 | -#### Encoder performance on V100 and PyTorch +* Performance on FP16 -* Performance on FP32 +| Batch_size | Seq_len | Precision | TorchScript
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:------------------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP16 | 4.22 | 0.93 | 1.15 | 4.53 | 3.66 | +| 1 | 128 | FP16 | 4.47 | 1.09 | 1.20 | 4.10 | 3.72 | +| 1 | 384 | FP16 | 4.16 | 1.36 | 1.16 | 3.05 | 3.58 | +| 8 | 32 | FP16 | 4.19 | 1.11 | 1.13 | 3.77 | 3.70 | +| 8 | 128 | FP16 | 4.35 | 1.81 | 1.59 | 2.40 | 2.73 | +| 8 | 384 | FP16 | 9.51 | 4.77 | 3.04 | 1.99 | 3.12 | +| 32 | 32 | FP16 | 4.19 | 1.82 | 1.58 | 2.30 | 2.65 | +| 32 | 128 | FP16 | 9.57 | 4.81 | 2.79 | 1.98 | 3.43 | +| 32 | 384 | FP16 | 32.43 | 14.68 | 8.07 | 2.20 | 4.01 | + +* Performance on INT8-v1 + +| Batch_size | Seq_len | TorchScript-FP16
Latency (ms) | FT-INT8-v1
Latency (ms) | EFF-FT-INT8-v1
Latency (ms) | FT-INT8-v1
Speedup | EFF-FT-INT8-v1
Speedup | +|:----------:|:-------:|:-----------------------------------:|:-----------------------------:|:---------------------------------:|:------------------------:|:----------------------------:| +| 1 | 32 | 4.20 | 1.44 | 1.56 | 2.91 | 2.69 | +| 1 | 128 | 4.30 | 1.75 | 1.69 | 2.45 | 2.54 | +| 1 | 384 | 4.28 | 1.98 | 1.76 | 2.16 | 2.43 | +| 8 | 32 | 4.18 | 1.77 | 1.91 | 2.36 | 2.18 | +| 8 | 128 | 4.44 | 2.28 | 1.76 | 1.94 | 2.52 | +| 8 | 384 | 9.50 | 4.73 | 2.70 | 2.00 | 3.51 | +| 32 | 32 | 4.28 | 2.51 | 2.10 | 1.70 | 2.03 | +| 32 | 128 | 9.59 | 5.57 | 3.53 | 1.72 | 2.71 | +| 32 | 384 | 32.38 | 14.97 | 8.57 | 2.16 | 3.77 | + +* Performance on INT8-v2 + +| Batch_size | Seq_len | TorchScript-FP16
Latency (ms) | FT-INT8-v2
Latency (ms) | EFF-FT-INT8-v2
Latency (ms) | FT-INT8-v2
Speedup | EFF-FT-INT8-v2
Speedup | +|:----------:|:-------:|:-----------------------------------:|:-----------------------------:|:---------------------------------:|:------------------------:|:----------------------------:| +| 1 | 32 | 4.35 | 1.55 | 1.60 | 2.80 | 2.71 | +| 1 | 128 | 4.40 | 1.59 | 1.62 | 2.76 | 2.71 | +| 1 | 384 | 4.27 | 1.75 | 1.69 | 2.44 | 2.52 | +| 8 | 32 | 4.18 | 1.67 | 1.64 | 2.50 | 2.54 | +| 8 | 128 | 4.24 | 1.79 | 1.63 | 2.36 | 2.60 | +| 8 | 384 | 9.46 | 3.45 | 2.37 | 2.74 | 3.99 | +| 32 | 32 | 4.21 | 2.07 | 1.72 | 2.03 | 2.44 | +| 32 | 128 | 9.57 | 3.88 | 2.45 | 2.46 | 3.90 | +| 32 | 384 | 32.37 | 10.39 | 6.08 | 3.11 | 5.32 | -| | TorchScript (ms) | CustomExt (ms) | CustomExt Speedup | -|:---------------------:|:----------------:|:--------------:|:-----------------:| -| <1, 32> | 6.39 | 1.80 | 3.55 | -| <1, 64> | 8.63 | 2.20 | 3.92 | -| <1, 128> | 6.76 | 3.03 | 2.23 | -| <8, 32> | 6.71 | 4.74 | 1.41 | -| <8, 64> | 9.52 | 8.34 | 1.14 | -| <8, 128> | 18.80 | 15.34 | 1.22 | -| <32, 32> | 18.24 | 15.08 | 1.20 | -| <32, 64> | 34.39 | 29.60 | 1.16 | -| <32, 128> | 65.60 | 58.64 | 1.11 | -| <64, 32> | 34.24 | 29.60 | 1.15 | -| <64, 64> | 63.26 | 58.85 | 1.07 | -| <64, 128> | 130.51 | 117.66 | 1.10 | -| <128, 32> | 63.47 | 57.86 | 1.09 | -| <128, 64> | 126.92 | 115.19 | 1.10 | -| <128, 128> | 254.07 | 230.81 | 1.10 | +#### Encoder performance on T4 and PyTorch -* Performance on FP16 +* Performance on FP32 -| | TorchScript (ms) | CustomExt (ms) | CustomExt Speedup | -|:---------------------:|:----------------:|:--------------:|:-----------------:| -| <1, 32> | 8.50 | 1.69 | 5.02 | -| <1, 64> | 8.66 | 1.71 | 5.06 | -| <1, 128> | 6.74 | 1.91 | 3.52 | -| <8, 32> | 7.72 | 1.84 | 4.19 | -| <8, 64> | 6.74 | 2.51 | 2.68 | -| <8, 128> | 6.67 | 3.73 | 1.78 | -| <32, 32> | 6.19 | 3.70 | 1.67 | -| <32, 64> | 9.36 | 6.78 | 1.38 | -| <32, 128> | 18.41 | 12.63 | 1.45 | -| <64, 32> | 9.20 | 6.63 | 1.38 | -| <64, 64> | 17.35 | 12.36 | 1.40 | -| <64, 128> | 34.14 | 23.90 | 1.42 | -| <128, 32> | 17.09 | 12.32 | 1.38 | -| <128, 64> | 33.28 | 23.44 | 1.41 | -| <128, 128> | 66.03 | 46.83 | 1.40 | +| Batch_size | Seq_len | Precision | TorchScript
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:------------------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP32 | 11.51 | 2.65 | 4.35 | 4.34 | 2.64 | +| 1 | 128 | FP32 | 11.45 | 6.23 | 4.60 | 1.83 | 2.48 | +| 1 | 384 | FP32 | 22.09 | 18.81 | 11.24 | 1.17 | 1.96 | +| 8 | 32 | FP32 | 13.82 | 11.31 | 6.75 | 1.22 | 2.04 | +| 8 | 128 | FP32 | 53.91 | 43.51 | 21.87 | 1.23 | 2.46 | +| 8 | 384 | FP32 | 180.82 | 144.51 | 87.56 | 1.25 | 2.06 | +| 32 | 32 | FP32 | 52.66 | 42.34 | 25.22 | 1.24 | 2.08 | +| 32 | 128 | FP32 | 203.04 | 168.30 | 109.82 | 1.20 | 1.84 | +| 32 | 384 | FP32 | 707.27 | 587.40 | 373.25 | 1.20 | 1.89 | -### Effective FasterTransformer performance +* Performance on FP16 -We demonstrate the inference time of Effective FasterTransformer OP (Effective FT), TensorFlow XLA (TF) and PyTorch (TorchScript) under FP32, FP16 and INT8, and compare to the performance on T4 and V100. +| Batch_size | Seq_len | Precision | TorchScript
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:------------------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP16 | 11.04 | 1.72 | 3.56 | 6.41 | 3.10 | +| 1 | 128 | FP16 | 10.51 | 2.05 | 3.90 | 5.12 | 2.69 | +| 1 | 384 | FP16 | 10.37 | 3.78 | 3.73 | 2.74 | 2.78 | +| 8 | 32 | FP16 | 10.94 | 2.67 | 4.20 | 4.09 | 2.60 | +| 8 | 128 | FP16 | 13.41 | 8.55 | 4.71 | 1.56 | 2.84 | +| 8 | 384 | FP16 | 46.82 | 26.03 | 16.88 | 1.79 | 2.77 | +| 32 | 32 | FP16 | 13.02 | 8.51 | 5.32 | 1.52 | 2.44 | +| 32 | 128 | FP16 | 54.28 | 33.38 | 15.71 | 1.62 | 3.45 | +| 32 | 384 | FP16 | 192.80 | 103.63 | 51.00 | 1.86 | 3.78 | + +* Performance on INT8-v1 + +| Batch_size | Seq_len | TorchScript-FP16
Latency (ms) | FT-INT8-v1
Latency (ms) | EFF-FT-INT8-v1
Latency (ms) | FT-INT8-v1
Speedup | EFF-FT-INT8-v1
Speedup | +|:----------:|:-------:|:-----------------------------------:|:-----------------------------:|:---------------------------------:|:------------------------:|:----------------------------:| +| 1 | 32 | 11.09 | 1.90 | 2.34 | 5.83 | 4.73 | +| 1 | 128 | 10.51 | 1.87 | 2.05 | 5.62 | 5.12 | +| 1 | 384 | 10.29 | 4.25 | 3.48 | 2.42 | 2.95 | +| 8 | 32 | 10.54 | 2.65 | 2.20 | 3.97 | 4.79 | +| 8 | 128 | 13.44 | 8.48 | 3.93 | 1.58 | 3.41 | +| 8 | 384 | 47.11 | 23.19 | 14.75 | 2.03 | 3.19 | +| 32 | 32 | 13.09 | 9.10 | 5.27 | 1.43 | 2.48 | +| 32 | 128 | 53.91 | 29.45 | 15.56 | 1.83 | 3.46 | +| 32 | 384 | 190.43 | 88.69 | 53.14 | 2.14 | 3.58 | + +* Performance on INT8-v2 + +| Batch_size | Seq_len | TorchScript-FP16
Latency (ms) | FT-INT8-v2
Latency (ms) | EFF-FT-INT8-v2
Latency (ms) | FT-INT8-v2
Speedup | EFF-FT-INT8-v2
Speedup | +|:----------:|:-------:|:-----------------------------------:|:-----------------------------:|:---------------------------------:|:------------------------:|:----------------------------:| +| 1 | 32 | 10.96 | 1.98 | 1.99 | 5.53 | 5.50 | +| 1 | 128 | 10.52 | 2.04 | 1.95 | 5.15 | 5.39 | +| 1 | 384 | 10.49 | 2.81 | 2.71 | 3.73 | 3.87 | +| 8 | 32 | 10.49 | 2.61 | 2.10 | 4.01 | 4.99 | +| 8 | 128 | 13.46 | 5.45 | 3.22 | 2.46 | 4.18 | +| 8 | 384 | 47.14 | 15.19 | 9.37 | 3.10 | 5.03 | +| 32 | 32 | 13.00 | 6.10 | 3.46 | 2.13 | 3.75 | +| 32 | 128 | 53.09 | 18.90 | 10.73 | 2.80 | 4.94 | +| 32 | 384 | 186.43 | 59.04 | 35.05 | 3.15 | 5.31 | -The FP32/FP16 results of TensorFlow were obtained by running the `sample/tensorflow/scripts/profile_effective_transformer_performance.sh`. +#### Encoder performance on V100 and PyTorch -The INT8 results of TensorFlow are obtained by running the `profile_effective_transformer_performance_int8.sh`. +* Performance on FP32 -The FP32/FP16 results of PyTorch were obtained by running the `profile_encoder_effective_transformer.sh`. +| Batch_size | Seq_len | Precision | TorchScript
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:------------------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP32 | 6.91 | 1.75 | 1.99 | 3.94 | 3.47 | +| 1 | 128 | FP32 | 7.84 | 3.23 | 2.20 | 2.42 | 3.56 | +| 1 | 384 | FP32 | 9.46 | 7.40 | 7.66 | 1.27 | 1.23 | +| 8 | 32 | FP32 | 8.78 | 5.09 | 4.79 | 1.72 | 1.83 | +| 8 | 128 | FP32 | 20.86 | 16.65 | 11.43 | 1.25 | 1.82 | +| 8 | 384 | FP32 | 61.20 | 52.38 | 37.15 | 1.16 | 1.64 | +| 32 | 32 | FP32 | 20.29 | 16.41 | 9.68 | 1.23 | 2.09 | +| 32 | 128 | FP32 | 70.65 | 62.44 | 36.18 | 1.13 | 1.95 | +| 32 | 384 | FP32 | 232.66 | 209.90 | 119.96 | 1.10 | 1.93 | -The INT8 results of PyTorch were obtained by running the `profile_encoder_effective_transformer_int8.sh`. +* Performance on FP16 -In the experiments, we updated the following parameters: +| Batch_size | Seq_len | Precision | TorchScript
Latency (ms) | FT
Latency (ms) | EFF-FT
Latency (ms) | FT
Speedup | EFF-FT
Speedup | +|:----------:|:-------:|:---------:|:------------------------------:|:---------------------:|:-------------------------:|:----------------:|:--------------------:| +| 1 | 32 | FP16 | 6.66 | 1.31 | 1.81 | 5.08 | 3.67 | +| 1 | 128 | FP16 | 6.99 | 1.59 | 1.81 | 4.39 | 3.86 | +| 1 | 384 | FP16 | 7.16 | 2.37 | 2.05 | 3.02 | 3.49 | +| 8 | 32 | FP16 | 7.18 | 1.99 | 1.84 | 3.60 | 3.90 | +| 8 | 128 | FP16 | 6.83 | 3.97 | 3.48 | 1.72 | 1.96 | +| 8 | 384 | FP16 | 17.51 | 11.47 | 7.44 | 1.52 | 2.35 | +| 32 | 32 | FP16 | 8.99 | 3.93 | 3.43 | 2.28 | 2.62 | +| 32 | 128 | FP16 | 20.20 | 13.53 | 9.29 | 1.49 | 2.17 | +| 32 | 384 | FP16 | 65.62 | 44.13 | 27.92 | 1.48 | 2.35 | -* head_num = 12 -* size_per_head = 64 -* num_layers = 12 -* average sequence length of Effective FasterTransformer is max_seq_len / 2 - -#### Performance on TensorFlow - -* Performance on V100 with FP32 - -| | TF (ms) | Effective FT (ms) | Effective FT Speedup | -|:-------------------------:|:-------:|:-----------------:|:--------------------:| -| <1, 32> | 3.94 | 2.8 | 1.4 | -| <1, 64> | 4.13 | 2.86 | 1.44 | -| <1, 128> | 5.31 | 3.57 | 1.48 | -| <8, 32> | 6.99 | 4.34 | 1.61 | -| <8, 64> | 10.77 | 6.5 | 1.65 | -| <8, 128> | 18.55 | 11.01 | 1.68 | -| <32, 32> | 18.31 | 10.76 | 1.7 | -| <32, 64> | 34.51 | 19.61 | 1.75 | -| <32, 128> | 66.97 | 36.94 | 1.81 | -| <64, 32> | 34.64 | 19.47 | 1.77 | -| <64, 64> | 66.38 | 36.26 | 1.83 | -| <64, 128> | 131.9 | 71.79 | 1.83 | -| <128, 32> | 66.98 | 35.62 | 1.88 | -| <128, 64> | 129.4 | 69.98 | 1.84 | -| <128, 128> | 258.44 | 139.94 | 1.84 | - -* Performance on V100 with FP16 - -| | TF (ms) | Effective FT (ms) | Effective FT Speedup | -|:-------------------------:|:-------:|:-----------------:|:--------------------:| -| <1, 32> | 3.49 | 2.64 | 1.32 | -| <1, 64> | 3.27 | 2.77 | 1.18 | -| <1, 128> | 3.49 | 2.74 | 1.27 | -| <8, 32> | 3.87 | 2.83 | 1.36 | -| <8, 64> | 5.04 | 3.42 | 1.47 | -| <8, 128> | 7.11 | 4.44 | 1.60 | -| <32, 32> | 7.00 | 4.37 | 1.60 | -| <32, 64> | 10.99 | 6.03 | 1.82 | -| <32, 128> | 19.89 | 10.71 | 1.85 | -| <64, 32> | 11.06 | 5.98 | 1.84 | -| <64, 64> | 19.81 | 10.42 | 1.90 | -| <64, 128> | 36.47 | 19.21 | 1.89 | -| <128, 32> | 19.67 | 10.37 | 1.89 | -| <128, 64> | 35.34 | 18.58 | 1.90 | -| <128, 128> | 69.08 | 36.76 | 1.87 | - -* Performance on T4 with FP32 - -| | TF (ms) | Effective FT (ms) | Effective FT Speedup | -|:-------------------------:|:-------:|:-----------------:|:--------------------:| -| <1, 32> | 9.61 | 5.26 | 1.82 | -| <1, 64> | 7.27 | 5.37 | 1.35 | -| <1, 128> | 9.04 | 6.02 | 1.50 | -| <8, 32> | 14.50 | 8.34 | 1.73 | -| <8, 64> | 25.38 | 13.98 | 1.81 | -| <8, 128> | 49.90 | 27.24 | 1.83 | -| <32, 32> | 48.08 | 26.08 | 1.84 | -| <32, 64> | 96.04 | 51.82 | 1.85 | -| <32, 128> | 203.03 | 90.93 | 2.23 | -| <64, 32> | 95.96 | 50.05 | 1.91 | -| <64, 64> | 189.31 | 87.43 | 2.16 | -| <64, 128> | 387.62 | 199.81 | 1.93 | -| <128, 32> | 189.80 | 84.86 | 2.23 | -| <128, 64> | 377.90 | 192.17 | 1.96 | -| <128, 128> | 820.11 | 408.03 | 2.00 | - -* Performance on T4 with FP16 - -| | TF (ms) | Effective FT (ms) | Effective FT Speedup | -|:-------------------------:|:-------:|:-----------------:|:--------------------:| -| <1, 32> | 9.69 | 4.57 | 2.12 | -| <1, 64> | 8.43 | 5.42 | 1.55 | -| <1, 128> | 8.24 | 4.41 | 1.86 | -| <8, 32> | 8.57 | 4.56 | 1.87 | -| <8, 64> | 9.59 | 6.26 | 1.53 | -| <8, 128> | 15.16 | 7.51 | 2.01 | -| <32, 32> | 15.12 | 6.59 | 2.29 | -| <32, 64> | 27.64 | 10.96 | 2.52 | -| <32, 128> | 53.27 | 20.32 | 2.62 | -| <64, 32> | 27.59 | 11.22 | 2.45 | -| <64, 64> | 51.94 | 20.24 | 2.56 | -| <64, 128> | 103.40 | 38.71 | 2.67 | -| <128, 32> | 52.46 | 20.27 | 2.58 | -| <128, 64> | 101.15 | 38.14 | 2.65 | -| <128, 128> | 207.24 | 75.06 | 2.76 | - -* Performance on T4 with INT8 - -| | TF FP16 (ms) | EFF-FT-int8v1-op (ms) | EFF-FT-int8v2-op (ms) | EFF-FT-int8v1-op Speedup | EFF-FT-int8v2-op Speedup | -|:-------------------------:|:------------:|:---------------------:|:---------------------:|:------------------------:|:------------------------:| -| <1, 32> | 7.16 | 5.54 | 6.06 | 1.29 | 1.18 | -| <1, 64> | 6.68 | 5.98 | 5.61 | 1.12 | 1.19 | -| <1, 128> | 6.78 | 5.53 | 5.2 | 1.23 | 1.30 | -| <8, 32> | 6.38 | 5.75 | 5.18 | 1.11 | 1.23 | -| <8, 64> | 9.7 | 6.36 | 5.71 | 1.53 | 1.70 | -| <8, 128> | 14.72 | 7.59 | 6.37 | 1.94 | 2.31 | -| <32, 32> | 13.96 | 7.32 | 6.26 | 1.91 | 2.23 | -| <32, 64> | 26.72 | 12.01 | 8.03 | 2.22 | 3.33 | -| <32, 128> | 53.56 | 22.63 | 13.16 | 2.37 | 4.07 | -| <64, 32> | 26.56 | 11.96 | 8.71 | 2.22 | 3.05 | -| <64, 64> | 52.13 | 21.22 | 12.81 | 2.46 | 4.07 | -| <64, 128> | 102.85 | 43.84 | 23.03 | 2.35 | 4.47 | -| <128, 32> | 50.07 | 20.51 | 13.81 | 2.44 | 3.63 | -| <128, 64> | 99.58 | 39.26 | 22.73 | 2.54 | 4.38 | -| <128, 128> | 208.58 | 87.74 | 49.87 | 2.38 | 4.18 | - -#### Effective FasterTransformer performance on PyTorch - -* Performance on T4 with FP16 - -| | TorchScript (ms) | Effective FT (ms) | Effective FT Speedup | -|:-------------------------:|:----------------:|:-----------------:|:--------------------:| -| <1, 32> | 12.45 | 2.16 | 5.76 | -| <1, 64> | 12.82 | 2.08 | 6.16 | -| <1, 128> | 11.54 | 2.24 | 5.15 | -| <8, 32> | 11.25 | 2.91 | 3.87 | -| <8, 64> | 11.1 | 3.34 | 3.32 | -| <8, 128> | 13.59 | 5.19 | 2.62 | -| <32, 32> | 12.95 | 5.18 | 2.50 | -| <32, 64> | 25.89 | 9.64 | 2.69 | -| <32, 128> | 54.72 | 18.83 | 2.91 | -| <64, 32> | 25.57 | 9.94 | 2.57 | -| <64, 64> | 51.11 | 18.15 | 2.82 | -| <64, 128> | 105.87 | 35.53 | 2.98 | -| <128, 32> | 50.54 | 18.69 | 2.70 | -| <128, 64> | 102.3 | 35.14 | 2.91 | -| <128, 128> | 214.55 | 72.22 | 2.97 | - -* Performance on T4 with INT8 - -| | TorchScript (ms) | EFF-FT-INT8v1-OP (ms) | EFF-FT-INT8v2-OP (ms) | EFF-FT-INT8v1-OP Speedup | EFF-FT-INT8v2-OP Speedup | -|:-------------------------:|:----------------:|:---------------------:|:---------------------:|:------------------------:|:------------------------:| -| <1, 32> | 11.74 | 2.49 | 2.42 | 4.71 | 4.85 | -| <1, 64> | 12.04 | 2.3 | 2.45 | 5.23 | 4.91 | -| <1, 128> | 14.17 | 2.93 | 3.01 | 4.84 | 4.71 | -| <8, 32> | 11.13 | 2.53 | 2.6 | 4.40 | 4.28 | -| <8, 64> | 10.7 | 3.27 | 2.9 | 3.27 | 3.69 | -| <8, 128> | 13.63 | 5.97 | 4.08 | 2.28 | 3.34 | -| <32, 32> | 12.97 | 5.62 | 4.3 | 2.31 | 3.02 | -| <32, 64> | 25.83 | 10.22 | 6.97 | 2.53 | 3.71 | -| <32, 128> | 54.59 | 21.32 | 12.92 | 2.56 | 4.23 | -| <64, 32> | 25.85 | 10.28 | 7.43 | 2.51 | 3.48 | -| <64, 64> | 52.35 | 19.59 | 12.81 | 2.67 | 4.09 | -| <64, 128> | 109.09 | 42.38 | 25.09 | 2.57 | 4.35 | -| <128, 32> | 52.08 | 19.67 | 13.66 | 2.65 | 3.81 | -| <128, 64> | 102.25 | 37.93 | 24.69 | 2.70 | 4.14 | -| <128, 128> | 215.16 | 86.5 | 54.04 | 2.49 | 3.98 | ### Performance on BERT Applications: SQuAD MRPC #### Performance of TensorFlow -* [BERT-base-SQuAD-1.1 model]( For FP32/FP16, we use https://api.ngc.nvidia.com/v2/models/nvidia/bert_tf_ckpt_base_qa_squad11_amp_128/versions/19.03.1/zip; for INT8, we use https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-12_H-768_A-12.zip, finetune it with FP32 precision and then use QAT to generate INT8 checkpoint.), batch size 8, seq len 128, on T4. +* [BERT-base-SQuAD-1.1 model]( For FP32/FP16, we use https://api.ngc.nvidia.com/v2/models/nvidia/bert_tf_ckpt_base_qa_squad11_amp_128/versions/19.03.1/zip; for INT8, we use https://storage.googleapis.com/bert_models/2020_02_20/uncased_L-12_H-768_A-12.zip, finetune it with FP32 precision and then use QAT-KD to generate INT8 checkpoint.), batch size 8, seq len 128, on T4. We use `tensorflow/tensorflow_bert/profile_transformer_inference.py` to generate the following results. @@ -1437,11 +1361,11 @@ We use `tensorflow/tensorflow_bert/profile_transformer_inference.py` to generate | FasterTransformer OP FP16 | 79.03% | 86.23% | 1.19 | | FasterTransformer OP FP16 (remove padding) | 79.03% | 86.23% | 0.68 | | | | | -| Finetune FP32 | 82.42% | 89.55% | x | -| FasterTransformer OP INT8v1 | 81.86% | 89.30% | 1.27 | -| FasterTransformer OP INT8v2 | 81.94% | 89.20% | 0.92 | -| FasterTransformer OP INT8v1 (remove padding) | 81.86% | 89.30% | 0.89 | -| FasterTransformer OP INT8v2 (remove padding) | 81.94% | 89.20% | 0.66 | +| Finetune FP32 | 78.81% | 86.25% | x | +| FasterTransformer OP INT8v1 | 80.84% | 87.69% | 1.25 | +| FasterTransformer OP INT8v2 | 80.70% | 87.59% | 0.83 | +| FasterTransformer OP INT8v1 (remove padding) | 80.84% | 87.69% | 0.77 | +| FasterTransformer OP INT8v2 (remove padding) | 80.70% | 87.59% | 0.62 | #### Performance of PyTorch @@ -1456,10 +1380,10 @@ We use `tensorflow/tensorflow_bert/profile_transformer_inference.py` to generate | FasterTransformer OP FP16 | 86.93% | 93.15% | 11.28 | | FasterTransformer OP FP16 (remove padding) | 86.96% | 93.16% | 5.60 | | | | | -| FasterTransformer OP INT8 mode 2 | 86.08% * | 92.59% * | 7.19 | -| FasterTransformer OP INT8 mode 2 (remove padding) | 86.08% * | 92.59% * | 4.51 | +| FasterTransformer OP INT8 mode 2 | 87.50% * | 93.48% * | 6.81 | +| FasterTransformer OP INT8 mode 2 (remove padding) | 87.50% * | 93.48% * | 3.48 | -Note *: the checkpoint for INT8 is QAT-finetuned by ourselves, and is different with other's, so the accuracy is not comparable, the corresponding FP16 accuracy is `F1/EM: 92.89%/86.62%`. +Note *: the checkpoint for INT8 is QAT-finetuned with knowledge-distillation by ourselves, and is different with other's, so the accuracy is not comparable, the corresponding FP16 accuracy is `F1/EM: 92.89%/86.62%`. * BERT-base-MRPC, dev set: batch size 8, seq len 128, on T4 diff --git a/docs/gpt_guide.md b/docs/gpt_guide.md new file mode 100644 index 000000000..f6a271643 --- /dev/null +++ b/docs/gpt_guide.md @@ -0,0 +1,294 @@ +# GPT + +## Table Of Contents + +- [GPT](#gpt) + - [Table Of Contents](#table-of-contents) + - [Model architecture](#model-architecture) + - [Introduction](#introduction) + - [Setup](#setup) + - [Requirements](#requirements) + - [How to use](#how-to-use) + - [Prepare](#prepare) + - [Run GPT](#run-gpt) + - [gpt with triton backend](#gpt-with-triton-backend) + - [Performance](#performance) + - [Perofrmance of GPT-89B](#perofrmance-of-gpt-89b) + - [Performance C of GPT-175B](#performance-c-of-gpt-175b) + +## Model architecture + +
+
Fig. 1 Flowchart of GPT model.
+ +## Introduction + +GPT model is a variant of Decoding model. GPT model does not require the results from encoder and the cross multi-head attention, and use GeLU as the activation. However, OpenAI shows that using very giant model and lots of training data can significantly improve the capacity of GPT model in [their paper](https://arxiv.org/abs/2005.14165). However, it is impossible to put such model into a single GPU. For example, the largest model, GPT-3, has 175 billion parameters, which takes about 350GBs under half data type. Therefore, multi-gpus, even multi-nodes, is necessary. + +In FasterTransformer 4.0, we propose the multi-gpu inference library to run GPT-3. FasterTransformer supports `Tensor Parallel` and `Layer Parallel` in the same time and provides the api of cpp, TensorFlow/PyTorch op and triton backend. In cpp and PyTorch op, users can use MPI to run multiple gpus on multiple nodes. For example, using 4 dgx-1 V100 nodes (16 GBs memory per GPU) to run the GPT-3 model. To be convenient on serving, we also provide the triton backend. However, this backend only supports single nodes, multi-gpus currently. For TensorFlow op, FasterTransformer only supports single gpu now. + +The arguments, inputs, and outputs of GPT: + +* Arguments: + 1. Maximum batch size (B) + 2. Maximum sequence length (S) + 3. Top k value (K) + 4. Top p value (P) + 5. Head number (H) + 6. Size per head (N) + 7. Number of decoder layers + 8. Start id of the vocabulary + 9. End id of the vocabulary + 10. Vocab size (V) + 11. Tensor parallel size + 12. Layer parallel size +* Inputs: + 1. The table for embedding lookup. The shape is \[ V, H x N \]. + 2. The weights of all parameters. + 3. Position encoding table. The shape is \[ S, H x N \]. + 4. Inputs contexts. The shape is \[ b, s \], where b <= B, s <= S. +* Outputs: + 1. The output ids. The shape is \[b, S \]. + +## Setup + +### Requirements + +- CMake >= 3.8 for Tensorflow, CMake >= 3.13 for PyTorch +- CUDA 10.1 or newer version +- Python 3 is recommended because some features are not supported in python 2 +- Tensorflow 1.13 or 1.14 or 1.15 +- PyTorch >= 1.5.0 + +Recommend use nvcr image like `nvcr.io/nvidia/tensorflow:20.12-tf1-py3` or `nvcr.io/nvidia/pytorch:20.12-py3`. + +## How to use + +### Prepare + +* Install required tools + +```bash +pip install -r ../requirement.txt +``` + +To run the GPT on c, users need to convert the checkpoint of TensorFlow or PyTorch to binary files, and then load by FasterTransformer c api. Unfortunately, there is no published large model. So, users are only able to verify the correctness by smaller model. Currently, FasterTransformer provides two kinds of samples. First one is using the checkpoint of [OpenAI GPT-2 model](https://github.com/openai/gpt-2) (which is trained by TensorFlow); Another choice is using the checkpoint of [Megatron](https://github.com/NVIDIA/Megatron-LM) (which is trained by pytorch). + +* Download vocab and merge table + +They can be used in both OpenAI GPT-2 and Megatron. + +```bash +wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json -P models +wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt -P models +``` + +* Downlaod openai-gpt model and convert + +To convert the OpenAI GPT model to binary, FasterTransformer provides a tool `sample/tensorflow/utils/openai_gpt_ckpt_convert.py` to convert the checkpoint. + +```bash +python tensorflow/utils/download_gpt2_model.py +e.g. python tensorflow/utils/download_gpt2_model.py 124M +python ../sample/tensorflow/utils/openai_gpt_ckpt_convert.py -o models/openai-gpt-models/c-model/124m/ -i models/124M/model.ckpt -g 1 # convert 124M model with 1 TP mode +python ../sample/tensorflow/utils/openai_gpt_ckpt_convert.py -o models/openai-gpt-models/c-model/124m/ -i models/124M/model.ckpt -g 4 # convert 124M model with 4 TP mode +``` + +In the repo of OpenAI, they provide many models, including `124M`, `355M`, `774M` and `1558M` + +* Download megatron model and convert + +To convert the Megatron GPT model to binary, FasterTransformer provides a tool `sample/pytorch/utils/megatron_ckpt_convert.py` to convert the checkpoint. + +```bash +wget --content-disposition https://api.ngc.nvidia.com/v2/models/nvidia/megatron_lm_345m/versions/v0.0/zip -O megatron_lm_345m_v0.0.zip +mkdir -p models/megatron-models/345m +unzip megatron_lm_345m_v0.0.zip -d models/megatron-models/345m +git clone https://github.com/NVIDIA/Megatron-LM.git +python ../sample/pytorch/utils/megatron_ckpt_convert.py -i ./models/megatron-models/345m/release/ -o ./models/megatron-models/c-model/345m/ -t_g 1 -i_g 1 +python ../sample/pytorch/utils/megatron_ckpt_convert.py -i ./models/megatron-models/345m/release/ -o ./models/megatron-models/c-model/345m/ -t_g 1 -i_g 8 +``` + +where `t_g` means the number GPUs of TP during training, and `i_g` means the number of GPUs for TP during inference. + +Note that there are different checkpoint version of Megatron. The version of the checkpoint above is 0. If users have trained a model by themselves, the default version of latest Megatron is 3. To convert the checkpoint with version 3, please add `-checkpoint_version 3`. + +### Run GPT + +1. Run GPT under on C++ with multiple gpu + + 1.1 Generate the `decoding_gemm_config.in` file. + + ```bash + ./bin/gpt_gemm + E.g., ./bin/gpt_gemm 8 8 12 64 50257 32 1 1 + ``` + + Here, `local_batch_size` can be set as `batch_size` if users do not use the layer parallelism. If users use layer parallelism, we recommand to set `local_batch_size` to be smaller than `batch_size` to hide the bubble. But this requires larger `batch_size`. `context_local_batch_size` is used for computing the k/v cache of input. Similar to `local_batch_size`, users can use `batch_size` directly if you don't use layer parallelism, and setting to be smaller than `batch_size` when you use layer parallelism. + + 1.2 Run GPT on C++ + + Users can see the details of arguments in `sample/cpp/gpt_config.ini`. It controls the model path, model size, tensor parallelism size, and some hyper-parameters. + + ```bash + ./bin/gpt_sample + ``` + + then use following script to convert the token ids to sentence. + + ```bash + python ../sample/pytorch/utils/convert_gpt_token.py --vocab_file=./models/gpt2-vocab.json --bpe_file=./models/gpt2-merges.txt + ``` + + By setting the `is_half` of `gpt_config.ini` to 1, users can run gpt model under fp16. + + 1.3 Run with tensor parallelism (TP), layer parallelism (LP) and pipeline parallelism (PP) + + Users can use `tensor_para_size` and `layer_para_size` in `gpt_config.ini` to control the size of model parallel. Besides, in the layer parallelism, we can use pipeline parallelism to reduce the bubbles. We can set the `layer_para_batch_size` to determine the real batch size for each forward. For example, if the total batch size is 4, and layer_para_batch_size is 1, then we will split the total batch into 4 parts, and each time we only use 1 batch size. Users can set them in the `gpt_config.ini`. + + Note that we split the definition of LP and PP here, but we often combine them to hide the cost of bubble. + + ```bash + mpirun -n 8 ./bin/gpt_sample + python ../sample/pytorch/utils/convert_gpt_token.py --vocab_file=./models/gpt2-vocab.json --bpe_file=./models/gpt2-merges.txt + ``` + + 1.4 Run gpt on multi-nodes + + Since the c sample codes use the MPI to communicate, it can extend to multi-nodes easily, except that users need to setup some network environment to communicate between multi-nodes. The following scripts are an example to show how to run multi-nodes inference on slurm. + + ```bash + srun -N2 -n2 -t 600 --pty bash # Assume we get 2 nodes: prm-dgx-09 and prm-dgx-10 + srun -N2 -n2 docker pull nvcr.io/nvidia/tensorflow:20.07-tf1-py3 + + srun -N2 -n2 nvidia-docker run -itd --rm --privileged --network=host --pid=host --cap-add=IPC_LOCK --device=/dev/infiniband -v $PWD:$PWD -w $PWD --name ft-test nvcr.io/nvidia/tensorflow:20.12-tf1-py3 /bin/bash + + srun -N2 -n2 nvidia-docker exec -i --env SLURM_NTASKS --env SLURM_NODEID --env SLURM_PROCID --env SLURM_STEP_NODELIST --env SLURMD_NODENAME --privileged ft-test bash -c "mkdir /root/.ssh && cp $PWD/ssh/* /root/.ssh && chmod 700 /root/.ssh && chmod 640 /root/.ssh/authorized_keys2 && chmod 400 /root/.ssh/id_rsa && apt-get update && apt-get install ssh -y && mkdir /run/sshd/ && /usr/sbin/sshd -p 11068 && nvidia-smi -lgc 1530" + + nvidia-docker exec -ti ft-test bash + cd FasterTransformer/build + mpirun --allow-run-as-root -np 2 -H prm-dgx-09:1,prm-dgx-10:1 -mca plm_rsh_args "-p 11068" ./bin/gpt_sample + srun -N2 -n2 docker stop ft-test + ``` + +2. Run GPT on PyTorch + + Basically, `gpt_sample.py` includes the example how to declare a model, load a ckeckpoint, and forward context inputs and get generated outputs in Pytorch. + + For generating outputs based on context inputs, create a text file including the context inputs (line by line) and set `--sample_file_input` to the text file path. (By default, the script will generate outputs without context inputs.) Set `--sample_file_output` to write the outputs to a file. Use `--fp_16` to run in FP16. + + Run with `-h` to see more settings. + ```bash + python ./pytorch/gpt_sample.py -h + ``` + + 2.1 Run GPT with TP and PP on single node (NVIDIA DGX A100) + ```bash + # No parallelism (tensor_para_size=1, layer_para_size=1) + mpirun -n 1 --allow-run-as-root python ./pytorch/gpt_sample.py + + # TP (tensor_para_size=8, layer_para_size=1) + mpirun -n 8 --allow-run-as-root python ./pytorch/gpt_sample.py --tensor_para_size=8 --layer_para_size=1 --ckpt_path="/workspace/fastertransformer/models/megatron-models/c-model/345m/8-gpu" + + # LP (tensor_para_size=1, layer_para_size=8) + mpirun -n 8 --allow-run-as-root python ./pytorch/gpt_sample.py --tensor_para_size=1 --layer_para_size=8 --ckpt_path="/workspace/fastertransformer/models/megatron-models/c-model/345m/1-gpu" + + # TP and LP (tensor_para_size=4, layer_para_size=2) + mpirun -n 8 --allow-run-as-root python ./pytorch/gpt_sample.py --tensor_para_size=4 --layer_para_size=2 --ckpt_path="/workspace/fastertransformer/models/megatron-models/c-model/345m/4-gpu" + ``` + + For PP, set `--layer_para_batch_size` so that batch_size >= layer_para_batch_size. + + 2.2 Run GPT with TP and PP on single-node/multi-node (NVIDIA SuperPOD) + #### Set up in interactive mode + + ```bash + srun -A devtech -J devtech-gpt:gpt  -p luna -N1 --mpi=pmix --ntasks-per-node=8 --container-image nvcr.io/nvidia/pytorch:20.12-py3 --container-mounts /lustre/fsw/devtech/hpc-devtech/dahn/FasterTransformer:/workspace/fastertransformer --container-workdir /workspace/fastertransformer --pty bash + + mkdir build && cd build + cmake -DSM=80 -DCMAKE_BUILD_TYPE=Release -DBUILD_PYT=ON .. && make -j12 + ``` + + #### Run on singe-node + * tensor_para_size=8, layer_para_size=1 + + ```bash + srun -A devtech -p luna -N1 --mpi=pmix --ntasks-per-node=8 --container-image nvcr.io/nvidia/pytorch:20.12-py3 --container-mounts /lustre/fsw/devtech/hpc-devtech/dahn/FasterTransformer:/workspace/fastertransformer --container-workdir /workspace/fastertransformer/build python ./pytorch/gpt_sample.py --tensor_para_size=8 --layer_para_size=1 --ckpt_path="/workspace/fastertransformer/models/megatron-models/c-model/345m/8-gpu" + ``` + + #### Run on multi-node + * tensor_para_size=8, layer_para_size=2 + + ```bash + srun -A devtech -p luna -N2 --mpi=pmix --ntasks-per-node=8 --container-image nvcr.io/nvidia/pytorch:20.12-py3 --container-mounts /lustre/fsw/devtech/hpc-devtech/dahn/FasterTransformer:/workspace/fastertransformer --container-workdir /workspace/fastertransformer/build python ./pytorch/gpt_sample.py --tensor_para_size=8 --layer_para_size=2 --ckpt_path="/workspace/fastertransformer/models/megatron-models/c-model/345m/8-gpu" + ``` + +3. Run GPT on tensorflow + + Note that the tensorflow op only supports single gpu. + + ```bash + ./bin/gpt_gemm 4 4 12 64 50257 1 1 1 + python tensorflow/gpt_sample.py --batch_size=4 \ + --length=32 \ + --top_k=4 \ + --top_p=0.6 \ + --data_type=fp16 + ``` + +### gpt with triton backend + +Details are in [transformer_backend](https://github.com/triton-inference-server/fastertransformer_backend) + +## Performance + +Hardware settings: +* 8xA100-80GBs (with mclk 1593MHz, pclk 1410MHz) with AMD EPYC 7742 64-Core Processor + +We demonstrate the inference time of Megatron and FasterTransformer on Triton, and show the speedup of FasterTransformer compare to Megatron. In the experiments of encoder, we updated the following parameters: + +* head_num = 96 +* size_per_head = 128 +* num_layers = 48 for GPT-89B model, 96 for GPT-175B model +* data_type = FP16 +* vocab_size = 51200 +* top_p = 0.9 +* tensor parallel size = 8 + +### Perofrmance of GPT-89B + +| Batch_size | Input Seqlen | Output Seqlen | Megatron
Latency (ms) | FT
Latency (ms) | FT
Speedup | +|:----------:|:------------:|:-------------:|:---------------------------:|:---------------------:|:----------------:| +| 1 | 128 | 8 | 342.86 | 279.44 | 1.23 | +| 2 | 128 | 8 | 369.43 | 280.24 | 1.32 | +| 4 | 128 | 8 | 540.97 | 317.71 | 1.70 | +| 8 | 128 | 8 | 912.46 | 377.50 | 2.42 | +| 12 | 128 | 8 | 1263.39 | 445.46 | 2.84 | +| 16 | 128 | 8 | 1663.39 | 524.80 | 3.17 | +| 20 | 128 | 8 | 1991.16 | 575.83 | 3.46 | +| 32 | 128 | 8 | 3086.85 | 786.57 | 3.92 | +| | | | | | | +| 1 | 512 | 32 | 1244.81 | 887.52 | 1.40 | +| 2 | 512 | 32 | 1357.54 | 940.11 | 1.44 | +| 4 | 512 | 32 | 1970.08 | 1133.22 | 1.74 | +| 8 | 512 | 32 | 3341.66 | 1415.02 | 2.36 | +| 16 | 512 | 32 | 6090.07 | 1952.2 | 3.12 | + +### Performance C of GPT-175B + +| Batch_size | Input Seqlen | Output Seqlen | Megatron
Latency (ms) | FT
Latency (ms) | FT
Speedup | +|:----------:|:------------:|:-------------:|:---------------------------:|:---------------------:|:----------------:| +| 1 | 128 | 8 | 660.38 | 488.86 | 1.35 | +| 2 | 128 | 8 | 687.34 | 509.47 | 1.35 | +| 4 | 128 | 8 | 1004.88 | 629.64 | 1.60 | +| 8 | 128 | 8 | 1705.07 | 749.86 | 2.27 | +| 12 | 128 | 8 | 2365.02 | 886.24 | 2.67 | +| 16 | 128 | 8 | 3111.57 | 1037.47 | 3.00 | +| 20 | 128 | 8 | 3723.73 | 1135.72 | 3.28 | +| 32 | 128 | 8 | 5778.72 | 1547.44 | 3.73 | +| | | | | | | +| 1 | 512 | 32 | 2384.78 | 1719.96 | 1.39 | +| 2 | 512 | 32 | 2503.24 | 1830.56 | 1.37 | +| 4 | 512 | 32 | 3658.65 | 2092.56 | 1.75 | +| 8 | 512 | 32 | 6238.79 | 2629.97 | 2.37 | +| 16 | 512 | 32 | 11409.53 | 3706.23 | 3.08 | \ No newline at end of file diff --git a/docs/images/FT_Encoder_T4.png b/docs/images/FT_Encoder_T4.png index 72c978eb9fd1e4d639c58c6ea40ceeb04e510e9a..17b13f4fc4e1c11a42ff6c38275c244f714e8cd8 100644 GIT binary patch literal 137242 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 b&8b$HT=NgnJvF^b-Fy7#sUzgWKJots_M@d8 literal 266793 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

OOKX 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 diff --git a/docs/images/FT_GPT_A100.png b/docs/images/FT_GPT_A100.png new file mode 100644 index 0000000000000000000000000000000000000000..10605fcaebdf23af985fed02e4624b86bc1b8e7d GIT binary patch literal 76034 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ÐPEGLQSnSt&4)B-qoiG3IhsW1OCZ9}x&>nC($2J$RuA@$=XDnHdv$T#OuL z>-7=52%%R2BnchA;Xz)Wp0Z>V3=NpUs4xmDU(1l@YIpR^&_yS!4WMag>=ZUMgc90& z!>Jb|{Awmm_WQQXBlVGZ;MPBP0YPUnc<$5O4~$A~3EwnE(wXl2xf@m?<=bl0QTe2Q z5>!`mn*3MW20Twb^YK1Xw{c|Ek`Z16iMNtbZ|ApK3ja>TJ6r~gd-4|1;xo41_?sMb z#-BOgRV@tlkEwiqRLVCNbA4mu?;1+OrdnuHQDYi-u753}5ILf1z2ocEVFKJh>1$lb z6-8gXJvt>RzklgzxQ6)peM=sqn3ES&fIkwmmS20&t{-)VJtF79te06h_K(GOqn@{k zZ(|G|oQ--LF}gH)BSTjWL|-ra$`x7Q!?rT?K!WRz(E$ z9OZp$YsV`Q(cq81OCTi?EY0Dhq+36{hLqLdX;7b#Dl7jIQzPWmqem|&^p~01QTe-i zUI&>l;PeWr{5I9!LSghFo0^N3)%Y&K@Pie{I@v-(^nDtBYe%v-Yw~oygDRaVoB+RF zs*YZk*NFFH9^BLtRTUNz5Pa^D&{yroCD%z^RKsyqs<1FsG8m1|y@l{>DsXP=&ePzu z_xq3P#;nCvST`1JjzdY^@&CcMU@-kazJ+q7hnAkd(`*d&hzPoX%IT&P7hxn7r59%8 z=(+?n>?;GRhuKvAy6OeJ*e}(0Tw|oDX*`;PKmdJw-&ulYl5=4H;s>$H{&o>BYE?Go z0+6wn_895;+;rKn@Myx!VC1p?Xp}Xk%o?Pah8-5_(F}hl@5mcM(xSMSipL%VO<%Wa zwrD}Roplx{iD*ironT)W5s?skOtKc71V3bn2*N-sia7Z4p^Cq0w5RNM#mu ze9lD4&{LUs)nJY!HmXX`qQ{~V33E*l$o0uA@zrL~w9Rp86<inDusP%SH?ezEF;}#;J1Zc|He?!t%zRf5A`?9 zka}ps%f4O7Whxbv(8DES{tRk{zxL~2o!T{rXcj^ZsJHIBK6b7_K7;eNgXX0QG)wn^ z(lkDl{T^xDOLefo{b$D|idFiu)tc^1wxCV3<0n5H8ZHQKh%Z4>&|AxsbcR_&1{#+R ze3P7Q6VHCVB*O)!MYn-j5I?Ou|Ljb@E|sUnz6QnmVdCwSKPOQPy^WkH@R2oyUk(uRYLhBHP8$ufwGzKSFRWdU4tZ$t@G%Gbk;h)G=Z zu0}!@|d7ydj;K!kQ=)USI6ReGv{L^1qL_N_WPT$I-XMf6iJzcmxSQoGhGm zKT6`bAHc)M@Fy0ny~W9xes2D>rm1&9_vk%WD^FZK?d}&~sKgI*4%N^3byS%gaiRCx zZE*#Oln_IAI=e)O!RS7#N)ED3Ss!V6xEK{|uy_~-i)sVi^U@azXmx`>$p{=tAvk-l zjiW�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≪iUx#}m{(zkF=`8m_A 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 z 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

#nQ)wWRBV-SU{~xZKjD{NMN1 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 CU2Ww6 diff --git a/docs/images/Py_Decoder_T4.png b/docs/images/Py_Decoder_T4.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f398b98ccd381c246a27b72c51e4410c80a8c3 GIT binary patch literal 103836 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�e$KJi*z|JzeF(S6=T{RpP2qWf20N@_Hp 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 literal 0 HcmV?d00001 diff --git a/docs/images/Py_Encoder_T4.png b/docs/images/Py_Encoder_T4.png new file mode 100644 index 0000000000000000000000000000000000000000..0268f2a21679591373c0e1b70175f817daa8dc38 GIT binary patch literal 163595 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

M7Nu9W(R_fL(+LiV-+-YdT#bd2G(*yRf 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�S%4hIkBIpgc*MU@7iD(al*KoSJqbO&Mj%ZDR9 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 literal 640760 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

    q8zj1bH5YYIKT@!M7Bd4; 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 Xq?5MS9~8Hy#DD`qpV#d_{>^^@B|atv diff --git a/docs/images/TF_cpp_Encoder_T4.png b/docs/images/TF_cpp_Encoder_T4.png deleted file mode 100644 index 72aea7de7d53cbff596a323801df20e7e6c1f621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396730 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


    kDjf(q9Vu*>41v2T*}vok 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

    INs}6= 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%0DGS42+y@sv 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%0AeRldq)i>kHm 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 D=Gz3i diff --git a/docs/images/gpt_flowchart.png b/docs/images/gpt_flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ba9250f23a508a93224710a32a45af9721f3ea GIT binary patch literal 747313 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

      dbv_$f>e!)=91VGK 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

      +vuoa+djf<5bxHd5?RURC1^=CL;M!}C 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 heq$ynJew5HQZh)tZ+Gv04-)X_lC{d9D6 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

      i29^D7aw z09FBBbs-uO9n(4Zx?A?Ws2w|Yz{0vh@CzoVL9c=w`3ZT&oC&3WM_uaB>vA3O0= z*&L{nQJlRJW(S8*5W)Z+SCpS{&N$caGUWykF)l$#N#kZ^7`MB9`+`(=InwCYlQ3np zX(IKF829y>>#nh^)U;rtpeBXz_DgHEG8%*_U<{U4Ry6g~2NKnc6sLPI;IF8Y#j$JW zPO$TVpx8oK1hGH-xFwM1Y2G5k-2L3svwtBcKw$@~`4N*jQY0Ck)6pCInC3m^@8b-= z&H=a|;1y_SN^{=2E^r?JZ;@B#wB{g+kgY&Mz|i=Y?R@X!FEI7iM5~cP*=R38gDI{D z`ER>fPRa_9WloYH&G>}O=nt}pQzFPw`5U_j!0Eslo7Clv)3l&Ms2+!j&LAJca{z{c zhGAYfs1s~U%+D_4Xp@MvK|@GKXm!W(DB6H%05}%r7qF5~0Tw=eif{7wa)uf1Qry!+ zz*?Jb8x)AZgE}6wS;E*4j29P0Mn*!)@?mW%kgMou9q1x7I-HX7389yEAx@Q7k~RTq z13~z54G7~n!Igq!3-kyo69v5fD$#Q?ZHpL15j5iz8>2ARr?#hxYMcFOq??jQg^x0D zNj{kD-M3YUQN*0rfL@9cj`|5yvv>-i-3ZLJxp+XdKDXcd)9;lPQ|o6SG5fRX8+E4}xMUm*Wj72yo@4rABa6&?h9dK%*Tno93v$ zq8p5|Ie)$iGE?tAd|+TzSb^*7X#%I<5YZW))}R#+W9oeP1akrnN<&7c*i>)XC={wK zoP?ts99@X2$MUp80#bVZj=~C1d4N#k$6-q2&>@bCCGdtYPTjQ!3r%C^S$~qT6sj-&_XOGxNeNq>ta>Aq7zPh8q3Kva=`BWW5UXKoC3^RC}|d za%0rdeca5|FW0Dnf#BcEK75S81rL-}Li?=fULfDx!G`4-Xrp zi>nKW*vMf9N4;{J(~mFG>;9L#$?Bp0%^J89 ziyQ{lWous~4Br}6E=OZ62xXTNZaNK*s`14&0Tu}s^n)Br39}b$Jz5wr5L_DL*zw-i z83Ti$z> zD`}{b1=&Tx=lteij%-Vp+RHgiqCw3KAddIk>T|uDBr>^?nya0c9R0D#I+HrMy9)v|xw$ z6xd=FYC!BuFM?zi90?KYhU&OD12|r8Zf?=h(OOT1Kz7#4uLPIw*?)$Nt*l^YWHyZd z_oC0^6p>jU`=nY(X(qZNnkuVnyYHOVW2tl^b^e_e0N|2g2ng=N#)`N zaL-}sRwrT=f3_#Zl3&71nSem#vfVFu_z6@@DAEvVM!_s9QE}&07^E*UD|3hN%J}#R z$wGPt1`&g-a3a$QVNufj*O&7!vSwTiq1@Mbs%mOgR)kGbk6v{^^%GHy3k>+Kyqo}U zxS&8NC7si$3l;+IIuX=%h_z^o6@57D0yB?(@br@*6B!~#?Azp|6hH&WXUB5O)j}W+ zpk5I8jHwN`CRB+{5NfpaDOfkNm zN+pKOQZd-?$<4}QX0dZVo-?gUvF|FqGp@ARVy^Xg_~XYjrd5ln{g<7h`N&6;%25^>&&&E)}wK1Yr!ozChrJ$~ZOhvE5;{xD^ zW~a=%zCHSzcMO&TKA$Ai^gjI!_C3Nw7&Mq)P^TaYghV341u~$k+=09!+&UBHP5fhb z0vetX;4EsCcfjpzQKh~ogo5F@4Ar!UZ&cLO^z!_j=Hr9~g~&7i3SIZEy-fNHNNSnJ zKFX0>)PplVtoIOuV@!dklct`jdEH1qpp34((RtiC$9iPJgACO6*${wY5qv_@tAbo$ zPDLLUoUcZK2AtOqIWk}lvm0wrDru-%3b^kiq(H&2FJg|ddSSYO|mMT-fp6y=gXKft)9FzN@^quqZMT8f%hfhS% zAoHt665px83v=v8S!mfrjs7tIn)>?suF$^+k^7DT38wMn($Z4!tz5d`(PlJ})qMnk zdGY=+&elf{P3dmVR}B1}PnI~4mJU<8K>iv$ZNM#*)&&8w@D@nb#=$TO^5B66NX91Y z>I3#6P7DR^h<8XTc8eTkk__+>6B0II=&E-?h_OeDuAW}#050NkxEAfxwdi!4<90a5af0s zx-jU6y!XG@`|GHv*EN0^c5kO@t3T`CS;R}3ry zkOsA`8?Vbg`Nudf^@qGT<^0M7j_O`>8=J!AZ)mT>_aZ#d$RFgNsC!+;uW#m-=t-W? zF}|O)G*ZsB@*OrMlfFNWpM0#Vo9Ap14f;!X21P)xn2r1dDgyA0!s^_n|paQDpsdus;*GPc=Pw_(n=CB&2!ytbu{Hzhx~FkGYiSrl@Z<QCeZOfUJfK26<`SPpfSoueYgyD zgfVP*mX@-GLQae6XMa8nqf_8WhuxA_@k9nxmwB(3LC8kIqG|#SaDFZ^?h57RlrauK zH?Iyfb=t!Ph-!@vfNLNWs8@Vt`Ngc3=&1@oY^uh&Kp9h6DbQ~8^y!1b1vFslT4Q&8 zFlW_-KI#Jc4}83gZYH>adW&IY_P=U0d*uz^8yfu4DyJnMA0H@khq+;e!o~fsubTSq zbMqH3fL7C9nY$uE5&ol?u;x&Aepo6kEls1mHq{b(?5YW*lA>aN9nVF+#Y(ZOJ7!Zo zNMGoam2?DA168YkN-jO5g>(%K7hGy|7R3%?Lz(2fR8tzZwjm-SVlY129ct%1&c8Ja z$4t!NqAH!nMepr#tx%ND+qLASUvt~?hZeHTqGuN9Xt=K6nuQE2S{_q*K>0A~GjNxn zSOvbe79y*--8M}qDJeAsLA%fo+GQxRpqY!r=XKY4dGw{dfu9-yoT+cXpYNWK5EK%> z0M~#w1+6aJW;$+@w*}HCvbVOk0X&-m*8yB;qoTp~_80Kfz}`qJ>RADSWy$<I?QUqDhm zepIT72GuARj-CA*_&l~x59QJqGi~fWUm?axMKk4V-+SPlMgzlj1OxA#YS$KJWj1aa zSE4Y*M6gHmZ_EC8!gozlgR`+|UJ*AZBKu3xvVF(yjwpk@2lHi9j6I{Qk+bF=joqak zbmUFPfBwu5$olx>XUX+#tu9Ke+9BXra}|G`sayUhR#*EpAkm)hNuOGb*)Z)?ek|G6 z#P2EQtH(Zo@10MeMI{t;ub6hPY8gE}$zen##&$iUiKD%;SFTf6h7^&0Q`X6JRoWn{ zOO|Iw?W z-hcjo{*mMNKe9cb-wTLVt>lVW#Ap1oM7~h|AJ#z}SsW{2h`H$SW4%E+=|tuaAI-mu zrepigaFOpb`QB`1?|_RM-b|&UO#iR>@1@N}_{%1$kBZyA$eHKN#A*J%MEBnl0eIpk(ijpd8~=kf(rPV5)rGKV z*rA$si(X}Z!|RcZjKydL)N)SB%I|Wkpl!OVA;lC)Jh#BfrJA!15KbaBB2i@wQR@>BVMKNcQ;#Y&-14zRe53jDFZL zAxR~4FG2J7e7t7p9m&Z>FpbfPdCRW>&Q^E{OEYhsU;5g^6B@o*Ez&C)Z~x(gu9E=X zB)o$$e2ceQNl|b0){aq|E8l;3vgr)YzB(!@3VI$8XT}677I+T< zlq?pNB*!u{S>mru5_8M&fY?CnQGnzX8X7irS8ss3dOrfxmA|;UT4y!Dx%fR7gecHX z6oanx~G{$6m!nx8M=5C#`$)t>IvQy&(a#pwwp)f;ML_KMujd5;^_l)lip=k3ie&eUEO zo(&mS0RBSV1WGn2GnqIQ_ZuYqP-qY&C=YxE+hUc|JO+Y<*&z~#2!xLUzDuH@0}waJ zBT)rpR8%r-rVwKWYQ=tgXd|FefYntBR~|?g5hw~h^!@-9Rt^XZpeKaF4upoP06s4^ zGf7EGV)mhl%ly~{779Q`i5#0k%SSR4I&G3P06~C+HVj;! zds|zii#m`%1JOR$=;%0mOHKtyPR`F~V`;Da_ZocRkAhC)C0il0`b5^{%(;B-j1GJN z-?AC+k;~!L@+|)EKK$>i&HeG}9ENpA!1Y7@4$g@By32$(6cWt8#N@;g=-PcV!}M$2 zqcfqEe%mi?-W_2*uVmVhD6>Me6b(Q%09qyvaOVPA05%&vzU%3uwRjJSR)5xn~j7u?5v_YwkOV`Zfa2+Kdj)cOh# zQ^ViH36&g#Lz`b^{9$RtZw-hR=vF`t+O=qdOr*0rqmS69)*58Jj5D?;)J^bJ&$ci~sK!eRhlhsvV9gZ8 z1BL?-jMDsenX8*yS4;N98@c2E9wxYAr}?!ta>3%|4m*uK(@yT9%({_7`P^q>C~Te7 ziqgFoRWwxWSH@MX)7iG+oon?t5xnN_GBPqC$x)$2Z(iy6XNw*`K@2@~B+-e9?DEPE zAQ)L(2YqpdkcJd;9vBH*R6$KQz`DmhJPtv|7)HY%nhC{MlmcLc1s+(iF(eB(n8L?~ zhycV#Tj;uk!t_$C8BEZBr-@$>A7I_M-Q*lP=vj?=%Q$w5@oO| zCbMzf@Nh;%(Xe=rQi|z}4bxsXITr1)7n%#aGCT_q(?rzBf;lKY00RM=L6WIZLjqA7 zQbi0{{N{5pS=37>|8WrzeA#uug+XwG0Qc<`1)fq9jyU1k6L4RM*5koJ4ANo|K>Z=Q{b1_>0z|M>l3*_2Ipu$s%6T< z6Z{l{Lw^8m&<33=NUxy5a_lW}ZX6hJAu>Epu%APJ-cxtZ8RSnuF(e2sLtPAYbSXE) zTSBM}Ah4;8fERqCxI#@0MruXNM1bw!!Osr6{c0{LF%ckgifh;8&C)@S(=+r^L_D$o z-33qg2R1~|sFY7nPp?#K2ex=105UJ%eLi^U>eXAN|CAFimv0gq;l#PGFYPpTbDMCH zRzpfTC4{v<6!{fJ6+$WLaPdnEkY4}`43tQiDkm#TVj65FVw&diWtCLPGq84{?K`8; zk^xj^fTXA9SpFD0I@2pz4q!cM9wSabwSgx2wTK0 zL&FK^NP$FCE{9E!m>o|BLh_bRGSi@11)dTxhCD!^q=J44i`&bx<94A#h9sv0udcJz@`<>YgP4b-I_pqXZ!q%#4hn zQbXpp+Ot1Rxnq1X>3qG>9bAl)rihp^fOqP|0A-@~!=5`y1Y~OWIbiWWr7g|z$Abmz z!vGOp{5sT21heG;?M6W5l-4z53J(y}D4>yh8xVlH@H~3nRm@@b+{YKNNhW>Gt_8rS zmw2HuZZAzecbB!{-u7|b>6Y;m%r~fwZ$vq$JbLs4LZHPtO26^)-MI0`zZaX7c(E^I zwV;^A)=`NaReN-2d|9$dk67DSUGek5`#f_4Ck4dFclY$DW#8&?BPET5(x~`E5e4M2 zfd~O)dLN+?cV$C7ct~U}44)L@< z;odxnyt=3dx%BXO6y?$Wvk_lUAeP`U%ebsQF0Se4GUW@L>8KB1GFsONqqZnU&{5!S) z&Ie43dY)!TE)=V|^(g=fyrG6xp$_UzSb)HTw17Zb2Xu3XKrX0~oCo+d8Lp}*5Gbsy zxxj7nf>SgI46jN{YM=+tCDJFEXG^~BweV}|bcxhOcz6coossE&PK_n%R}5N3m6LkF z@&sJf(7^OUtf2dL_M@A^<%yx!Ez`f301mPuY7TS)L@O**xWcypU471XNKDs8HhwvE z0P@-d{Q~2qFQe5iz(l-O_EkUzM34Y4)DyVbrMtk ztagJ^K|GEzfBx9dltm+#ENLksGV-4sulsj_nAj5kbKGCplS{qM7*b`#aNBAivVi## zGN5i&&+RYJKg4;ohipM-;=D4PgM5%ob@%yWFq?q00Rk<+6Nb2BBnj0fxN6Q)avs5g zNECFEb(&ix>dN(cK_->3c3e)b6;^@N!-vJ9)SrW(&fT7beg!Dh zQf_x^^*<-hKwn1zeO>0Wrq(x$d)ou=fkFdK5MaI1{;Yi6Pj{eRurxur0ip*5s+i7s z4YlbCJ@2q?MZOS<$U>X}WbH*{`}|Yl7ekuddgZje8=Q%tLX~$z&}fneNG{;9 zH}2d~sTKi|10>=&g|~urF+n|KAo6;utpzyOid4hB|0P`{Xvh%D6f{P|Oh9Mnano z>jV__>E2#>a0c^|kl>ziYr}SJr35L<0Hnsn4Z-egPAqPS9Kw{MVQ!uacr{QLKtHl9 zEgqbe#T=6ObiR{rT8@|!-A7b&Tj_*A^+8QVWpVWU5zhVTtT^&B3_U1Su2rMgGAf*! znj(5Bp)G~=+y6J~tzOEXm3gmyk2P7z%3hN!>Mcers~drp%jkylU)dj!^@D>0 z0U;rnx$vc>B@o&sBy0}QD}sD!6KVpY+=YiH57Z%tuUetY&(Q^e6s#aT$jD*e;nXS3 z2H#rl(kWu>>;)(b(}%o3)3HvpHS1(5CbbBf_ngKN2QAnE6z{dONUlL7;DEq0Gm{ST zhB}rg7hD;EGCc^O+kP37i@AcQ?1ZfeEQ!Mwhv$}te z1bS&h9DiXFLBH*C1w=ngFd)O>HV!4`28S3_zW))l!y_sT%nC8~l$~hN%7Hb@rJ8

      8YB^*|AmijeLo=d-B+Y;e8pWn%4O?EW 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

      ~fy^s|;{n&7r7!1+`LN{kh z?}^r%ydfr+>nTIBenPjEyY#&mCvI#?TRwd{fMwhg^Je<|bt2Sjuem@p&dp?Gnc>K;(})RQqD;iM>LxHf<>$MG~% zs?2wvry%*DrdpCuB*VnJd5Cq)GyMFAR#IMZog5ZRUHK2UIxh8?d0xy;-ZXTKFmu2q z_Wvkb$iP$hso_jKYka|midgXe)C);N=RV;N9op0etd zu#DOcVD-cn%986Y$^VQO)PR=t08nqul-J@|%9c>K zF(=BqiJT2;T+b=~d_te)a-arin+(P~Y_o?AKhOf22&ac!H36vh_4v2Xa}uT2Kq=C^ zx0inyU)p%8HxJzp9-U2Z%kxXsKxVL&PYrkiqne>Steoyq@~*5AN|%X0aUmW zBow1sr7qE`<)D~?F2&JWkuknIj(saWcH{wOt)BLilh{vGH}!5Wh@s0RxniZ;peDek zSHUh#ex7f-N=4ZQ*Jn9K+KLIqkNO(5Hx6%uuJC~xzmza}h+xSl6&u)`DvN@~yp9NQ zx2dH0olD8*uZr}uDy_sVUKWBGJzzu@ zDP^I&=MA8e?{3`cBm~v@e}S1NZ|F#dqM#c+!`mTCKmnX!5m$zb#HL2K)X`lnP3llD zI}C5D8F#+Ed9=#~Mc7V*U)y?T&~WHnq*%#~L7PL15GdI5rTY{~DHjPQGC z8w>v|j${t!RJypI{bu^>k57K-Rn+gRM)DVk6vQw3CF?(fn@;FTB+8v}QFoU%iDUiC6WpSrj5Q;AkvU#bqB)!( zEsDuUDV@$S8Gh1Wd#_;6FGQaQt~j>4MoL848Mvsq-k4;9j&+$}aIpzF2FCgS#wRz_ zKc==$MdU0lbIDahZGKAm!iY3WlM#(cqG`?NT&Wk22yk-4&-r@FXY#_64w(pW^d_Hf zIorX)LQ;imx}t=El5}7qzdbI0@Xawb0M8Vd>RrG(093&@iVk&|&upr?-(Ujyd3a&DO#1`*MclnBFE3I6 zbK>j*u_~dPfyu*++cV<*z628QZv?5o@5GWmvN549d&FXcdytu^oT-_<_5pBdPZ<9g zbR%)w0-^!*3HsGBQ~VX?>s15n`<%qlp4f6^+A_kX;>xd* zDYO3ucgfLN87bD%(rmutU5a_N%j zTiUhIwoZtOG&8CldOv`Ahv7rdM$8;*%ryq8wDhXpWp--&4;ikf{gQd0l!YDWh5l?s zUNY?Y;o%>2`SV2}q>uHn7Kx)xmDRcYS}6qS$LP?1pgY)~XhGTBUgG0o2Q(@?=wR?2 zUaoQMZ#n3B0UBgZH0=s4|7LVCcnj_@RUyEl`q2@-%X?-(S@W8od(XnCwP#^LJAiaI z%wacJqS(N6Nh-tyh>4$V(=I8c7Y+`@_29Ew2RQ?W?EEp${vD7cDp+T+(*_PJ?6QHr zT9p3_uG>qz)&MaoxbKbMd+lcuBz%eC`-5Zt3jKVm9s)|+Gw5GfoMmB4W{d8A{T;sxt{OISnZW8-nc*?pvqmmci_@7SKKdE&|5vTKMR@7R$G!;QOP#)|zSeL1I zFd!_Vy&~*x#_O@h=+lk;mf6+Aa>=EB^=Y--+)&(^@{km$A{V}!2QId|=k9A;>8nKO z?mV&F5zxg>+;OWh=~=j&{g91@albO>Q|0@O)e($X+f$kf&`hBn7|_}Mf9}DreS65C zu{8uB8lEmu8xbNY^~A2u1wl<5aLS7#C@dsKxI?LH+;07O_d*@SQMCO-=ox%pO!fGX zI`iQv)!_~G%*K=OwAh{>`xIl|RP-VA=j ziby=lP%skTX|QF6gXu%WHWLmqvqKSyqj;GFzxWoeh!oUF?l*xs0!S#3R%@&JZ!_G@ zt&~?*z@T@rm&^+{sgprIFzEhMo&)2G0qxn?1t{_iD`NuG#s6Xu`C@Qb$?dHC;`J0% zpyk%L0yp7iAT9bB=xO>*6<|IF4#$W}7>MB9ExWg{mFNsxKC-~Jt;`9U1wY#Db9eXU zzS715g}{sn4`5TA_<4 zvW6eDSf{0{aD{F_uQB+Bw!0l~?QRIZbp4f4DIM9d*ct!3tJ9FidWccUov`_sekig5 z-3T&m0t4D-hS_vV`c1Y$W6;+6pxU>4Xh-(@Nr*AS_71jViC2m~v0m%Ea3K68oQ49E zDF0Q{VLk?w>;~PB!A;5Bbjx%UF6ksVROQD%Q-W*yb`U(ZIVH)B} zx427BkT-vAMgkpZdqs3m|>Zsla09*Hop6QPSyB$2E<I3~ycF6TevP!09Opn@Jh?ms1C?_(`Kx-M+xBMT z{`^v2>79WR5BfWomDiH`AnlZS`qb*48Hj#${{~ee{)e5ye4NYyzgLwdO!e4TWd_3Z zJY={!A`x4Fh@4Z7j#%3AJFWUu(>m0)lyr>8OQpvuCg!nXhvP{$e%WU5DyCzz?^Gc#?k4LX!gJ zPZhDS35VYs?CFP|M;>^fo@D>uGksGFo@GrM^vCP}y7kc<=NF|YAD8pO{}TrM=gmrZ z77)M zI8-;8VxT8)=&|4VNCuPXMGG>TK4>y;DvJT;Gh5x?09sKFgKv6LPPXq`++8F6hvqtb zXu`utPDBnOLy|hb!ka#AbWA3QUF*=hX`sva<3Ooj#CeyGUG=&l|HEqLP-vY4|B1F} z`^~h4l|N4t`}Ho*IgV89e2Q%;z&R_TaX4&4r1lU)Pq#{QB z7a=~P8e5=IHDFZGU{T<`4qTjZ0geu$19T*iX#THAUS~E}y>lR&Z9hcq9|XR>0##KG zk7@@MtW&|!TqmE-tM!(gQ*%iy*tw-hEjE&%``V#9y^(u#ktof}mr9X5E|zpG{$pih z7(n?O@XhoFHD5+NI(6Jm~mfd4EpK{+M@Tne*K3P9DjF$Au2%+00S2F*Nv`1hOB83lkrOHT+UjM_OISD$yX zen{#eSqL>Oys%yuzM}|Qvowpgq#1!49dflkj{EEFFmfKICnN4Kg0j`#DR2y6_10uD z$GE(^F21geXUF&%*?}~WB z)jum~36n%A8I_yjH3qawwZT4lm4vXG zy%yiIlqUnYyC`>KT(S;^ddlzk&bvj`UeX{#-@OX@pWC#UgrJ$unqWZ3ppLMa%DkRW z!t+H~8P;+RPL*g5tbY+$B^nHyR=&fCG;4H>yBoo(Rmke=C$5OhLJ4~&F_fNKohj(K z5GX;LI%%JqpU($gj;3pLl!SZ{H7fP0wOu$K*+*Hm7yS$=qXt++jP@UVVvvkzv(%)d z3$#nN9uy8EZbW^)1hNz~XUhF*yAV2e^y)VLIY&3QKhD)EMZc$X``2$Vku$V!juY$d zcCe;mOdL;gEvZ-!zgI??j#=j2TKPEy9IAyZUKkRNu+$F-U^9g7jCPEE8$CK?>!#IT z!|xOhf8~Px!A3%C`#gFI*BL7&;vp)2BdR3RY|bo=?t>IS92G&&&$A#=f8lojhy1Q~ zFvs-jP_Kt9r?UYxY+}y}7PD0ALygM3upYyaway3oUSLkmOh*U!wAF6f;)x=GU5hHq za^Lbv=2fZ%$#obOdO?d>~yuR`_jP*b&?h0Tx63vHI_30j<` z^vS2;EX!3QaS|pb-El757q5E9?d4yL%yC-o#Z5eubr+pGf{*<#p~p*OW%6Q-OzPTR z4t;c@%m_wykjTW;-9=yY)5*6P+9oW5rHaUZg~Q~pC^T5qGXOUEP`%Apx_Ag|uk`S3 zyz?c6$2_W0Ta#rfwN86?VQ=5A%Owh!S4JIS06Us&FSgiVe6pQTNJ2`Ip<5kw6ds+7 zKyuHHG~vrM<+K=pX38y^U-0e(Eqc>B;WjqzNXE@!Q@uVe`wV#_UfM>i5cSP2;W$B; z*G?rz+sW70w^y#_Jf<$l6Mi6Z$+b>ZYn}e$v~Zf;pfY~3Z71A2=~`(3{6AG39&PmC z+YI3&+3`R|*_SPO&IMdw9bu^)WvY)3KJuqN-O25^x}No=TE!!>JoS3LDf;&LLD_p+ z(-N`#8BkOc^3@jUSDyua5lKxY!?f)~a(tt->Yce9-w=~7%FIfW1*xD{2+8Rca+j$s z2qay{SKI<7RV||Dp~GP^Hz>x)Q>xQyo&Ldrai1&WM>&H@;x|CtsortJ(@|QMJ?(1t z?)%cM;6HXhKMj0OdmoBD=#fU~{n9?E<&KSLrJYc*ark=AywC_*l9;8@o!)|*WzHI+ zp!PlcO}2ut?NbqoHhf8fp1Zk5FKZoU9$T;^mTkS+VpzqausyXF?=h6VkDZxWZ7JLV zxe#-pHY$CqQKDS0*s)QenK^p|?aKJUSCirIp9(H}Eo>F#o$Wm{?6vby5&5$#H1Vlg zsXnAqI_#nSWY+8lYnIn|lAE_G}_<5luq@SK>E{Gd}5QhbWadjWP9lLQ! zaN698rgcS}Vh)BFl>_0@0)&7fp`W*XM>Tu*?^Z6iJllQ(G_*z^QnQ>x>GMDUox_0| zfBJPVVQ(@5?|eCwI|ZSJ9!1!QS^*YQXyUgu%JB?|RMe|NG^$QeS|}CI3<-x42%t-9 zhkka96T~jkDBSiw;asJFt=lv}4k&0`vAIb3h%LOUA!K8#hY=X6ri`xT8!0 zhu=$Dg05Q2aQ7~4@j7TGSv0F>oId$>Q01%I!}L01=PT}RSiuHj_ISmk?S41;Gov+- zR{Kx)PWWGKtv!t%(6E7prJ*b%H+37H7cAK~h8hISI=OW^WN*wXNr@1kN0=;d??ImO z0+~`=)9m<8UjErOKvX|;g%Wu?&k>pUB_Sw&018x#U8}(5;u#pW0)8 zv~Q4B_wlFpx}c8>l4TBv%nXW0-wTvN;T~-FkK^hgNKOg;S?1DEH+`>xnbXVe*Ml|d zkzg^^cYr_g%boed0kX52hc0uu5T0;+NG$pe4emspFQfHFI%JiB-1n%vxnqwoaO+PB zT~6G)!X8$Mxk_~%-bnmtY>CNqR(Ydii~gxeE6GBE&b;T&NVx4G?!+?p^^o*tWuDx* z?Q+0T=(}07tAlxqvJVS7QVg6*KLIH=^FAakzPC!g?!6;>l+#7cHM_)kt^g9JGWLn> zT#oBJcV)pNw>+0)0+aFa1&ZsR?4hk2S#;xMC#R&c@}PDlO?)E z3Vq`o^W~bpWk`|N3zC7AoN!3v9cretmfep?z>udxceWf#1bM%x)cPb>x)n{r0Fj+J zPLH0<^Sa`M2lJLpU}%~yw_}G}=GqNal?^H)ukYERJ1~ao ztWm2TL4ZAfPP+2c8F!Hz)SQvA)XH#`ZBgNpH5D%t?`>s^v)>Nxwql0|UU?tFEU%7Y=mEKhNUvAsXXew6TU8 zVgm7aC*caE(1Gt~muHwvzfK~mM;&+jq{p*LltbP_`Cq?U4meErH|9Wlw3m#SOBiKZ zSr-T<(|g5EB9Q)oE4PPg?|yX|cQ#NLcjMcJi?dq)Ajxcl@f}U#5kQUqf}4xn-uAzoXG9E|bowfa};+3H1JRCbA?Sko1?L zo=;A1 zR|zzd#e;6tVj0n&{rI}m7*kKr2G$xufOn#8f@k}hs0ymVl^8P((BRtjcW?9g_auZ# z$f2}$ibx7VHzB|%MgATCs}L{1MAR0vS-r-qg7T&yAUE_Q`OQ}Pe)!QZVURZcbpS0*;7-I4Ro!3t09EgQ4>s~nz$Fi?tC)}h*0 zI+btsLkhsY{QIK@rXW04KYA6n=nN*kEK~sD#5|9si|)*mHBnVbVV0nhC2%5BrU!Tk zGX?Q6@^_Q*kq#pn#Yoiy^a_xjQ}^-|zbzRDAUFlz5Im`uM-~NOSW3#@C@(2p$ualz zY^(=kfX~>%v3*d*=JeTajnY?J^?r|nyt2E$sDw%vW;@$i^%6M$s&y;sx44==x-<7e z$Zx)Wq`6PyTVmYQuogvKH zL*@)_^bg&xXp`wj@UM7b@5l9DsKA z>|`0F;Nsi0bWWDjfu*JQ$kSJGeH7QZj!AjoF_{1)@OP)~BOUYQ4pDyL)`hJ+!?VNM ztsM>*2NV`6<0P|~zy$H)>)Chvz|LGk#DBBsJ|F2Nugdfibu7wDR0QHHs+W#}MS^}_ zkB1o%0F3J=_`5BllyurIU_{Y+%?B#!@BC2g@dPf?9WdXI1~BfwJlM-n4u?cN15-g7 zY`Ijf3Z`S4HPYGytUCaoijn`Orh=l(B%lmEaz%i+)oAJxdOdve;eTD&U#9Y7JyG;o zCTLE&m1kOpIx*!{CDq$1f)vEuwA>C&6bc}vnExsb_-QmuUQZ*nJGWDN!oA`<^S}T* zvfoogvI6=q$Mp9F(|m`vD*3Ych9z-EjX|elfFObEU$5&A24!IU&#M4PQHXjHLh>F# zEHjQGVaKv(QXeHC1OKA1fIASFTfpQ=He7P*BJF()8ZT0wIi-r_zWHAolCDev>4syL zPAjGovD>Tr(qvnqdN`!GLJi{yzpC*cnleoLB8nubht)TI(0q;e-^h;^Bg_fc(un~# z%dTdaB@5`7j*Ms&x&sDF3X>5SsEz@W?RTm{0)wYz&wBLf-_I~8E5-yP)dhdv+@ z5mC*%{ir?!=wnE~GC)kv#B^!(`Lmcspop<}0|suu%p3awowslVUV#Vag1&cf3iuqQjxM1{d|^oqhl#NwfN?gz*@JM?z|j@< zQuB_cxBCAvh%`t0=eJzrzps(;`o}UyIJJNQ9{u%5NA^+2&b@ z=#~3mbIp8g!F+xFE_^|T)D_G`KM*Hq-+REawHnOp{&n~^mdxIi*|5&I-xDT{jQE1* zDd+SPuSO?7yrmjf7A#h-P<54|`C{B=?!Yul1b9jee*}Igf9IuKsvMv;EuHpJ#ruYn zJmzQ$0@*UATpQZ$Y^^WSiXb)1%0sS#rFh+KgB}(1)W(R_XA;zH6<`Xqi^v>; zw=h@5sm4*6q+5l+Y&bCmkH-?zH2{NM2$tASwL)W1Zt>pNl|jGctc>=)j%K^rjLPP_ z7_lP%&?s$8v8wgfu(E2#DkU|kRymZ)Ey2@e33-R;SVEau8#4$S=|rU%lR?NJzif>d ztsX^8iP9Gjqg;OLsbKdXj$-ko&{YrB08y!-NV5g@?XKF#;*__(hC6 zyLF%tt;CIP)kE#6VF{$QEdmGKY+I7@*?m3v;EiDONn54m`$?b}yEl2@)(i@R4(xGW zeRT6Y$9wnnWd_<=ujFo*FvA(wlmW?1{sZv9{oOXc1oFSUIJpwUHa#O3lzfLcRtbdU zqpfxtg7L^fweLz#4MKQ!6<&_T6sUNNThn1%1fN4hBHU*z!>YL4Xj<7n>yUp?S#5zw z4|>Dod(cSjo{Q1liZ7FBWyx}sSzT8|{s52npr}rOpqiutR(L6h$A>5N1+0KWp{o45 zH{@g02CZdun^Ot)ojamjJ?TwFRONy}CoSLg@=@03opPkMX2v>I^sK~B!GO%S@O_)K zdzqgdpCNkLk)(UFhoJi)4e>_V8COI)30b!pZA1?lnl-snWzCiJ#&?({(33CaFH$~V zrgE7uYEYJ*FgmN0!~r1dPkm>kR5EA(u>Mx&o|#4)sy%6N`~$(4DV2bRTC$vFs~ikh zFP27!XCf(e4qgqtjV^#*H58w=UgH!@eAwEF%eKwsgX~)P5SkXF$72U;V|U)uB|s}t{Y=Pgeg z_(X&+D|YW^neJ3gT?#VJp@Vi`aoLeSYEEXYQ=q(C9x0|3Ku}^lzU-==8Ivm0jPrfL z5l*J_Hmrr^8{kj^u13jiW+SgeoX0#SDDbaOdAIf;!Kkl8I;LWs8b8LM`HH>X#^Z7) z(=k`vNXs@wXA2CH>)Cs+q3fC;s*>cLA?ldL^7{yoCI z82toL-t=XJw;J(wO<6_0)JaERQ;8A^72chh+wk@N%Gk;Br3jqzi8`U%avF4}Lea22 z*%4W&K${@s{8knP#)rJaLX#a!7YHkAhoDRk6;}ezDs7lLE0#Zu8ZUGd9p4!;dy@$P zg0g?cbfRCaV76Mt&f{Dww)s50Y6$ZEzRzwS`7%}!7JEB5Qk(Cv+s(Pi2n z_DzLzboZ-Z=`X6?+!RT66Sm^$HsqM4s4R$D<@Sqp>^mqJ?&g0fWRs;!z7#G9V`(kU zp|aRr&Hci2!JCXv8-0EHd}0nPDlhk-u#k;agX>s@<{HybN7~I@F$u{fpfQPSejVEd z^0ZYayUy2ak|iq8<=rs#_sp`Sxjy$YCq%2Zzm9Gv90=U3$nm3aHTs#Lq5d*4P$W~W z-XwX2f@wEzw&GSb`MKHdwX1a$ToC&26&v6OZAR8$+B0Bk~=+(Wt)QmwLi>y=;Za|fn)jd(A+ zzD6fQmBL|flY89Xg<_Ka{G*qf<(N9>#I)kXT%lfS~&#GpoaPE!W(HL$ps;sMV6J|{`(p0gi5YfkvRfj<-@jDYJI<2+m9Wz3h zGhcEjnLN)su-2R}nQ@AWtpjNDkeU^9T6xGO^+Y(C<B(|gAGFULcNM^$M3?? zbz6zxvC#K}CbhomYV$FU1*CfvR8=#yMw7xzGiNHRbAzUnqS4x?4AOnnjucpp5!(U3 z65VyEjPi0zApx3sh>|2u+{?W)e-jun|1bY?aER*m=^gDJBO6#^Z8(;a1|%Lx@L8pH z7^#Km-1nfV{Fse^Ki1ZX_Y%$YkfsVGiIzfb5W!$uKQM&~S_U7R!cvwt}X zM4sPotdI?E1y^g-hHE*(gcxiz_3Thm>sB6WSbFj!`6?o4YaiAKBz*t=3G(R$7{tZ` zp+yBaY%z4NG#gT;W8dm!^%}N3SzMD^VLF+Nh{S8psVx{vHw>+XthsW(J>%xBUc@2V zDiFccUJN(9)E%M?#PYL-uKc{A6{p^0^TZoe9F6tHV1I|MZ%#u1FWOV8@{|m*ZZru_ zEMM?GJ{}Vb?G@zF?i3AcTe|-z?iEB(*T&=}hBM~}BLZpxfUGR-f5|g>s}1)vwyRK0 zj=6rg909rnCW=W2KaI|XsOkl)`U-jYxNoAEinmaXdx#vpa$1>Jk>!5^rOb%OL?UU}mIz z+L^F999_1lA7s#^TzO{D|J~A=>@kA)X&%8y>>BT>_4tQ#CfVXD9MHoq4wZt~gt9p5 zSS?KzwG4*6i=^1QNL536E=~oRN>519nlKlnY2>MbmM6I7>eBP`7z=E=L*txW` zUOwvZ`OE*{8@Y$ShvR;dop^oz`PtTye%9_S)&OvZ^CSW-6$^EKh*uoS_Muv+x*feyx zwOe&aQ+uIn%(Lu6_y=y{4#5SbwLNd47~bb8Zs07{yyhW_tZ% z=yk3j5aO-n|M4REFg9spDc?j5zlN@T5iXLL zHr~SD9?kpsMGqGv#VL$pkJ=*Ml}hqI)Lyd`uZBF0#VBpgXjq5^=>_(OWHGgL73e-6 zw{&0`xP2}HRMU*!2}XW=?=`6EW<)jd=ogeChDTHJP3Ys>H^N#t3HAaP_k{1zGuhmo zn?kJygA_uSUnMroNJ#1FI!KqcCU@KGOLvB^n3K3&dm)|FpRI|PfSi=?)Y?zPaNsj$ z8tm+bmPEs*FP^Xz`Lo@fADT%iuI6sKGA>XaL|Sq1!X0JBHf@0v-5+kGOtv)e(8it1 zIR;a6gh621GLeve06^Qx1U*Ze?|k$_0R*Y7zRx-eO$6xshZk}!{E;^9(&91mX5|T? z?=+CetOg^4Hao_SrgIeRdUdaU8huWy+e^i}$QH4&%u{@BLQiS{o~5tFe{5hPBBx8TD)v30xk zQAmHr3cJN;DVuYxxun=@8LI!pxj(KO8^Wezs<$SeD^ly5cR?3I z-VwwOewo+xJqJxl1}>)+S8Ej`bQFqC z7f#2qpS(Cdw3&%3w!3It<{js|uc%^Ez1-YYkdJcEWb~6@uV3an$%nsy`yBIO{gdpyN_T+S^Idph z+P)_MkgA@HIF|Y1&Gy3ji9?a~tzY;%fRy-A04pZ6?t^-SJQxNgH|@F|wx;$J9Y z^1xlBfHFFDXE5mb_~vBI+a?e?^CrL*EzM#A{@?aWS*4~{Wya)u}` zq#T*(y%VIEN}J?flY64^s+4LD6KbMg+XBDiX=#(se$nqRKwBaF{=8n-t8_oOE{+Az zFyz3GAT4Er_26`2%Kczc&B&{4)tgWI&EQsPc>%BQN7ZHR=P#T;Ihj**4tatLAW>`h z|D+TBgb@I?ZhinD?E=Q&96(XJr=aqyIOB8UP(XRwf?+8i?qMn8aj#YefW8kK~fTvV{+`;ztjCm8Y2*vkF z-XTCA{Y6|SMlI&ja=|x@T9{>74E?x5UZM-Qyv2{trT%!wbvdO)*)i}+bBX;c=W>Hu z3j;F3B016e4O0=64&*o%fUIT;i`YVrWtlT@xzS+NKQ1>3f8gPq_Y=4y@Z;u=*X41W z9dPB2ekU>YKW}(te8xP2dqo|){Fe+=??^z60w_lQ!72r_`#qDcx*(YaNmNYZ;?7bY z?VqHBcRNrAG1E~zjnTBNV8q(M;?w}|>#9Hd7uNZZbi6ZMFL2B6<0zMU1VtdG0j+eQ zefdMY)raigenNSVDcpN&2kTYi zW-89!B@3#D&76foYc`|iK2GzA?v}c?53)EF5%d1YKfd^Mu2*_u`4zL_&yj3k3|kM#>Y4Wt)V93L0WSP0Gj zlqd&D?)q9D7N(%K9)OlBvpw5stv+9p^lJDhB)Jh0eZ-`qe=6~K?_H5{8l!JjlFK}ind8K}4Sp1>-sidd4$?|~h1XSm<(#-avhXY0?Uttnmzxm) z*TiH-l4q(yelT;x*-V7^8FRmQ9S2j@4+|F|Z60$j?O8vH&w`L;+4R*zM(To7?8Ved zBnkPori;}}G~gE1%v!|2#Rj=^N7#DG904@tM#i(9i8smvZli2`FG4;ER za%VZl;4qn}#@1shpr~I5HAJUq!Z|< zz0Q2JR)14JiqDVU)UpCyhM5v8My1#bt-7qnbh2s3JHP=dtL?Um30qrxAI>F2AjN0U zCO$tyF9oW`;_8BW#RLLSn7{4nWL>)OL(M`iw6;i5J&!;pC7W|Hhs{UiqRL%4*VB z*U4DG18=1ZEz+?CEYIEyBEv=jspa(38TThov3(~kFSyn6>z5gk2pjG?a-q{?X8^E? zwI3kA0h%h++MtdHY0=?evDj%lmsX`31$sTOhFFvH`%`*8R|}! zR8d3ss0tX#=?c7xyCx1q?rS^W8g9!`=J$j?Uhc^FmSTMBr>MT-hpFshY^g)hu@&m> z@op2K>E3xP(oDnI%b#Lcc9}X?bX|GQkCNlaz(`$h08uZP4CUFCo0>UsNf?Ms5*$-C z^@v^8iWSp}vF`a8f?bWcjH&<3>u#3*x!bnrm6t7ydmoyY{G%B?k=5`{@vq zSDV2D`{8;RofzqNVs~4x_hDFx>90>5olK=}4Qq`g(5eidFk8&38H<`sLKu$a0I8+dsfYc{{VT6_!#4rr67&n< zj=An5I`=l4zhCKsGb#?&3dj#(5xw&Xs{j`P92y1XkuK&{r4CMe&1CYcFV4SEEo&(7el2T2?=Rilnpd z!$*Dphb)P8!C*mH_q@+-3CvZZJ0X?tQ1w!tIAP-nqE~VPm5Q?-cV2f{FvAaG$i^V#O-1Q&I$hu_>$W>l3e29N6n5)AFKM$|3`Z_7_*?p6^R=BYV z9uyEqS!aZNKvr5i1(wQrDVv#A(YCbdNf0O(2 z_HJ!4q}AqUyKO20-I%3ywSAguP=kGs`vhI<}6)_@`*n|3(7EM(k0J09qN+D|aC z94Q*3`!+0m?)lyS$JSd$Rn>6q!XO|Bk`f{!NJ%5z4bsxx-QBs7R=T^SyE`@^NF&`K z&8A}m5}W-k@B4Y)_k3rZG5E#6;aF?Uyym>F$wVP8KV;}T^sS@aSAL*6u=$;88Nmh= zl-uXuG(baxSpep6m^ ztr}<3F2irag#X230aMUOhfLc1WUP1RTVm^)sGG}NJG~o_bavK$|DjlTo6w}`j4kUs z$y_;+&n;#R1M4tORSM1;*2&+E?9#^^K9n3O zN1kz$vApH&(%3zWyR=OW02W{Icu~;{ZGBC4Pd%b_0@{F^cfI#voJYwF>dgxMguZ(< z*x=inLm;Da+iG^ZEfHR4yjIl0v3e4aqOtZ+fbX8LC^hke3wPVh?I+IOSR1=unuiE) z1X@g015?$Q_PC?0q3;!iYADpj!ec7t$2j(f@?n)>aQZT(#7ArSVzLjW&56vWGIc7z zd^Ku$jJV8B`!1-WC^AveSX0CqmqSoclGP}f1j3(qKoW;bVpU^rkiDd2kp5H)FX8ip zcj{e&7#-X;&X=vx(lFQBE zzM*5OC$!LwdQnHXR4X!SUCfYpb6`JALpz=>95TwvyP?ks%$NSt$Yhf3CG!ClSp3^; zAHU^b^%IsqU1-}0I91PD#8%Y^fu@SC6e!hpUQyx6lq;oC;8PVAp-FsqpCBZb2c%^a5>rzdd|?%^%T)pTnBT88g6T`FZhZ z665%h8>8EIvIleOq!Dv7Ec!LOMT{a|{k8Vk_qpgt# zElM(ZWQCGF^EF-U^2A#p`-!%;dDa!`Hq^B4i4wz^4morC@e+M{>zy&nB(I3<{@%$e zdvNcRo8^KxkAUa6uBXrS7vvQdXj?`BC}FMT16&8*;4-?_}gXnS$TpWULX?t zVQ;wZ%4f%%7bps(SZh%YPh%FlDS%z|SI=2KxBH;d#!PG{QB3+_+auxKtFOkm-yMPR z*o;35>>|NW^v3#&T}vU|F=c6#V!oBny(xV&S`Gejdsp!kL0YXMe{9(-Q0)IR{fX-v z$G$3eN`Eqm|FJz7UQ{*7WbJ*kQFNn6|6Tp}V95VQC)~9}DrpRb2;X;Go+oSD!Li3t zqz+?soji|wbrbu|Ey4{=^Hb`{*i0;Kj<_4AsS7vSW}}VM4}_TQF6Wn-;rU-jI>N7p znjtK4Iw1fFBSaPYxT%_)_T=!MS&9h?g&t~D5Coh>-^H-wECIv_o+HJ|Hf(_F^HVF} zWjBm|=cd9aGIa`DNTdmGA&+1i!te|zw9&JW(tp-Pd79OCO+Mnz(y#FNqihq%D8QeO z8{L2yZX>LJ?hI*FD1zPdxem_sAEdMc%sLCGtKVl9O;UY=zI*B3_vW2mC$YtY=K+Dy z)3axdGy8|T*QbU#ArYagD?z}#Q`_(o+w}0u8^Zh> z|1PXTX=jzTca~Dst~9Qbi5kJu7i@)EGAj9m5P=Mx$Kubk^>1qtxCnr~jhogf8Iw* zO_~Yx-L<_lz6w(eUF8-3Aa3RYtk8R3B3@DDTzr#u{v+hMXePZRWQqAUjbgtC_={e~ zUzH985f6?7)3->)aG`aPd#aaaRz?VIYdRi}PD`XN`Lh56qHAS(!5MlDB}bt7ZSKoDTE6Rfz-)ggCSN%`oyqaM-s}wLwJ`Zf_%HM5WqHcfbXQ2*hyTH@ zxP`|m`poa8P^gcIT`iqQT|b>LS01=sG$jhBezC%CW!)^UN6UDU7X7=jX&FNG3BcFU;qPX21JHkVpXP)4g{+jos)=%vx#b6wD^^#|fJ+Bd)7JZ{$e z0(1|ZS=$7oD}uu>1h07RuuoXg`s}duOdpgi#Z49hYxdX2Y@ug;#g-gN%DUz;;H;?S zX)G+7HD*}H*k)5A8Rf4qh@;fQ@oij2|6FFm7mT6byM^?mDmfn0hLofymWR0aRC!_w z(;#Nz_AqFcShi~oupYpuTM!y7fiK{1cQ>Ku_9)uU2{Vo*ZN&+o zfbgcD>eoX#Jvb^5{k0=b$39}r%)OcMk6JUe?v*T*esQ^AaJa|9PT571_^nB%ZdyVy zSItq3OttR1XCnnky5Q8T&p@Ssn3Yy6mz4t|YLQd;b6Lk1SZ~osH`0nKck#a;3uH=@ z`v>(E6W+c}&2A@fWey-@v6cU|)rd~r+)1Qv>;2zW6)68ZK+)Fnh%#Ci6 z_s7P&{`I}t9A|QrQg($Es3@XLg|Udh!iagkix%=n3zFzp|Dlt9*PtC`FTY z!WL!$>rOb0Yto6o^VQxh_cl4iV3^Wi`oKz|ww!>4IpFBCUM^jl=78h%MNrSAg z1Rdt;JkJc6`M`bEmMNX?a~GAY=d7yqb^7U&W0dwjz>u+m8>6TwnQ|v;eZSH-g43@l}6$6pm#dqP3L|1XxP4#}^ zWYK<*lLtU&cxMckXN1?F!p(mB*fa2RCTZo5FwY7$*a^5n5O!4p^o81)u2)C;dP1)A zHf`%8+9{+>m879Z7DHp&*X3wg@c zqi)I^={aE~q`TinsT!_3;6>|DLt7S3am9GiNGq8B&-i-vGD5==?DrW!`9v4qCYi=J zV=&jVNb2SjOcIUy$!>>n;VnH-0t2w!S@YWO@W)B7Sb%+ZqdOG(8sHXlFWbH?7d4Qe{@%mg z+5gnNG)PV0Bq3He&@C0Io3*=!az^a`fsQK~L#$D>S+P)uAHG%g_Mf#DK5`1W{NtyA zMo;0%rVXLQH@7NhIX0slWyL{I?_L4X_!IWb+-0xx{Hidddn8^~Sm*>|zNg_r)hDo@ zujvupAcIN@wKFCb7~XA*!B_e4m7s(8FaG??5D7x0`4ju~#Pgvb;>ieDWGShl0w~sL zp@8t?TDLPpzAx<<+j(lTCC?bZZUhP)W8n%2HfHv~_+%x-`|ke!LklTZrP{|o91CwC zx9%0(`IOhApH>WyM1XbZ?K`z{@wMT25@Wev2Jk8nHPb_hEkZVFZ6Kks)CaQmFroKx zHLJ7fZUvOWQ@Fld-sNnt{JaaKY3C3(rKbewK#+}sl@#QX(+YGL{Z3C2E(3ypglW4r z1MKNq?uo~37NCgzG_J&^l_Iq`0zL?5CX7mZ-ce*H4+2PZzgtc9g5M*=6wraECJxk7=e+K~o@eqrb`oM(hc5H8DR9aKA z05)Zr1f8-wJbu7gRx?O@x(_o8gJ$AfYS&)9ObW;otAb!BS2lgHeLIvySvcv&*9UkZ zguQ$^x%G>W)(mKZ*daEwi?lBgeDe!mi+SZXHwM2jT2P}({zN955`cWK3Kc_3;$|#% z4AB1?A2}*_;)xp%&u&6fkVt1`5M`Hs1OJ=xG(q!>D49eW`_*Fd(o}M=cluH zrU!!6PQKqnb&|gqoMniWvnzP*1ivv9d!Qghdm*8`}VviU(MBPKu>L>zdcCS4&CqQ+1p0 zmih8u#8U(QC!;@>bZbVX6~*e)XL%5g_)o+VShX&v)y>{__G_}WexNG@bR1NltHSG) z$9)hjCVw!0!LfGz{f1v+G6;93@3d<-NU)DMw)Sp1HtF+Q4%uToe8;OI{q2;GazA-5 zqVhbzx@aK-O92YCcN9*SM7*ebpc(j48}}6nyrXo97_-Pj9&TP$wg%3JyGM4#1_?>^ z!*_QdRVjGH$jZL=yqkIg#`#`*XorPzL zr4Z@G+cdAhH@BR+N^)-LcR(n=CE)O!wWyy;B(dn46RH1Q-`FZhS`3y?u1tTT#AtLvNZ)XSnKI$U2^X%|bG%65^~92fK@SI>y!(y3K4rBGTl0G4Bg0BBta-~GKFNUOo6>6IFZrFP1fj`@}-NmZW zd3f=10o*W@m;mRP0G4BaLz`kvtZv=s8#?ne{+)eMI!k-2-!v>+o~$i=56zSG9%%N- zF7?l3mt{H*;q6iF`$t)&*KIpA+@08C%&qdi8>uxixyZi|q-<3C4CgltO%;Pj)eAU* zju|noV?8wEsd7}igTTKUL9T2rVZPxvUUrxbw@=)=S(V~qI1S5m-YYtlC}xuaeofHH zeB%*xI`dEge(kWD_C(3`%jib8tez|lb9d=ni22Kxy-AYUQVg&;{QEcnh5|{x@z($2 zal7x{3=7q4soM3Gx*`vkOjBzh3$`v51P|Mtp zoRH+rHT)Y^^-!H3d9 zTSp^fqJguVZf=L``3s`xo!2}|F8{mX{T=B~F}#^Ld-CM>C0p;nSz->*X<#AFZtV<$ z$(BN`1kz$DcsXFAKx+;ld%zbjSFfb7&vi|rH<-RC<-Ow3hiTAb(# zV5*c&G?B?P&m|8QX&Mw0c`aqYOXo+BkNmdB);%?Hf3Z}OgkezP9T7y+uS1avwy&Ct zZ=X}b*JPt(JRSP)*=?LE#J1@7hga3hDagJL`y^BzKV5i=y{SN-5sO0o_8=7Q*k3pFa7KQ)2C7CSa%9%-M5Y47 zfsp%t_lz0c`${_GHavGBiq44NI>2an(QFvYv{6=5f*sy7!`|!^DDuc!Knf^Mu&>9L z#RP~KDuQoVmXVt-G}LXUfxOOtl0Z@@X5Zf5|3v94kJ918eIFRyZSst@f>CD8qtNOF zpBCIllkZr_A6sO(3H0djMube2pace6`l&`U5AB#KVoWl@~& zRszsW4<6prcI#{%e>GH=x#NJ|hB=;zT!kp=ZpBfSQNs}W*aSiP*jfwWrG&SerJV!c;d9C6vlami9~jkijAgsJaC zXowp? zDHBf&9Vu52iTq_WI!dX(^pZr$IdqB9Lni{Q8_v&YC z7SKg6dH;2>gbXTyrbP#5SAY?%&1CDl-nh~9dlI_lNwweO9SgwAON_nXZbXe15`__hs$~^=mscZ-S4&1mW6e;LFVf-|}D<Gh~eu@%L%Thf~|dN7vq_Jx1f*F~8-Z9Ij!Gd|rqiHx?2_r(booW8aPcn)!~k*5 z`ll7QA6lSK6r*%v4o6Q<96pP}8_#_{{@7Isg*kJJLRMG^Q`K9IJZ0`_%jf#J#a+V| zjuX&auixPiVd)8|A=CA3M^sU=I4(l5wa;K~S=%MBSjJl23yhN)bn9O}#>twGE|lps z=+W`%mrD%0+G5u!<{Pzy05VU^vpRs6No3P=R;1ME{fO&kQ0=s;<4jDYS`G;H*FDCA z0{A&F$mc3oCyOEFIel~xG#74|YW&>)MC!v;u3clXYg0wS5uOC-vGgOh0+Lbk+?C2i zE}0AVFK3tzIbnWt8086uGWN19#lmPe(aM=czB)4Z$q-{($UgO9bNGhrhITqY7&!=f zeRCbJfiw)=Hk+qA{3DLL*b6|-f+_yYC{n$vt{i!s{ybv2F5_V7$O_=V0J>d%L$q(4 z4C=uG3Zee)`iCLvswPVD>d7}#=(JJ6J>;!zerWKYcPvXthzCcKZY`!D9Gh|rEi?HA4 ztZ(>HWAXsK9}n9lQA0(rP3Q==qV}**@Ou|b19oqj+-7|cS|h@1!hz9i7SF zxL5O{3dhGA)O$4T)5WY^5^ZC=&K>aImJ9CILVpf z?`9`hETsqVb{di`DZL{j#3vV^}S@b7=lIHOFG$C+KbCxM?HgAc#yLsT~rUk z-}Oa3m3G%&+VsEeG1HPY9!)#ws@v@7>W$LksQZwKK7>{Qmq)lHS@Gi3pVeMmaw5g` zg_cWPg^HzA25=>Wj?R0Hjy}UrMeAV%_8sBo%5TO7WQ<*x+=}EZEzJ@2%JH@N^46Nf z;`}~uS~Vkntt$&J7SdW}n{jxmj9Sh%T!T$7Smx`oQlXkXxRo?DP~|w`k~RSQ{*zG0 za6o*(zTWsgoMuqp?uRU}++uO({+07KD8*T^_NpbVFHt?rr~DG4sEWgxF2 z>sxd;sz^4Ztzl%~dZ{Mz6PlVTasTJr2qokAFlg{>JO8~}x!15W_+^)s&(8X3q?6ge zil4DzUVQ5D9U%jRy$a{fQio!n40}by1Y(I~C2AeTW6CU@R1qUg%K|j-#~&C@RZ>AC z#%y;uWm8e>D=lOr(NkcJ`zD*k-Mt*jSJ(jZM(%up$v24qaQ?zYQ#*l9%8FS{44VvM zTB2QIy{lvcpmLY*T4uyf`xxBlF0rf01NLOzaKVuEX*)F9sB$1Ryuv!7z|Lj_G>n7Y ztC=#hRg)c@iK)TC+(t*oMwF0>RZH;fGBT0+a?3bHVV{Ya-Rz?N#a+>m%HqJqVbZS4 zl}l-arXFiizo9b!a#H2$!~K#^2&)8NOI^DLX5eaWZHW z;kQeV6QU2%@9z-=dU1(7c@FpQ(N{NDk^}99z52S%kVb3^ev=&PBEmYlS@V<`!N|`B zy1+2oQ1ZKUv1z+kG6D_(dh>f(%KY7sY<~7+r3cFkV#-laUbe@TNCR$>w3`!V;eptVJZGae^d+? zzOrY!5kkKm|IK+c23@Gu>UTR-=95+2J}uNSW%I$<|Gf{|MV&D;5Zez_lLE_;#K7i@ z4AT>)S>EHQbeYWk;;&i4Ho~{tjR)kMfT>Y$LKz0J5Us9m#0qjJs%>Pb;@q&(m+edrF%QxoL2i|t>BE&I(<{z zGrfE*G?|p8+v9Q@opK4~vnQ~0Gi<>s`7d>Ouk&~2Q$HDv?86#G#5^su7~Cl_fk?40 zvP9&M0j{^XmrEJgODL6-z2_p_(I^JX69OGoK%dVQ0QNO6Z_JCw}(#qh$!ZPkDY;_YHVF(~eiN zQfn`^{X@SaFn|DI?dJU_AENt0o2FKh*?(r5LS3Wk5$t4@Qa!FoA_Y5*rr+rthKr^djy<{MlOUmca z6pEK*m8&ZsGuqZ(%q_z&jf;+l@eRx&s8yO-Sk)^LYEuEIsok0viuNL7)6htL!#B90 zh;_+ zL_p3HcO*jYIiN3c15sgw=8oD>)iEj7ca#c-v%hsM(fhT@^P8mZ?b zHLWHYY2bPVD#z;)JagJ{b+>SW2K)+@Z;vAl;CO|QEhPf-3RIfKj|1kz1$>&gm_#EK z7<)jhthYm`A;-upA}o~nNrY3M+B!}4Wq5E!QLMhd;f{+!-v)(Gi|L_ke;6znudF&I4wnDmny_(+bElam=xP%wzO~#>!(VxRvM_(9a#qe?;Qu4W*pMQ*NN@TlXK?wfG&gwQA(r0 z?bveo=%+^HtkeIN>wh^`h<5`}IANkiY%#bQpeXsh8?@ijLjuSf070D(P}yv&$+h>& zO-f1{&*WB2`}l?Z&m61y2tFlcL0a1DYJvajneD0VUiQ36Wg}A!eW1f8dFgaTY}~+c zM<5GR?^3^rEM3e~l`*w|`xT*<2&u=0A zx3o7v-Z(w9WQS4X4R8O9{h*j5;C`q!v7k9zD3i#@#MIV@mcXlmtwi}sNwV-8Be8Zp z4MF@}juLh%6>4UYjC#FKt2doeoC5OBk>*PaOU?~6*;k0bBhCqH)BT%nIF=klEP7=@ z7@6N2_ZVT!Tq;+XXz_M@+%+N=DBAUn4hSTbP)quMA23i;$(kZ^i?89I&`ADQz-Bs-cBlX#HhP0qlez4XyYZWno|>8-g3bTjsFvXoW)1 zh<%41+UNgpV?DhDy4)GIU8q)&*(5td`yTO+p@+QYO3PG~N?|tq+JW!z>DyRF(o%MP zP^UDZ0mWE-Z=i`lX7zB5(i=Km?m)Q&3f)q>ul4R0mgYm#-kc3z5x8?>DlG_(Dy{a) zB_(l-wCm?I+R+TYFK;kEOg^iZ7$8e4+DI-6eO3=0qYroE5^)|tXlh$ko6zA z5w_1XHP>NoY>V$od`j7w@TGKkWhwE8jS=%_-*ok{-@xYTcHM#5Ms$q1yc1}?ybv4Z z`q7jOpv>`XXU@-2=jZyGu(bS8d||?@P7IWhDC5vnX{xgga4xH9*z&}aYO%aBM+uGu z-M?nDHz)Q{zF+A1P^Yv=Hy#)1Q@wG0JpvJcrHyEnFs5P1N(E?N_SUnj}B2; z_2YX}+>e||0q(nG7}Q0*^NQF}DXN7aWTMm(xGZUN{M1&%A7+dMOb!$e{QCq7xgcb=X}e5oP`tx0|Fx46vkc}?54*9M)>U_u5VXHx!vS4dB{d1L^F9>B4w<8mN{Ets+K&`&pA+GZ2E5; zlKY=H^gla*s5@jcWO0RGky-jn&m7Mpn=QCdGAGtG&uO*Z<__A=uYRBza7?xBCpbv7 z5vOVXG4xH#UuP6x15@Gkjym}X6qELP5B4g)jUThurJK)HaJHPUPSK5boeXnc(HyzI zr30k=?N{(kW(+Cf{oqgjr>kv%KOgo_GrS`F^Vh`K!{L6LFiUQ{{?rtdFhz z&>Ivmc2QfD{lTw&O+y7~-14`>R0=;j(aqobglu2sbE;Atz}Dgk&iWH^xnaM-P(MKh z%m7+g-;pk}A(IsG(s(Ed2l#-+%ZkfTs8U^64>nXy?fOg%qqROZ-OV^x zTiv)DCLe_ia{cAr6X=+W&o9}O&v89&38e4n+vAKeOeF3#rHk1s{rGn5Y4)4nIiMrUgFe>lk#6soRguQNQEV*6gy2)Ucng*5^aETlcpf&m1i@TZi z^=Yl?*el$Y+djyaj0(n2FPBW)6?}&oGBiv~{d%+Eo#9070>i=CGF8j*jO)8AOJ=Np zNyNjJd5{_sAmsj|J^;jBPFVcok4=`c)q|Bi)^f9W3C1l8A-D7MH4tR?U^~|5t?y!V z$t&!R6Q?u2@%9-tOpc}U#ILHU+vv$dZd=MNRSx>zMQpETo9Ejw@Hf>dUYXguoUlpe z=c$M;`Vet8rMFvY>He(K@W&F;{zL!A#Y6|WWr{#c>ZeF-%F1$Ms@svTGCN~G%kp#J zCZG@SQ^+vOpatcSIG1P(Q55TLMd?_2iqL#t%GJmJ`rA2u{EK>__UG0rnH~Chss2Wd z+)RBH5(Z~koK+|J{zj|f>Pe#+tLvzn^|WXy(Ux}~ zZ3US4Iq6;KZEZiR;_IT{Jv@f(n-{2IG^f>ZY8xwf@M-eFZmc9nsZ3HXko)+agu@{$ z@zQ|TvK#jyPaG>+ZvFTQe|lgc3iHSKxjUZ>nA&Xly-A+SsgIX`>lG2FaSI{5kXF ztg(_-0EJ@ae62<)Uvj`Oq?tkGMMt?~i{$JiwIwLtOa1JVP&n0|K9JJ-Y9F^~WHZ!u z6^CUJaBKo|LfzAV)e0WqBSoYOIb_Ta0;*e7qC3H{gW;Xa4sMJMBcDJ;vjg*b#~5Vv zKO!}m0MhTpmU<+hVAAPDutk7OymDag#_0R2A^MtV=1)?MqA8X6>7b>@voD~nR0(}- zsbb$eZ)+11HtT7siL-y(BMd@Dw3jb;DE_7K$2|hmr*>d)95bBwp+BQEPq)PZ=jQ(U z2#;D8pH3x2j=E5*&Sb7a^K7N%tlR&Af|7D+S!=!1o85Wqhs*8=1OgE?oBA%9$?e!} zK1yhy<>tn*TE}5CJM`-pP9OC8dNhfS-Rs@WvJkZk<2>gdCMY0N+T%lFQwze3_4FvQFNl6^WeId;H?M_$e=Yabz zK09|Ej3Q24a>ZR^*X)Io9YzBY?XPa+ECr5SGf0+rCz+>*-8oP8+F5b+mO2^G7K$~M z09z{&pxN+m7VNqHn7|c_n5}Kbc(Sqa#i9Q*5NxPacJD*Aj;`Wb*NRJZa5TYEs#dF1 z@sYDB`${f2w}+vW)*tb9`(@Du+Vivm+@1-%Q zMghctiy?Qp8_N~Y^LS*E{Ynl~Xq_pyY{nU8sG!x_%Ghr{qsZ!JnC(Zm@x|RUg94IO zT-}YZ*O21^C2WS$6X%GTt)Ea$fNE(|o;n`0;9&KFDYD5zPPi z^{ZCD!vpZ(vy^x&QogZtcGNzDPA}0aXR&gPDs*F!E}!dfL@X0D%?@k#fW6p-_O!X~ zlh@fT)x#cc;a8KwnVhzRVVG}uKGM^Fie$o-p5VoZsF8)$}tIt%rxD21}ghc5Cef7VlXF1Rk%C767L+>bSav z%zWVG)z+aVUD^X4*m0wq;Hwq9qqVh_S}vt_AoeY9-=Kt~r2E0IeCc?K51+H7rKJP$ zORoUe1fp4ZEsa9PkDosq;$?ZAej|i1={5sXFA8=Tx5Fx0!zy+hB@*IR`RM#R3RZDq~|Y(`3lg?m=Hdtj%!qv|r>#VCDwu&Wp-_D2nU_!CY}4gvySEvJQ$;%DV0{taR6$BL3qO}!wS;R>_-k+nn9pw?X9|4On|d8htIk}b#K zUr9ESl8_U!xlZjZK#}dRd}d&GAfXK#c7q>kcKk zyvlW}34!x0DC_oBkC-1EXySy&8s;jH@5}r*>O;r*+{Uif9$-KOJ zf;}*3Ry(mn>=tVg`$m!(ZZCJ`m}R~I2E5+oE1nh^iIGYrX>sqkR1b7*$n#LgUwNWV zP9IaLc4tZy2^cg&DiM*MJIPF2zD{M<2mCmr(LvUt7-VEbKKlX@$IjHWzi5x-IdIx7 z(hxwkt!mTX$|=FXfTS?S_5oaq!6 zYo?=HLHe$%V%=Yok)w26Ab%n_Hl`acN!7jE-0=)?c#CiT0(#A2psjR&evsub;NdJI zuXgumU;KOPWpL|QnD%6zZXJ>!o_cK0C6$KSUXDf6S`_Iut&F*Olxkt=A}OYAWcr2P zxcSBB2qi=3SHq5i=?(+cUR8Tveo(_X?s0W6FwF=Xc7rpPV?c7r@ATdbF@8Eh`kI~l zSAD-*J7p5n%Yz&p9l4HxSOQpvjEv05N=ta! zW`DS=OnNPljnNnkyB~oN+D3(vm7V?G0{HkrQT@A?bI=+?u+StFmF9C6n)cr~^7X5+ z>Y{qNX3hHF?sb#}+|vlG4^qTOk#J+V04W^FcBp9Y!#~(WHye!Fnqu?F$;Mzsj>%3+ zjc~w$kKgc%XDyEbzrIzAU)+7dvG!2Va_ES8y!K`&@6Jmet~N|na>)#L1T<6~R+QS8xtG~^3UXFf9k0b+ zRh64-kQB1imuqdFGK|}p(y#e*P1Zx1Q!|)_9#lePyNk|p8LLeRq~Jut&AhOZ*=`cS z-=aH)DY!F?{Ux%T7ovX%Q-_jzBxrb)E9K>-P0nvaB%5&)$($tB&}>$Y2&vIzlW70u z*Q+~1;mJ=0%QUOl!iU5tMQXD*Pp*%Q73Xw7(T38L9q<}c(kpogS$k6GheFGvGKpQ$ zCN@R;YAn6`hp^R{M4d^<%9RE5Ql7bLO;LSt!W1ZLEewj)qIz)^ zjdA@onQli{UUo|n+Ft%oRoB=H!F3 zvq?bAXvP2mncXa>gQ7niJ3I}rCf6&7)c}-CI6%OR({^6|=I#p+NXF7wgZ*jyn03k^ zptE(szel+QeW0{s#j;->fO&v$T&@D>s{|u{$#;$Qpn%jQtaj6Sya`&&bFH@i7UB>AbD>AN@n{hcoU%zksAyuFUb8doEo26P!o7dA^qva3HxA03MC+kr(Le_ zy_!oo#m4nF(Y{O_SA2nCRxn)ZA&_Z4zoBz`A1rIk4H?@X{zhi`8Fx_2-=JZ;G@GKQKutoEijzfo(& z2h%3_wL#ff;q|gvQB-BbQiu2I;CR$;uR+Q{XD9*x{R=O+Pm*l!9v-H=qUP#@^JY~{b$2{cjC;!;f2HNaU`6(sz>Rq7>E5k% zN%Y(h^v)pUoI6Re8Y3JQRyZ10>bZRgEzg$#Hk5xHSHhHMUzVQvg(yexzp-9+sct)5 zJvAKyI$hEoJB6NQ#u>hLLdD(dMGffZXRUQ(?^LJvvL1Rmr_gpGgd(DTeQ+ZUdNUwvbx0xrw;^iJV{T#qZ{tXJWap@8JX6 z)cf_f3Rma}RCKp6N3fxt*)aSpum1m|>Mf(9{N6xq6$B+!8UzFcL`pgYhLkQPq?Hz= zyA`Aa3F!vu?iP^l9J(8Z6c}n?X5Q`Zf8Mj!`M}~6F4xTS-22{lTo)aYp67k%tGXXc z6*>U1eIgedsyK1S!TI~@rx!@Fg=>Z0utC{hsxaawXVEz(UF}9+Eiwh^Ll-jtcTn!F z{=ZLn0-KIw$G3-P+rud_BPBZ3i;Ig5&xD|D;41Oj?Pw8n4y()tvGB+<^YgJo%?9Ir z{;u97d)XUC#tH5+ww9I;xJq?vn|zT?IL9|*SyB^>QSb6q9OQ8x1WLNz(t3G$amW)S z!B)T)R3I*yW1HznY7&pdshC4gGK%D-Mk2%y1>UW?&vW1cp3~&AU)7Di+92$ndGH

      b=Ox!56hq<)IAP1l{eSyC1BK05C7|R^7PjyDk(W#%G%1WMguGQ>w{cPhY>n zxyJACrfZx9o)Oj?R%g1y>YcwSaWELQUu<)}mNR@alUbFo$q)YKyf25d!lv33;iUWw zgb9}rDI(ZA)7RcEY!+3QicTj)fxC!+&QBdz*5&z>8v&b7aS56_4Gn(%Y<19!50<0% zrj@5X`-?g*C>dy11=Zr8eSYq@!kg1rz2DteVx3B>S+}U83KzaSlWV1?8s^9R2qd7@ z6?tvjw5MAiKYSP~H-hAniadJ~`s>#(5mC`O&c%DDc7%NxT)Bz~L0{Cf-#iSI1P^rr zr;(&mzDinbkEx52pA3jRAaW2>rNACC@<7oba(u=IC)>u)oNwR0O_t~oO?+f^koS-U zvBAegWM+;;_MNI8cNM+1q4FxftziskxQ*A7&o@W8(FP7=9ry%}Y8tTcN|eITbnABy zrrh<44JhZRlaQ*T~cDV)1t+m=5>1WlMW53Qi zuoRN2X=@FqTcIs|Hhe^LQkclUwVJZM&N)6|vBpQI9BX;uN+67y|2I$8*4y^Nqg{jT zv2S>XV(7H#F|+#}e!EP3*BYOpRcym=14Z_wXFugI>8~<=@e(r- z^IXGlU5!JZ={!n{A`O~QWAP`Cevg}QQ^LOxi_!d3ZD^ra?Pb>kY5VE*I>WDl{|hL} z$-EB%%ISUe5S&)b`|98J9;ea2UOG7a8=9N*b6#*gb_ZoMooaK56L6)txw^71gn`e} zd3WrtBRKz$kB>)lUz&`h3O$O~DZegBM#a6<)UCHotE{XH4ebZ#2>3TI{#9A&iNIq% zn)aI6fLq;r<0EV$H;Mql{^CW5;sC>GB#3BpYH+cd7erK5(`CCma<6S~wpsr5cZq+r zaMyBr8MSXb0v#?g!1aV?p1J#uHLa4m6~Egerb9FGhl;cPCFp2P(gj`8T|K<|(A=ER zCxq@b;%#r5bw4SOw2>2}%r76Tjybu}&Cw9TN?z7obEV1i1sn$U7}e zbcyw4ZyOX{zdyT(((Wa>I#BTPAM6d4ZGlRk9FUI4JP#KX)`W{G{1xOKX8+R48#EzZ zhPrqBVQs%7^75tWpS|OWPt#GN#1??j|wmlfs zms7qtJw&QwQ+Fay6o%aR#@Tt_u>E!kFIV#Dt3NZ{uTk}%h)fu1ASI}mbus2v+pkI1ojUD|ILHrN!C~*_s?7GMOR1=-hZ)VD7w19jl>C(Y zhT!#;m0Yi0ePLr}X69f?E7hx)^t?XZf_Pv3VcdEQnzoU0h?==VZr>iYX8+e;2g_0G z{0`{=>H9HWMG4LPuOqt}+uU9F^9dB9lenE4w!E(T(#racead@jAdJdA{aV+rVO6r3 zb7vZ|kWjq`oNog&pJX}R;Z!etUM3L{Y^y>oLW<(H6~07%G?^Gd2{#3coNo#M{Hg)P zLR4GJJo7{D@N;Hw>WCj4?1SyvtJF%(dfY?BQF=Z6h~IvgFN1YWwBa6qNnEi<7@vpU zTN|w4WuAYT*}^)DZSq1n4kenHpS2$H8G_E0KH{*QYJ6yXO3CR z!BY4|6QARCt14T+^DDwB)55v+2Ii&0B%v0MLyk6>+@`K55$%y8fv) zOMY<-i4F!|6F~9b*Gfu8$=^fyQN%g@qtlwZd%Xqpb6KcSGkC)N6oD$`B%36seJNW| zBndq_d|zJQUq5om_I)wU&11HIyd$uH*L@u#v_aE@tMxKV@k3Fz(I)cpw{z|juWvLu zbr|udm+S1|vVxr20#AZ>3mU7Ia_b(_xapGcuFlModeHi2EOgmZ%ai1JtWlXX(yNn; zzCH4O)nSX$CDWJS_)Xq@)Y5w~}T)${wZ12${ zFjJzvL%!(I_P%>YR5L2qe1Y(Jcpr1TuhN5ZWuaIMq<+$>$9oAlGOKj(zX_SC6qMRj z0w)}5#SOZ%;S@Zxl$$pl;Al=gA9(G0P%uq&49zE$7JmKO=?rHRc;=K6U)`<3!l!(W z?p__ufXo!W!=A7hN$qFcq6Tk*A1Rzx*i)B`SC;>^=9lS*^>JswWrhpv1)LR#2?1P0ger=TiShh=!*$R`RCW^L5fw7r#^}@Xvzfy7+Bp~=nsG@3N z%S9U(Le}Kk=bYGmO6bnPIvyHIQH`;x-3G=+NKsI%%SCrZLg=*FXQ@S`uk+f^uKe6a zEH$GqmyvI_)Chd(R|Fq2h@E}@tH6t_WpAKAzO)=U?3#Z={{+|YTkf3C4q6qUr~^Rj z`^$5o6oc;SukYy{FXk*v`&Vq#=7{t|wCBjh2t)>LR!YEUnu6z`f#cJUMeS$Pk81vF z5+rbogE=<6^&ct*Y|ViaIsT=l6)2^G%BsiN_K&2bIWTDiU`Cl&c5TS`)FF!DlarGG zEPUhQrD}`O-bh*_)8|av!2#D-Cngve0U-0r%QZuYM*ZeP8tChTY>S{#Dwv?f2jENo zg4B%HdK&NTOU)w86#uZn*Wk15l7wb}Rz>44KoaeD_(cCP$oH<^a()!mxIK!l-War; zlE4q(#Lk4`#K4ZdyYQ03O#CQ%L{tIQr;8@*^>*3USbV7VE5qnV42}e#H%1qB@*v-l zFb;p4;UwI>;`k+IiVBZ$dY4ogo8s!`XhUF50#3kNFzyI)?@3E+pt-H=&`%&x_N!5F zl6n*0g&6d-CF=b6B+b7^p{#F&Ot+f;4d8_{FUHhz0IObmmPkF3HQ7Uk(=h0;O~@=` zNctx9zJeURJA~si9Z!;N2)jQ<;*NsXldAclmbYm-jEK7{?%XhG$ ziK-_*Z#?=A^WtwrOEBgBY`_{MkQbE9LiXVHrO%QYl+kPyZLTJ4Q$7oYb|fUZJgjj6 z-k!I!O6dREIiL?CcfNZ8GHFmu?$fuq}wWwXt!>mRSd=OgE}o)|Tr(WLc=U z+u4rGYJ@?Ywv`?fgX^3Yr0ixV!%tEIXhx0MHD1xnZkC~hnAbZ9RCU^qoHP0H6=uriF?UYw%58j`+w zDF#akq)gj9Xg{}}ysmXx$r8nG5!tx|v$sfG-*q$DZ>tVgLF7t}KE#kcN^G7!o_-f9 zd!=3oYx5h=1EO@)aw&SXtnDD#g3<$xq4A>4xRDXOxeWy{GzFL-O90_j8ftVipbRyV z3_cz8>E!Ak**PN_WzH{Mid=DkIP9FXY0nDkh%>W>^HDwi23Y+!ZWzjgHvLF(JVslc~yP=O2x;{Oo@QZ z$&kkkN=i!l1_ow6w_htNDnO<1@?fqyGIp5)HdRb^8~0#1$PSqLDXl zFYdDzA_D&WNf-56)sCbR;3(cWDA%dZGwF>0O^wxUlB?Tm9t|<`p~R!5=1yTySX}Py z4IUf>nCSoB*?)GO21)2hB*j9lWLQ%F+UuT*$vqSw!m1`z* zgVhzb4|Dsp?5nW?p`0qo&(9ZV*ynVZHhONGRn}|kW;IRveWp~)S|9!K9abdLd5&5^ zM#NpA-PZ>IZ#j_h(~uWyS!AUFZ~x&mwq z(+CM5v#$3YZp(&I#bE!l-y1-yKXkR!Pv4Z!qJ0>ax5G+8@nB$;$*$3O=m==;8kb z=LDFYVOND*AorGMEo{EpB_UbUYO+xGti4q++yWC5?EH2dwR$*Aiw!e|co4HX;_AFI zE^19*{=uG49{CEq&;cz8Yjws;v1UWrO%SI5!c+ZMGx&pRtMk>#>Ge;tgP^+=_KGyL0IUH8|$6#1?evOoAdJkG|fIv;OT3odV zSlti|Dxr;<;n2TX{ugG)%n@UOZgfxbk;e{gTkd0@^jJ&J%l|18%zpI0t^U#B+cCo* zsRSO0J?-*$d8UQggKp`1ZkABI4W?SEJs1rCU{PQl)%@9Qg6uW6C(^0SD40fD0Esco zZ&>#4$Z$`r%^E*T{j7Hc1{&@^dDvOwsL=NTk<$J7rXVbTOXPnq%_zf8URxJmL0ZjO z_RUFiIQ;eZvEM3nm)F%d;&QxTZR_oOXvWEdv&Iw4{#_kDR&9W=3)Zl{AoqykKL-$-<8V5~=4f1L^q3iwDPR1e+azRX(fY# zY2i~R+^GM16lcJU@}yw|%DSDo`4T^xre12nmhw^-Dqn|F`M9$=Km6$~+fj=}e|(IJ zq|WHQDh~wP_Mv*aX=ytjUBMPuI5xG74)B|A|8fd7X3Q+YT(DC@Y*@U1v}ixj1BbL4 z3kW1f>4iYE^rDQp9k?|5uy(-e0Ou-5!eoJQQ$SNt39T|bAJ3s9JhF|uLBaw~dZ+e6 zU^Hjn6L>5*oIZ79>fA!-&~QiC3Mw{F8AU{Sm_QrLEkifM3h%D1G^(4O|DwZ zIXNLEX<8`SY}@p7#dPxxwmOlWUvAz{QPp~3PzF}W=<1C+T%O-9FLY;H#IbA6kNv5T zK6xU87q+{XDh%- zW{wYxQ9l&O<+6<1{uinK8FH1)I^n_ZqVPE6S%mqKim~BMXqELRc*@!3GqhT4daduE zb@a^h5#O88sMDa0PEYi7oqCwL3)L_c{~Yp)+EQ9VYc_2rExA4b>Rb7%8?Xl#f7@nD zDb{lxIsbiIX&tq-tO&)5wAO5+n1ldm#HFjzH#q0a?`OV%o?*VALbx|UcH{|2ouB=7 znRut%_v7{c#jE`tF66#uF-CPs3a2Bk8U8nevuO#U!Ou6~CDVh9L=@naW1PQ!U+R>@a+}zZ>u-%v{fz`e zqF!Y!Uc_lX`xrlAl%}A@egy_Oj?>E&YZcrAkWG#_-UjLI-fyYlfvGibTV7k0u7JyM z?dQ^Osk-}V*O9iOYc0LlWS=NkDG2x;iXWwnt4sbH!kXdV6Roo<~+Rwo89Bl^=!0kF~U zy6Dmob{ikxUNxs;BF+wP6WG4oTgOiLe^e$W;C5AT;jJBC`_1Kv%VHE01s|QDBLCTB z)1TAkvh$0hL7LQn!Mer)F(3tqUoGNiI~cDoj#jd?chhFze}_ey}O)DQ!2ML9{k-ik!}_wnhiJZ?usD z5e=I1mHv2_wiV(vEmv^tzs(}lyjSG$Uu`zh>S{LqZwg~ChyP_;|2$wR13zJ-Y0fzo zbfmV1uuwVhI&QYO*)Ke?xpp`yNV4B?bUmc|GzeJ*vAl$+{KcH`gEQH{sx1W) zPBXv1SerfXef7nBeJkl@0Cri_?JCx6V|(^#!$3n&j?lGDYTd7bkI}+YR?62lLmko3 z1%9jXYGrN99G~WGn@qdDWgKO4LC5K_(5=B(R)b%$80Scsje6O?HJ7rCK6tqyc7)oa z#Tnd1f1sntEHC%-*l^fZhxcoGWj0O~>NKa@G_g^LTCZnD({eORZT|lF?pcdoal~Nn z@J*?8+s|%A-Xcx(p&y5R%^T6H3a?gJ4Wviv&mWbRvx96(fT|DpZ!P2B^IYG?WnlNJ zE%DtxdhvCS(T12_qYa`w?&1dkeB$XSqh2v}PDcw_2+@8cE95D4n$&e$8q%;=MyuCH z#QccCa~pv<`tF?Mt4N&8Uq93Z`}Y9rPueA!+1uhHWdVQTS zgebl_KfqYF$hWyaa<@X-vcX8-4-T$UG`+`?VW};%QVZ+jEUeXs&cxeM3*}`ts1BxjLu>Dd%%oIow?D|8P<5ZjXPN|Kp-AoQX6;0_F|g z&m$IpYVGh7{I;#T$wI$In4Rah>+&HFb2xGsbll@&i!!_5!TMUKp?M>wU2lGst14*I zW03s}y@4g=93FR7kh8o^4PWU#ztm>yV>&fAThAS&dE?mVcz54G9^D9VB7n~1u_cMA{p^{p%&qjs~n=U7x+VCZ3$hQY~D9 z7I4IY^8m{{W%AP%>^ruGq+%nMS89VEfHMFZLu<<}TYr7|_$Ju*ya^4(hY17|bK>ho zbXL6hw3s#|mK_t8NzGOFyjm5iZR*$xEs7h0w>^25h+y*=!7Yl?;4}OisrATmA1{Eq zdLezeYILE8Gd|tVeHS6siVWh8H0g$?{H3G6tf)i+(<}^p4VzGsOMvwxgmHzOMC4_k zdC7RDRRvvX5^>`lSGx|p6+D9$M=Fj19tVKm1P^M}Ovx4~d$#{HjMMkWiGq!KS{YZ) zelF)>%~E^ulb&a(VN6N9m{%ayPTB8kwqL97L$>07*-kFtTBQfB)?i%nrRX31(FqZK ztbS|+-d#`uOdvg6o5aV@NAT@wl&Upqocsh3>F*PE;%}*2ZLNM(7Yjcq3yeX_ftllyDzZEMv3&rcta5OkO~+B2*>96o%RsMG zkiSEvU7uNG#dZjB8vU(Uz}io}ffg&Q+oLe^kcL z#=%s<4i)r_l;{9#$u(EmjO8Q8T-#zLbVxd2N?ynpd`T zPPvgQJNOwdRgNt=0e2pqVO{uyQIVJx1rMk0>Lb$zt%lvBqcHYOv0XxO6Xcpa>kC%b zhw!%Z8m%}=DKAu${U#j5r;59|-xJ>RyN>k0Sc_uIAFyJuU}0g6-3zI|?r_~Sf=m^d zRz7LoF0}^Mh#Q%^R|{G4`!PLUH#LXmmLHy#25FRQoVPD4J{r{nke&m|zlR+Qxi%Vz ztGOqWjX7I$wJl}(2I$?R04VG6>E+*pzKEt&`#Y2?`F>;u47sf4uRv};_C+(k>*_97 zW!@Xe0-(RgCq+9>$%S&8PPa|^1;4}Iw6$l>=7;{!DSfEpkPtLp6%PxG!P(2Im2X)B zu5@B0ahwNCvpQO8q#YmbXVUP0F`(rqqi+t+8>Fm@D2bk~5Vr7jNKZz6Z55!EG9h!7 z1Xyh3-)kMOhSz~6y^bqpJq&oR+W>!C@{cdi)_bX# zpI~Jz=pu1^#PsI)AiD3nXYzy?-)Sg!;mB0$X&*e8y0%xkX+gtI;Y~?C!#jKfDcxJi zcLQ3vqitqhf}_#FI&%(m8InXE(J&ST48Tq4jw=y2Pov-eU^i;EVq}is^i5K-l_okP zAM3^BY98jWPw=UM3~sAns41Af_`=!>4QaSuc6e=sMq2eZX6+3-vujVOq5 zP8KgO(#(SHtN5R#`GeHz_I`RkK9aYw86nOHI^aho+*{lkJ;K0pKA6gUlU77hT#{b% zq8p&jz~wFIX2sLI^6UVubtF`2tR0Z-LN#45SQql^sIB;Yo;SEO|DySwU&_Yp*Pw)V zFpGUeO@p%Tb{`+@gWeY!Umh5XH|d4bF4jUYtNFTgeXOQ3bpj||=GLoR2HDNV;bafH zWb^cBQf!bNBLYGae{!wBZg68xMkm~FqQYEM@NH3ixkj<$IXB}cfm9&xNaddc`Xz8f zQvoDbB(4DW@@J<($S|Y5bjAvR)Getl#+|c$TS%?@p{r5;ehaWi;4Ep1t25Syp5VNH zJUa>Y-~UM`qBa3x~#ubhJCK&%?cb;cY1*wh!A=9LGjQ6tm;Wsa>@Ep%;0;Ig}F zm&Px>@`adFs^{=|UK1Rd+v3(7PUnf`Jl=@t%leRl(#y*g$hL?%W1xX{;$zHmRmN3@fv7W1NT56;G-$ z?luM|9}D8P|FE8Fv-Ipbp5Cyq_*_5C&tlZ1KXn=h>@i744PW}D&hw#8DrS1DWK^D&?h-(804`2%>B91S`NA+cwpb+@PA{YQbKpFOKX@L$m_UN5tcn%)y|&{B|FPCxS>IMY z)l921-PQf1>FWIW5S7!NkCsZl$Yc5x%AK<%&b{;0hvj1nD@-_Dj`n11ULlqN@SJn& z8*)um!L(U$y!B)NVVm1NVVf;L8HO|4EOprSC!@wveSjIn^)ur0pVt%TSJV&op>=vi zHTR#|oiR@DF)YfR5eQT&s)4qoWig@JL*6hQ+87dPZdU*~)4m?$RqiI!C5dmX=IMVR6~ z`IwQ==3e?+H3L%Wl-K_G4x3x)V!BQ+-EV1(JiPdy8?3i-XeOC+I!d6!_ep!b8 zlKDR2M@|O{6Rv{J0Y2}WJtyep3iVr!L1yreb+~gatZChG@J`S$2ZMK%N+m-{`^CF5 zvjFp&>cnij&49~;>aT#R?P|MBvwnVl4k)=j?r)y*%s+(raV~c(8!G7grxHN(39k2~ zTDi;F`S{LzIIyST7A`*dqB)kv$ekcfD`Vw6nk)v(@lFXk0iO2gd)Nd|m7iIL`LC|7 zcM}tD2|#Hn%|VIr)yGvi%V+1d&~uQmMmx(%38Jg*LP<1W18@t~8+*e0ZmcGC(el{2 z8y!Lp3E?7-OWvx?izLetK{G^g+vTxF`1||&9TV`1&Lg&2SXdNPq=jjhnGx+?h<-O_ zKTF#mM*^5C=R3-ge?;YeE!9&y&BSvWklI=lX%@WwMSe&$Q)A1J#dG+uod-$Bc)Oh9 zs;nEwqJv{)PDq~wz6enFtCad4V9W-ov7Hrx01*?@V#>_ll`U!xnq(`O$NoF-oHyMr zCW!qH%=vB{6S-D`+AHlHfwQ&E_q-gKI{5a8`PjID!zdep;zsoe6jme*e$?#q+7jIIO>Aet8_GEeny-Avt*u zrJKgvYE;YgMK&dcZ5}O*QwdRSF!9N5e(!vne4Z7S4i}i)WG@wQqZ|wDhN}V&IdL(pu`r|#Gz82+8Ky0rwP=GaY{xtZ zZ`kosYlX*lQJT|?ZHf&rKz;Ax6CAtsNO{8!k|Fr{G|{%%%d;2p9#4CJKQ>&n$FoX2 zT_E57r~zW2=aiL{(%2!{kfy5}qI%EciT z9Yi<$az69zU0o*1`5H(H|HvuF)+|%qM$3*;0YDdUM4ZqPb$EQyQk097H;o~4(N@&F z{n#sY^kH5gA$(CfKOt#c_8z`)j2KVB%c(4#N8+PAWxyBlD_^yU_t_7xF$+BV>3deZ z46MiFQz^Fsm(E!-e#x($@oUwbCJaZJ^ZcT^aeH{Y2icmS5io)0{UgCPbsa0=d47rH z7Z<_f|MY2nNq(qqN`V+ZDuWWs%I{`_=;>U$-@|0laE3piK$QyL-vt+lSODEU`oxU) z)WK`UgP$fsVeHx^xVe5$qsqM>oWhbfH;C;R`}~12JzEw4Mw%_u#m~GM`g;!VU{(w^ z`3O@MR?|G0fDe*ZFtk^W{pNHzoD;>taix(T(D>E4-ricj$pq{X8bylVv*O>mw>qoi7+{F=QR4jdILV#walb}qbqO*rELAS_rob>mFHId` z2tKRRT=b%{vCr*G^g)q_yT=cP9tF*_kQ2gQNC1q}?R-wS1&(6eU_)8#-*C)v201(+ z7TP`{z;FxAD0eSQsxiH8@OWdg!$$SmV(MF9eO)?1^Q9J>s0nmG%xSe2j7yMn4O=cQ zg3cna3W_0Tu-0kQtNa!5Fmr?vfV*ir-Un0c9cryPaj!zU3F2UKNDu_u+NPLQS#ILR zgoZsOT>0+#muB4{a>-E8xM^P4HCVFv5J7?GKF+dK1;613FO8B=pr>=wX&yJI&HL)r?!>Q7PHNBAwoRNF z;>Y^;Q!!eX-0_03%H_UB12T0(vyN}DbB4H{GfSvP#s{6R- zL5lBA7@}WQb_IH@c6OP1S4Ao2LG*L;o^E@>J8cqgTk!R9*Zg&3JkvKL<7#%YL-{Bw zz9hR)6uF0N}YhVqipo!`Ga_t;Tqf13)r%GzX+>#dsu(cRL z(J6AHEWD1Vbh;$04XqdHDx$KPQ{uw-%6mdPj>Q{8l+6=*OJ#OW^^4oSkn)<&jdoq; zGh;8(+gHf?(IOY;DHXyk>)PJIqVB>UHGaAJ``5ua+lrwrVL?kGt~=1M=Mtnnrjy@c zD_Qc^S1Tl3ufAQJSi)wJL|75Awbm4uW7XEX`NYlj2bkJMIwoWjJ9ue$FodUbMVd!v zzIgQwfQ!B|DEB;6=FuuksfwKn`ZQ=E*Vd15Suo~IP~|Rxy;Wj}U1V$>;PPJ3Q5aKy z-aeeqIFse?hhs)Lis>`$kmw}Tj6jB|my)7>0Bu^;OWhpH8Pda;1D|gbgoFUhxxbP{ z_RS-;AwlYYAaqJ(a|Mh7zZ*O{G7D!s*o%}x%bt_(i=#J6$XuI^C$|^Zw=Ke7quo4{ zI=wFMyy+6b7itr+Sbp&oMYLNSGie{(X&*o}w<(Xk$MV)+H)-sX0s$_4#M?h~E+ zQCpW?fAtwIDNeKXHDyhatzYy?{I~_iX>pcIWghyn;6uRK^rkKM&c?BxVx4k+LgY|a z^Vka#{f;^n&L)fYKTbCsD;3`>ZaM_-<2X6}F&4yJRfv{=`;ZBZc8}A(HPx{<&KHO= zjGmk`#aR8mO2dSE6}?L-c`P*N410a|Q$(xe%rjR^3w}Il$bG`v@#f*hHr05*8P8%G z!HkxBPK*PcnE3hgr?D|mx>N$X6?fs$c?MNp+ldc=jdQ*D1sYIfX>`S~*LvcGIB<0e z#V{jFMec<8Z`|#a9qNSarh>OHIfwaI4qzHqbwP3DtDiH~9Sal@>t#+8X0Aeu;%vQ< zku$}T-7Xx0QjoWMM?mr{&a5yv#OW^vkBS`r1#$ULKqnt!NLYN_fNmvsCQWV5El0Cae=920X~69 z+}Tm6GWxB9R>tg%U-zKq6O$7h&+$k&t75Od-Alk{?qJJTi#3( z%x)cM8!#L@@Mloee+X4nt3qDViDH4R-j!Jd=h+Lb&8Ol<&Ca-Arzwe90G0nxLwf3{ zV?t{uzDBHm>r&5+K!gB6+}+I*wE%{u**wfk@ch4DHEkv)8qpKA%k(d?$griYgaJh~Y!T+u_&`4g5(X(;o_OlD;10 ziG(>|V=vWHMY1LozX!F2V*yygsJ(l}!QFhe|56j(o(Wf zN3;b?CI$@*og{?nqPLxAGjs@src{;e=`X#U`r!gDOl|Ce+21cRG(V@8x#f!5+_h}$ zIC#lApOGu)zu@D1&FR11u{!G4PgQEt12aL-p!Mc9qoT7&W@0i zlf;}Gwy#LbOw2-u{QkvRkie3o+#z%S4&R?rYK;fv3aoc`A4xfGcv>rtdA>K-shPcK z>&yFOdNwH%Cs~iAt|l?w%$fF&PUggF-o8ND9bYG;tM|jaek##I_8>^bjq+z%OeD7BW(>6ybE{3JB$MZ#=-Q+xO5*oE-VWfk4SGE5;}%F7gnj z?P|gM6FH|%g{5!AbZP!Yevn5r{CB9C|MDTZBd6`bv#|3e4uiQ}6jHO{InwKys=wm} zoe|8!D`mpssp+2jk$u31!#JPSm=rG65gqf`TC%0UEe#Ruj(%pD2`n1dt&uNT{are{ z7*cQro?nM@OrD}9;ET(H5SywJpK(M%ly|GYiSZQD>ejs!<@pSMHk^}(j%8RJ#DwG3 zh3ADYNq`BYar!?YKjwu@HZh=Wx-C|Rjdo!cO08NGKTHuy#mPRIO{l0hx? z?&HQXYdP|AphJ3yZXIzCs*VnKn@mwWVhl^LTqt0q?(b!}6A^uxum~8^xxTxdmV(n9 z3Pyo2(Daym7~EMx2Vd(~&!!%Nx`zTL)RF+`H*O(H3rCdEwHMBiZ;Isl&ZdObX1d3c z&Ey#N2?g_Ti}G~VV`!Skpi~u7s6_^I9xqQv&8Axz-q-;rs+q)cL)?})ih8d8Ik|r~ zMdTBwd8e^+{mN=P#Jh%L1RhBcos7~~^>h3{Jr~^{uvvmrCbnQ6l~%p*lv~tuN~Gh+ zsSJUFgs$F8_`E@M_L7(XrThzOCMvmi&-nQGKp5iU;^OD$XJb3K4e}Bx&&VJ0L|Tu( z4BWU+aCa6s&ed!YQXH&0I1eb3>>2&F==IrF@7Q5jw5m zzb0<{O6mJNFTWb9|3#mr;TgwOWSx4}UA$n3XcP|zBh>&t)M$5eR5)B=bTq1fmu%$L z4((K`Q74(lN~lw+6$+mcg)RD_TRs+_w5j`U8UM(z&y8cg4oO# zhmCR~t}KW*&CXN7?=hQp|LC|zqaC7Cr>XaO6RXxI@#D}Bc3(v?dC$pbbiTJ%#Q9dL zRUNY^n!1_iwm(bmn~taHSvXuY<-8G0^pxn5W)9553<$ZSADsOepc2-3PSd-_*QGse~z_uWd{K;~m%| z1`;@|EkC$BEqtQC}2c*2gwN1G}hWoTV1gOx46W~z0ZhzYarqJ=Z#xA zo}W^tG0F%ImATDYb2dRFu*o*lv$rWn3L1)=`{NE&)WWqSX)HMfVDiB`x+%-M{umx` zt$7oSNvk`s*8vfMnRentSrRXbmGfLiCNqH~xHzi&&zCw9i?r!HhiGc($|1*`U=oed z!Y89Yj@a?aO+NGEI~e+~#%D680WhOdf}xi*#0sFAqOpc5aPEJrY%TCj@0`3i(!Q7* zHlvR4MEG&81$`t2xj6d=)$RXAmP6u`j!TxsIU6YLQ(zYDa2^Y$d2X~<=T#Ti^4&%= zgg_iY4%DmZN%mdGIaK3RvRW^#MiV!m*tWsdM+9e^6lY5bY?MjzwR<8d zkp{+4#+DNlG7QLF?>7=ybN}f-KNUMwxz>Sbxs(8TJ{`KrQM*Hs;X!-Nn2f8;4DiiQ z2SM?G*;PgnuM+BuBb7Bpkp{c%%O>oF*PXJIA52x0VsA}tKi)LVacLqv+GkJEUgXLk{pbb8Qu_Wk6$NJXNr zH^ttq=dhlVY%@;6dH9ITRw*o_RcZj!%Uln}A!;1p38lq^K_kX57l5K;v>q=k8bJ+1 z-TGaO+$;H>`(r~fWGQXt=%}pNa6cLRmOeN-I^qzII>J(~Bw@>GekXX{a(v_{_>__$ z#P|648X^)rHzzd6UCncrF-LJlx=R#am?|tvAsny&v3)s@#QdhohO2Y5Wk@^wevu>> z(xUJ%W#xP_Vj(izgxzmdZx#n_{g#8V;^g7P$?WXeNYhb0N%+mJqVF_BK;5nMC#8YD zui+VS{xxWo$eSRfLIaqug-!VVAIIbBND<@cLYLpS_8fIp1<4FiLd4HCN*^Mk)bPHs&b zz;HP^H7N^!`qUOdLjSySEwm0*@A`qqM``8bNAr~qrPi)QpAA(mG>y##HKoZ|O&Bi{ z$B5G61cO7|bcYbK!6vd6_Kd(g>@zp^17DK)>)zxI^(#`#billOR5K@u2aymC)hgul zS)ZPZhe(DmGAN5V(Rrxf1qu}l(v@z4$D2~SjpE8*ujlUhNs^|y&@8A&IWf^1TQDb9 z&T*PulBwt(JgfA6W-20>HW)m{<1g}1;Rj)8MRcRMAenDqDxOSGWT%!=Dh%R`AN0Xj z3$bDwH1mbEJy}!3`+!wSkImVby|p*RgXz6HY3ebd48zc>325J(nD?umN&`mawn$kso@FyBXhLm;VW(y`$VZw-W~?y1O+9->D(fzQf^bc~XJR>>^^= z&4}L29ykN@wXglkWk<6H&$NFiDWgI7lBD?E3i~z$#|}NjIKN!FDi$XAtpO(b-Zp;E zRg4AwZhq%AnUb~)D}>v@Fp2nFV<0m(@=QFvJTt_^&JF_hc3t+T1HXOyD*If0A_m=wZmigtg1C>YJIt9BJhMyX`kmFdKDsN?7^)2Tw_sHFrs4e>65+u{v^?h)T`94Z2;L&c<5Z57zJbD=BHn#$@kj zp5w_jCfz7|ah;X@qR27(K3Y(v>12V3ynd&IZY!z|puux8?&h%N36D@-kf!t!9|;yz zGc|rY4R>ocj<~>4$%Q+J6ce_ng?Qs8?6(sX`NIhFdlP*i)mFgQBFY+HdWQ=P0G8wx zVac$FALGZas|66E&uJg7b%%W#q7fcPe5<>YZ%Asdcb&j?Z1U~6u%OW7l5I--ZY9;S zeOf(>Yz1Pl10KBCAW3B;rLHN}jP2+ZsOxUr$*~&=c29y?-i7LTX0YoV>~Ah&k+)62 zBOhoq+x~3&J(`6-RF*V!B$Q-jH?ZfV^ME;an9akzzkrH4+}Xxg*F)Y0qwi$2?fuT+ z>(%I+feY<~x~7~DbF7M|(`d>9Dy$#izJF=W-}|I1PEbY72;Q?tJ@fVp<=vOmavl?RTmMQXs|{p! z?1`k8Cz_{sAFi-YcaUio^L5l66)}_B#ISR)J(MBw?cn=^T@Ytg-(f}2O7J$o5&xXv z4w-)0OO?metr6vJr)*ovC^gyLqh|gbYjm<^(M-9H-NoPjAlV~_;MIq;))$9+K^y1` zO8sm{KKBY$3f_^^oVt*-aay~zhc;A4{etpfOr*e?9KNSVj4|RXp&#fkPxXt6QPlD||>|czp_x5~ZwbCrD zv^{-di7EL&gDX^PIR-`ZuG}+iKSf1+xEm?dsP!*+do(2B;0v3u%82=OSUjp{*GV{e zugvB*bUSr7MRY9LKRnohjf;qX_uH|uvEKmBf)LTgT9c;cocDvq%3h5+ww%p9j|2z5 zTJ;nM)&nL{E{Jx)*JB+=hgGTs$R_LKOlh5=rl^qz>|*z~LR@aw-tzsRQ10aZPUyGw zX=7@COf6L4@>_VX4*ENK<@TYY?(ezF;MW{a^;*xmP7Ml3nw>8U@qG|?y+}VpB-bBZ zA=j#7SY2rif1i(!D2_835wVGs+X$lIf0U1?iC;W6I)2?A`e^N_&S^}34Z$RVIIeLs z5^D9{Sz}yaQx%Eezhsu=PIbM6hi|Xt9S;M67FOW<(JQ&*g_WQ%tCtis*BjhoPk6vbyA}jj- zTC?k#EMdkyu9? zYa6olgd17C23D2+=Et#Wk92kh5Wc)84qcg@y#k!8pEXq8B==EQNvOXw`0oCGd257= z^Ou?*B!=O^T1;cso>*xV4=Cz!BP9tHpf6;B8`34^@b6iHvfx7H`J=o}IT77_zH|bk z-Xv5hR@FI|9;4K=8P6jGtuI4R%E|sWrEd}XsHXQixUKuD88Aq~oRH$ipN=d-6)_}& zNv!!C8E1|tF340Lu`R-wDlM<0+A-KWY-8!R@wi1g8@bs=bSnR_o(T>*zQi8=rQ8NW z>F-wa@c@HN@3jJov6XMAwBdt`K%XkhcDS)uI1ngdJ+{7D^gD9$Zr@>Fo~07Y8*LZ3BRJY41I(reppm7AZ}&@2xfrpOdEO6O%l;PykL!5z0N_4d;8c8cx?jPU;Rjy_~Y znILn8LmHOuyZCe?FZ;nEO)D!am*OdZf2{s>4P`1?BvPQ~oVpClfH7!J&_;;KFca&D zbH1;hLCoY;f+Q+BP|DRm;#U(^E9M;vuTnbmc?9*zBdxdF4GO9$e(#~^mv3w#_lRI( zNogZ?p>wsLNnG>%Krv)J&=LW$rhP=D1^e3a|MB#dVNrH%w9*I?A|)vzUDDkONF&`! zOLuoFNT_rTh=6o=gLHRy4&6O7XTRq<-}%E|nBjT$UiZ3J*ybUOwPSci+ba6Q*j^Sw zyG!Ws*oFr{2VTUyU{&Wh(ZzRrF}&-asQ(m79{Y~96SLeEDzDFdZoim6uqfym$9e20 zl*&GoRO2labDCDq^(0H}^f#Og#|P#!v7 zfI!`{V>wnN>OTu^)4nSuv6U?dWJr#YuYUXmDvk~D|tKH7Ur~k>`cZ$5)%f= z7%+aB9Ns&tN`IgTS>rMpZpGQ3(#}bi0Z2OHnslm#$X?f|)OEhMi9><%G%U~o&oCQ? zp05v?3b!Dw?qx4;8pAu{dqt*a;^l6M<(=1twu6&(fa-h8LJ_umCs8{**(^>KMwTtb zmM&Z)V7^G&m%`$9$3L`V++EzXMP(t?hj7#5jP}X8!jmZBjJUd7FP`5$vkFU1Cb!}1 zdK_ZYK!zlVcM7n$mDi!wJX0-so>(7lSYa4HN|7d0yxBIAJkIkeai37V7&*Q~Y1YB9 zRa^`ffBcZ6_LVYHW1XD&%XwPgh_Snz)nILLx)dGmqYpD_hZZr??i;6|xGywf)W?Cj zPms?HcHiF0u;Yf8lf3%iWmAY-qrf_+9+ty+G^k06hhnUPg zL%PRNlZ;mwE*AFIdVj>3+h@0e+7e%CpVD{OqZEW5g<5oXOc4XSUfC)`f|0Agw!Vc?We=?vJUPfv9*^CWYu_F^= z^Sb=3>vkkNY0lbw_+Qw0875(2-{mNZS8MQVT+4gyzpCpX0N7Xc`6m!L>!|r(N&>=1 z%_JtF`oJ_D6XC3^<~KF$lfpw;CC;4O&|S$@iOAd{+#a5-3G z)PT$b2qi4_D!r3!7Ny4dj_meDpuAHClRu^9eH}&nOq1<2cF@w2k(H?QB1sqa^yMsL zs|NvlL7Phtho+3pJxk9I^;(;I>Cg=BK?);2O+;kKiMG>7&r!VjeHUWn>`;B=5<^nS z*I`i*)7BtADE3;RIE^xRb-5b4nz5oW4nO?CsjU(SFo#qoHk%gpGatd>Qd6aFv_Y z(6}E=d5D;K0VYF>`z{aBrcanH8_L5U6$A7S%dYKaaei;R(5{Lk!!dgH+3bD2lp@l0 ziBsEZ&J(fTH?_Xu6jDP28}+*kH{8Y6tZbWcp`aK>%L45??6ii{ucYNq0!pR{@;^&y zyC0hyG++;K+*}4u2sw-DiF7Nhrw^YsIi*mJEKM=?x7M3RZP0JlQHGC*RaZ5sbd+)g z=CyIV8w5!XzJ-O=ja`1$IQ_weAfp;yxQu8&6Clt0GKb@VFmfgDW!Or)ZJ6fZhuLVC zJk9OeETy$)v8KMgZZrq2!cjJay+MrbMr}iv0sj5(_&7f96Zo4!-J989vKwWfNxr~^ zu`cCW-0&fS+`lut(k8SG{-BpoG+X#Fgd3Kf{3({?z7$vT)DXvdCge68!@&iuFzb>< zF`$ooEJ8!AyU==s?h-~rE4iF+9!dYIy=1Vh=Lz@cs~#P^P9_6o`#CfhVOLxlN_%hm z)Nj{+6B=(L6+=c2(~tz;!VuQ6EboV!I^CJ(Q_{{!3Jkuaa`k2`wjUYZv;P=3hcMrd zQ&pU5{E$%kk^RaUvKWzUSVhP}Hg+sHG@@IhT%zw#av>;^3~T$)4R^XLmY3sl%A8dx zqHetrXLa!S^0|l`i?7AG#%HUBe+Hs`vR8Cf-|5Yr(0m7v+np78fAcPfPzzO6r&e%d zvQ>)hQa!8TYtNnus~Bw8G;?()l(zL3o+*>f6pnO#kL8K(Au^LQleALxEuYrQnpBWI zmt<0X)&!EjW6J(p0=B`rmaIkl z>t|4bRJOHZB5dusKMeHPqo}OS&e}gQm#n9C8L4ujHq*Bh0>yEmwgC1x2#|rgQnJA%7|u_3k;&a(9!Gg`i952*-UY@5@NbNJA30@m zC}WgH5utABvtvuvhGHQ%Dyzy$tc2J;qsiejRYJYO-QwBP;q7_KFc%a29mi5Ksz}3& zVtAjMyv;8PMOkzQy(0XJiF+6`io9wX4e9v_y+s5zz_z`4SeYmmx6}1ceu!1wW`~=+ z&$2CP^NvnCF~2N?)mlg{g35Y9eH4@-*lT1pe|Mn8U&Skez%$8)Z-IQ#IgUkg%s}AlY z4zOdcE%W^(l#qyspP*3;>@2b9=qd_EzOOMuvzYj7dm{NQ96MyP!9z6rwYnTJDpMUr z;OzW%+q0M*$#m%I*@UFU0io+N=hs$gxnRk^z%6TjbBJy^>rg&^N4n1uF0)p~4NGA8 zQL>uUq#PwXO0iJW)|jdX+#J4CZGGA`KdFB}AsFYrXz$ZsTis)ab&C0wt8s%G8?nEP z>%^~X&VDW2A(WkQvzk=HiI{;4xi4N%(tF2f(S8l+}%8(ju_hQFv*t(t7?n}ntEP`fALjCHxJO}pBdOsd-Od49RBofR5IF{-%6|Q zEEJB&G;HA*TBE)HSqleaBpfRA$*L|0h&oLlOoS1l7yLZMSF@8a{)UsE3m6L-6L!;C z^8<*T&*GCbd%-)|K(0qd-8h(%e9AT!8)m;7FKN1d@CvsT+2L3a81nd{^)^<2LePf6 zmq87&a5c}Jo+Sw~dESQ6H8P53e;<-nAH5u;uJ=UK%>Z6$!gl#O`@8h#h{~sE0b|a- zUKBCb@tx9R&%=!V9*!e1NklbRqbN$s6krWaneJ^$pzf`fj`h?nuV*7gd&(6W3Hv8r zCLfVvP`$%PCS>_$j09=ue_*@k7S24&6R%6<{)4U(3vP{2ZrD0j&5)xtLsnsUFgkxI z5a?pSoG06WI|kU)@uqwRhb2P}8v|%Y0*{vSY|_IRw)9h=h@HlSOI_53OZLw+=+yOB z*0YKRj1_o+kB}aa+QXS)=yXuMBMB|?WW>ckht~Rm2m%|;0;;SBvR0vvN1xCi7%>4YD_g}0vm3uh6^iNEC-P1h z)9o%)UH_QyCI#AdxU2&HdO`N0Bcs4p4_p=iR4|S*moGaLyG9jJHh$lFvdZ(rXo^g= zLZ3ki2bfW%2sa2N0ejlb6te0?d~oYSrw2c6ys=jsta3@E&@P82htA{SE?xho{O26r*+K5VJu0DxXe?h?zqGt*fWhEI?4NXOJeh5CWDhqsd z!G9R3z%TK9lj<-e>4GRi(dvG+LqL!dMuUpQ@uz$Se^ny{c@8hy#^N73g~gg8Vr279 z2-%wdD+;gP<}oR9Tj!Mo9r&5Rk}JaO29&2eTXc>v9}?Tn;khG}^$+Zo7bFY!XnSoT z*D9QDZog=6>c8O39XdVBJj08rbAaS9xjl_wXjotOIX!4=K?LPgn$d{W{oueQ9W3F) zz3Mx6@;u2rY+-l9wKNUaflSS)a?F(Z;aROo;-J0fn&@kh{>9hL8`)NGJ5ZMY{g+5^ z`Ibf9+oN}kdSrx0eP~eYNP)8~8W_(!F6@ZiP#?Qq-;uH>VzIX#mQ`>2v3mBlsgW4; zTZa%?h?iENwtS!VJ{&tVq<9+mo5velY&Y9gB4tBs_KPTL6wxIUkG!dkT~CT@Zh~K7 z-DhK`W1;7=dF!r>%S#raFMk(CCXmI~^Qt%*(Q4pt-k7N_y`r?wabWz3rKz*>FAY8$ zV=i(7{DwXW%wf{!3*6e~vxoZ(vqRhsSDkkmQ_RCG9BlER~I6dAPXvTpy;Cm6dgx2!q&a5E|p| z<1-OP1mFAe%UR<*Kw^#fpnL(w$Lrh*EDA zhnr64lSKS4Y|tOALk;ss8~W`t8b`bHwgK5E{jzKE>#IL)w!!0!;hXFLa6!HCI%tn% z3>l-$aK+T_OYz0buT~WKx`U~$*MO;TT=Be?>&1BJcO7``Nz+!^StfmRS1B^p1$tINyBRZqoV=S*+(9@wNtoRWBt5qn4`K1Sl}buB%HA!Zg&Y z4yeD_xQOZ@;lZo13!Rn#M@m%=-k;IeBW0p<)%H0>2eGZqw%#rm1%*V+MSuV5Q1~Pp zbI{ws2qq!J+;LuT-C>S@968>!Ln%w|l>2;KI4%q&|GvncvEfF=k>5KXZW_|EOB(x! z6qz95f!_Edy=2t`S1T`J|5H987A`R{Uz9UUapW?>!T1UlrYfOHX*j-qaBK1rf1nJC zcQsY2Tj;YZMdx-^VmdX7Di%%w*qHS*7Pn`2*X`SD8*JS0I|mT@0Qmb#4|q8LEbDu| zFH{fjl?Wm}rTr4>O*$E{r0Yz9KTXW^$6Gxj_i%Wq*T=H(gV%g+hvxIME-f!-Pd=xh zprE8|x%a+u>nR)~9ZZAbZKI{eKdA;mjU@uuOMP{c3_~k}R9WN3c?86ek32}gfc zpz~pmALB}J`pFyL`r7_J>Ij8RMTFh3QlnslE-4!FupSeFPo{Qw5L-$T9Yr!}HTy?1 z4(?OB@#I5>6nmLCR=~->pqyV>ih^M~!56@|L*6fMFiDLy zIK+L68Xo?V@HM-F^n8$_P9-uiWZGNDdI7hK>76REds}Bggev>mJns55**Z5h!;ZLF zn&$r8vYfGAwtxpkSZ?07gvj%W-Mp7Ik7+68)IOZ54H7}Y^wd`M^zebd z{4xcuHFu2yw?-%^1=PCrDy+u^&rPFEd5ns|<+QDD4u+g^v5db}U4;x_N29sZRvXj* zZ^Qa) z=Yw*YP(A#8==Grqr6#;{hgG8o;26oVNVF{aaD1ziQtzKTsR_B_y_c)JY4hCq!wDId z%eI{aj!WzgjNO+EOw2djut{~RJaJ6DmbAH-mi0#BO~S;x3w@}$X;DuiUIjnW7!m6@ z({yUdUMkgl!N$x>ma)Rp1}oB#*0lc!@Sf@>65ix4srjmw!#+2obBpQTadf*J5pje> zp$F%juLA;v7lx9xs$b=NMV3%_mkk}|*U80|RNj3Cax`=s%>acK{*74NyVhdaM36b5 zsQlAbH6FiRgL%Q5>mYmWA$jX~AQ6239ja~bXoKh+Uh*C*EMx}C0t0TR^_4qv1wix8 zROYnz-296)T$*Xcmo!vramu)tO|*~rGvQF0s|b5NNo^jaYk#HgtK!=!W6(%!QUkiPj+3dc)tegV+}SY?Oe(EnH*(T9H@Ja1HCdxwTl zemL7}n4)`x2Bj4;Gs6~czP`PVQ;H3Y+#D}ez^`&>q8g{K@6%sV4A|^?eE7jN8Q_@Y z4|cW!lj5CyEtUr(OnKrXFtC{yD_3{;`!1^tlSux|glx>NSTnaL>47~R8vCIk^vF0g zZLHd6g6v~pRsCsmQQ+)lMDYZ>`HQ4We`>Q#qxw^V9izV_iQBebkTajTZEuaY0aDW_ z-Kc*jnM(kVIl6nx27a~NdMaEcC1GLcQNP>yoRAABI)Rq+?OVB{60_gX+1SOox%xTb zmU@%>^>8+kMVOm$1bL%$6kP|h_O03@$uDQxpahlQ9^W6TB=B|v)Ay=e+E>(666=~v zKV7=$jql$_&dgrNdYQOfm?~PmMhKXyU#Ph4hkQI0Orno-_qm6i6%d z>}S@UyCd${3{GWPPt>d5{SV%9@xXX_ctC{d3Mfc3>5jyq67ifV)@|{**%5((LaKlN zPWk@DQj1&96h93rEGz`-m5jHaJAc2A0+E_pzfte&YiwqBe0?R}5JZy(9mTUM24G-d z++JPmj{c%oVm59S39YuBCm=8=|J1S6;F3+eyD^&n?ZK?Dpy29o-Ua@6_g_TtXq#$ zJ?2x>i-nwN^3A4cRcxv4$eIE&cd+S7_d=fpLWl0cWrA75FuWye8fmSyBA0Y1UW=sS zFD2srPa~HnTw=M4JtJGp`a~$%%3&wL_vAu`2EKIrH+(RU;Vlb;!jrVs-RtZJNMmN$K%sUW4m4V-8KE&C0~}^t$eW{q*2Mf!;!v8X!1KF7f;Joj)V7vZG<{xBJgXs7IoCuFHka z=C+$@X1&7k1@`@WJ09nxZ?TLsv`>rviJiif^wWMVe9&5XtuK!0>)z3K*yq<gI`?4TeP3b_Qgd!}4N149~qEUw6(eKb%Fe9K;?Q zR|`I+DskQpUJiSW`lh0nvc!Ddq)FoGLwICgViZ1WZSQZIPx%U_m`y0PtgWHTCh;)* ze^fX->FT#nAvAAn)IVAskl3A@PhM_=G!YFowG>|0*YT`(mo6+o#m#^7o$sFFdWHYh zt2Gb-dji(!XB%NvRaH4Tv^?kLa}{%7)Y8|Nj)IMK7GbfsDcbl@HzDESU}Jwh+204% z6Z%$nAR!(=g?F;DWxkOLUhO%;4&W0x*asX|2+#SB5My{v2AmnXiU84zwEp2oXR)u8 z2Vs*Ws~xrG{gr#ogZtQ}icU6`SDD|ilU(u;0Zn%TjvGIHnxS|fl*GSXD*?`Z=fZsm zSDRu~deYe53sMZ&ykS15+B>CyzV^73kjquWF_Ec4q}Gr8ATk#7*Qg5KQt0>DI=>rC zS`V*D#Ci-izNP0)+Y45ILZDF^Zx!{N0S<2g8-uoW{P}}%mj`apey3fm+mJeR8F5Zv zer>1YkuIT8_^x2^Ahxr{$vD-6s2qwnzX_RkY?(vRGmX1;vJ0XYtE=^|`=*n?>XQtX zGu>1yBzwM+kfKSQrF`#sT7TMu-xl|Si8s2A`8u^KH2V7bp7^?Yda0?Yc|zZzJXiZ_ z+}zxrM!+uF(9rDZ(zSmC*S!StrCsiAqh zM$^uo0%Ct@fY3LwMbCl%H%k17VhJcLe}SWZ&W)Ov3P;!ZIH1`p>kW(1!GDDqoZ6u_ zSaG?dE%pH6I4b8fERIw^S^d~~8I9faHo=^dY{x#dMXM8>1*u$#57+^*hVKS6Itr1r zt<3aYRflR69X0S;8+Unl_|3jJFMNt=LT(@TzlgWKHx?YSh4hpZC%0S=4fk9|U^ZE3 ziPSo`o((4jt(X*S&Dw80FhnULMB;W?7&pu;?xjD0s+nx%1U9J4!?hh|=yiH#CKU;2 zu$wJ29%UOrc|%7hX{cYvuKeW7LN!wztICK{z?0WEM^S?e`Nos0lap2QMCoodX8i>0 zsO)&`=l@lFmc6ss^O6@9@7#V!TKq8V_vZ{*Ohg}R3hd&92^w`;@^UB<+88|Z)4b)I zJfEqxv<+0AnGX&%1ny9}{w8zpAl_vbO_!T4XKDIOZ{sxtqC3D$&n_gb#l_-ws#!l1 zQhvR>5$HfLWfPHe!&QZnT7@|3miL&`Yn2>A8)^97brPoxQzi|l$#fPnJim`t3OK47 znqi{DW2egXn;E(={VCT+-A8S9Px2Ms21fgM1JBMi(|^R4kxUe91NR_5S+2b_fX)e1 z{sf2u{|u%6dtb5DtsJ22g2kS@O**6t;rdYTHbEKukE!gr+@Y5bA?mkw8us8JL1rD8 z^`x;;oM|?{fIq)?uqw{9Rp*cxWMcJUn2sA}iuyAUvLT_>`HX}(esja7i3G`LzI#J0 z63S7F=jqh1k)u-q%-a6Vb_{Oc0!5zcK6jzF*qP#$DE}jX?j!1L?|E7~lF7oso(8Wz z-+3)D@8z*P03Ui$;F5f^nIz;>rbiWUdDU7qMMFB`?K4cUA)GlK%a0h*y#rWvC}yP> zXZHvOF?>6<>@p4iZp33BKuK)Bhr7Ff)Ux9=t7evT7AdOw1|_rkXr)p;qmXwuCK>r? zD+Qt0*9OIl1m_YboZxI+TtHxMaq$6Mg`mbYBJTlggR}2o2DsYV+9V_-_UOmsbo_+P z{$mR(y`@yGmcWVk<;xcb2fVZFtK;=`q?T_0%6Q0)d|Lk; zvGiQMTh-jGu6Z;R34wL^aaFZH3VK4}ZE=JoV7}3=)?c56A5-@}%`XJINH7F(4oLr3wplcju6``zr`37_S$>sO+PxsQ}ESQtjAi|rb z>ilWdzSF!dL~1ls)WzLBoZ)*-ja%U;V}5@U9{J0cDQRf{0k&UY5!{{bXFM22P~#cU zh)0n5e&@R*u!K`OlZZSaLUarM!pHCq$-NFz#g|x`A-VG+BS~K?Ebpdk(y&^q2$>vE zgDWC5kL+0;ob2rK7fBLze9Nzh-dGClmnlxJ66_*#F)OY%6toIX;hqCFwQ3PdiZk8i z=`Pfz<(Ze{Yt_BRa&nZl#KXfKv&yo-3DjIo&1mCC%OYBK94w8}LE`E7R7R9ZNDWgK zACh&QNfF!KO>FjY{kJLxnr)}1cy-d*)Iu?D@j+VFp7EQss?{6YE3Pq{((z#+V-|JM za33yp@m@wJ&nSD|@hFbR$U13kbr6B}!kgL|?bpHhW6JAEalEZNtVn^EsqpT|^+i8W ze!L+ikR`bC8?CgZ$!h#H`#X#KgZ+JH8m{V^8XAgvf0)o?D$ArXBjNRN^yC*%A3qe< zcY1zaXhg~2;IPu1g7?}vydudpA!Le9F4ZeKg%iyVtZ2eFi#`Y!|MphwhLcX|jC~-l zL_R2~5Oy3!GKdd}4l!ZTuus9&HU6p+Av*9r@E*^9JGD@Cd1JSF=4qx${$9QWg<_~C z*qy)Jzu|@LlCC8G@ql^-CJ7wjQs0IC2iXuUP!5hebdT}bGF}+sL?d1?0DnvKuXlZ< zqQVDtzo=ldynv2uipfJid*d;q}Jt+>~b^El?~(Z^l!++_Gu;!LN!RTGh5T3XtW;9y^0Ur;!d4T$6o_TGFI z$VyuP0<<#ijzS;?PO=@xZSGsG1qB5O2?;GNEud7B2M(H1POlEMLH(i}aU<#fZNB+d zgrh!l-LDP}312N_xJ{)Wb0TE7s98hTJIWo{H2JA;Y?6}dPM|cpVV)eo|GPzOmw?;z zrSg$MS7{R3aOeBFu`whv*Up!3X!)}+{*}C+4-iXK8k;f|Kv%6GE^VqgMd$Vu^hejj z>nRJ&Dcl!eF`p5%SZA}?BYTv|8a+Hz3aAgS3Eyj!y6>7X*>EY#f~G)r0|@{~QmX*I zi)Z55DaZJXelM#Wr=H!q;Igj}IBZVVpp|xeIW0e5s+y(2j8sYPkhS-?X<8gvXHrf9 z*S90y{cy{I`-}1%n_`lX!PmQ=^AM3|7i;m8Mb{r7ve_k@1jl!K@29aeK_tsRkSvz; z+3Qg)Sj_Iw^SQD#stLo?+RR;EG>w6fy^I_duXdrwdZ1+C`O&l zQl(}{9+0hjy+5$3h9*6V#9>Q0imHC4I%?#pS6HQYBXf0_KO5U9Ij*D3x@7t{lyh!% zZ)`Y!js9q`x_MlJbG>SW#$wBtNVQ!G6_59W_mX)I{|Dq|7MsI5K>~$8`{p;jKkZFDBRsg#F zHB5>;i?A6`jFB)7Tea%)$9^*y^XPOSfot%c{N;K7!e`zNoVIDJfnwgygZ0uk;!=}{ zE=4%|?vret=C1WG=y{0ad1jv-o~HV%Q|`&YdMmNo@4%8oqa8usu)5%DeZO{QN5+SN zb8>gHf<~S-{f0UHsZ1Eh|7Q!spkRwL8s-QJqq3!)eCh>Vb{uJRli_2&4ojru%b<5C z%s9dP9%V3TlSpO5#CO|^DjGz zUL#uX{ge=Wkh9mh3owfR;8Wiv!VavIvJ1baz|RL_C$*<8^^@U;uLU7Kwa32;e_Q*= zM_jxVq|@~YF>8xF0t2WahElxd3leWp-{ZTn>BBwP$nYXa6j``y4w|F$T_!X@&ht4? zPVA-j5%+hJyilG0nX9RxL61jvaUDJl#>$$!HT!aK6am`$_jl1k&Emq+!dCZ**Efsq zCk{F)l%c{Cz`b$)xPao=IEdDT8?8^G&T;+t``e>t|C_ayLZ@dHg1OiXJFAx%bWT2Z zseZ8tGBRpvY9b;cVq#)I*prfy;^VJzfNpzgSL){GX22g@0~)o;hRV?$(b&phPvK)_ zVPOFvjiu%8#>U3Z&NU#Y_FN^*EOkj zx|7CBuXs3|9O!kJ6G|NYHqSV2((P2B$`pZ3nlXEvj1yZ`eKQ=~lho(?MF)u>GoDHF z_ZC#sr%lX}Q`8ya$4&osHm^-#FT-xG?r6O5Mf%lU=?eqRU5levsBZ;4_4f&mZ?=>e z__lr$$EZA3pJ#GeJ$n=i*qSmUH}=HrV`ueX_5^N@!A||X9h8LqtX%;qZ2q$FQPPhj z7>#d>lCz)AJw?zDX{*O%BW`a94EQN3>EbcL zq6b-;j^ja$bjF|Q^bNIjCgIvcq&&+< z#YV+1X#5r2w~Fn_Ew0}`3-U&dNo0&j=-VsNIZawJXOX?8dF#t26E5A7w{D>vceo{8 zUyi5Rh-?&IxzeB(3~jSX++Xopwm)pU9^t&Vq)*9S1D&zbahvn`s#NR5noQai>Q%L> zOz}*bGD@0u+W{Bx<+b|bgeh>ZSEJgh|N1*Glh`(CL%5Fxsj2%qFEIeSh8`gkL-7=n zV090Q&B_cKDnWB8ezsx?mub)UirU)563KUr8B%;OLCH-5>yGW%Q@^@w8^_AFVssey zce-wrtLiT6!?E;G;GcHbC-x;@%)o*ZR*X6zN$N5QxMB@y*JV9 z_aS;CNM*&5{5sMWhH|xXc`}xxT%#9lJxjf4Ij5ptdxz{=rr_(uq>!YpA@(A3m;hP#y5`t`>G29_->!h>2zu_bv|dg)4IpKzmOQ>(zB z8z>e!8pi1%Me${G#r8RJlV$ayfi8Q!`qyJ)89a{FQ%r=jMxMm}UNBBf$+QWkcktA0 zx(aO7-%vdH%5!C&n@8x&AD}5bE)JiZoczU$7vNY*Nd&_ZV9n#=;sOJo047}Fz>N>) zr}gmjdG*oJ;UQQtLPULbz&Qj;TR}ILkC)fo!-KS$z>l;wyl>K*)I!)cS$zE-4U1OM z@WDO1z4!1cEJ|N18C;_vVHW4-e7ZS7T-Mk!q}7BiM7}K&r9YlB6?1pHC1S93y&&H} z=2NU%sgLKbR<0BJz1%QPaO5NRIh2@vuk6eBGBibzcI64Pn_jB6v^yWpOfdu*pUt}d ztC|F%`kE)cfi8DvDA)$9CUbhyd`v&BGCh;HoAT!T=yD+drScMmXVb4`_O62$MJ&`5GO>(3- z@7&YwI0kJi?&!w+cd8xF^W15Z>03@`aS26eQxynUg^RlIx)h)4d8SxD7u8Q{o zj)dXc-Kk%YqWhGqiy)GNI$5jlo(VNHJRBVj&CACp;O-plp7-Je;^FKZoR2RORX+~{ zL&zPd8wcPCVCGl!BK5zeU%yro?@jiN2KFh%1drZTn!el9We|_0U7`wI2;T&nHDIQ* z_jQ}z*cw>&7qYLU!;us~-yua7q`*Sc;HkW+b3`N9RShbE^r2()zYR8h%a0$XK-*b1 zl1V805(Q?SxWP?^`kLM%go5b3x=!o^0n`Ti=I%%o%H@j(ySN_vxog4j# za|8hn8XIC-wp1w~`}ST>KjZ}mE%L@~R(ke3V3*M)p_*Ni(BpKUs`bV3)yE#d1dEK@ z{wwv^b8xqH(ZLn8KTSn$V)GAD=bQPv=i~gPt;fO6X6y)gK@gPxu|}qzaC9erJLDC7 z!$)y=$Ck$}&zASG=jXO#gK3S4=W7of?9$B}DPP7kTK>1Wb0mGYX7e=r=hGEK_DUc4 z5Cd&c#AwKid*hWyLW_n{S73V^3%#g6m;+(9f02Q6VzcN0OWwOVEPq#e7TC+$noXDy z*4V@nrEBHyKeQ5-zbDd$gm85y7UP$iNjB_6GWV!_8!8PXLH=>Zm`3&nyDj(?8GL}) zm)%+N+y96+!fL3v_odZs@w-U~O5qVGsC9mTf!)E;a#NBo0(m0|c(}5#ww3~P^)F(d zr@%qrxbdrx;ZOvhjO#GNU82J|4rHr*>lqbjh9wE@yX4UL0X1eENP}{$`fP=80scAw z-11Y?)8Z?Y36;lBT_=FaDO0~Gp!?RVdn&5t%ap;VBcBi0B%ObaDx7l`uE?i~8GeDO zuB|0p;=~>{m3unB*3P!KEQtm7Su&TT8Z9O@5-t2=4xvU?T>b4G&D5y^z^S^zkc=Vi4Z0*@&oZvxC|WdN~_IYwBk+TJUl$i%*^cU zxFf-+f=$M(#L^1>B|oiy;Uw-U+gDgFd%17g+`c+Vlg3sjMj}grvbkXfISMomf76BI zGkikcF67MU-JtqL%eOXVsyKtRt085L4^fCz=?F%Aj2p@e8pX#cjb2m^jO_39u##$dM<8VPI4(1svASC8IvN_b|XU6M@gqF@mXLHYV;}V_=b^W zJGtV5=C4$H*3xvew4S>tdMt2gSpQ|PxQ5z(zMuUWR&kfE-`4=wyAip~Q7=}3Fq8X` zS8XNS-6UG~L!BA9P2XjyjSWLymWIjFjM|2!ca>T->ft33Lj`eU|0FJTC<=R`O*)8G zZE#w=|IeV~v?KNoTn!AE4%PoOU0;p7RZ_H`m(Dw}U9ySS*9(2v*WGnusI3rw>&K4& zbAqR{1bdATjOQX@ zYr3cqb;}zJjEIPcE?O2bF}S6xZ}WC6s*8VczzRh`U(0iuV<02ZP}c-z*XqmnJof0O zX&YyP;g05^FShEQEc1KRWs0`i?gCq5tGI8E%=L@8dv9@nFR$evj5(v9(WyB~gnj*o zk$|M}w_+>i5%P*bl~9%UDp3io4u6H|Csm59w_?iy>Q=ia-u+us1ENVaG0hDYNV29w ztz?I7UMAi4%PrdLom;(6x6q8S=*SA++_E}hf=nH1D%Z_>+}KcN&SLW~j4 zfKe6!MkSN*(r$je1>A15CE{h1MtFpv@nqcSVjM!-dQ<9OMlUBDq6eqC*S-rG&HP;= zuJ*u=QIGTZnQ`8-YMvTNv3%i-C2&R&)>~uxOI7pU*U!Gv;4DGs%#h*E;oD4#ng8bF zP)!kff>k`$vmc`Ha>URR8$~##hsAavW;&s0U`QY(m38E1)R=Q93hGeCv1&UwZru)) z)zW;*)t9NlCRo+I)p_g*V%QOt?YL?W8;q&ynDLalW{ibuJrEq+6_Hxk-uJ^@Wu?iR z^_7NCG*meAjLS;JueUSR)5CT*my=XjS94n)mN}7`2>^Cxk)qByQTl;voP5$A95@drA`!sLI?n zc8LgipVx+L0!cPg;DRNvDLAY@yoD2!klKSYGH~sA#b7NKfQoMbRD9nS1|1a)e}NGb z4ySQF{lmWQTVKQBi_3SbQ6zsggOi4B`=2~9#9@%crp5xT9 z86c2DwPYMjfrByVsb}y(cvl^u!tC_wKG!8?Y$+o0K8H6$5peWWILI2^u`mEW3&>#$ zF3s)?1*765b-dX+-DOOW7XOnYFNtK_k#7o$ir)c)g@=cSi3ym+`=O2X^|PZzetY)- zD=Vu%ONagf*dIg8=vYswSyhX8Mx|V2F&LI-tz$0OgMbTSrGm?DI5-|WcL2Ih(dg_` zgmV-NMC6WI#I@YzypmmN&^!LiZ|1-!5+d@9(jeK`UsD+(|8?{PxEPADeAyq7~F5M+H zMe(DLG;#Ddx#t|)p9Ywq6299cIPO0nY>7mbo>)kya_cJ}e%`@PPeIjjR8y1iBj_&; z#rJm?Zz`Mv;MQr0Q;cbR;UM3fis9CUKp532c5l2TBJ$`XrOWNB%I+IAi8wVHRIZCn z!z8k)`y!2RA3^L4qi(ZV%13kJ@9D%g*F;>|-QyU5_Z+1XdRiC))Q2`!RuZBUIc~eq zkX{g~R^Xj$4I}{xgPPve7r&>NboNL^eCGar>{ehU69t1qD$(G^?@#9PiK)D{ucuhS z0Lal*$~2pA#}Db{$aY_2|6t_kRr!(D`I%U=8Tp@brv+z5%t`?-?PDcGbG9phJlk|N zUn^*vu*@+wbt;_>)t$wfva=5VDyoJ!=9;FxsG4~~GKCzO(4GK$;AqdilP&J`&|PE6 zdgffvp(2Mf$kEirmj@};S*Me%ysp<4d0bdGR@73;C|D%+pn>~5Wlt>UGynS9VITw= zaG&c|nrbH}nF=@2M*yqNU=sU-cC^s*p5w~?t1npe`g+-c&Glvzx$iM}HF@1VZU*Qg zlSr3x%fLcOKpu?j(4V>R<0&7xS@;+(Yo5_Fd19XR|C0IIW=i#5_)n|O&WQ$y`iAw< zoF1ma=y>E=DR^6qY8IxMHG)iv^77E5+XH-XN;OKQ03o>snf{|Jo$rD^*0ag};qL#F z@n~lE`Z_xC%$iuZh7HbW{$Y(N!X6v{z8RptoSB(XMPG}1R78mRIqFs-;199b{m6S# zQ-xt^mP!z@47}Iz;I&4h;erw2%RXup|CPHVxfE}4o>>{dfOIMHCl^`e4sQKPV(H7H!^fjz$GeQFdE!l|Llbs6Of-MFNFom260=e9EdYeK(E1KF zAlGQx-4uIjlg;P!v`!4fKxo!jY?Ga~$8y~rI`vi=PZE~gKp=v& zCiwO<_2f0R0W?aXR!03=l_nJ~@l!6j$b$SMXibyOTJO+zlm^eS{){_;&O=X10G{7H z&3Cr6vz<&6AB0NXp|w^i?r{06_Hd3;s|=~v(t>YcsLUB4%B9nAQo%El0Qjycz;{XG zh}~K>v5|%;j86a67{2U-0qYyYeo>l+Ezjt1n~1x=>TA>iZpZkwlAdtpIQVupoL9=f zw8)InQ_OnY#zvH?#!(+PqdrIXfMU$jvSww3_WwU~ZOlhS1X!xN&`^NRSnI`Fw$M7O zab#v~cE>AggEyr>^9dScH>3iA5+6wHg_$H@#-+g9lR4{eRHq9y{d|3Ivj{(tSK6hV1;KWyoXe4KS$9R z)hc9PQ>am} zEFxl)Z1MT?@$vC_z(2pA0r5s11iQBOm3PC)(-ig^Ku5Tby#Jw3;Hl?8>$k{Uz>pnm(1@60nyG@HocN)Fa;)bVWmFDfZ9y9T5 zWqk@4^P~Q9SmAnT>*nSb!F{i)r;x-r-{92*(OOY0eiK8(!I36eS&!6Hg=sq_7?G)8 zMJ+$JY-gFR)RzLsAhu6z1XY_tVZ|BEq>&}Cm!gb?_~I)YvUOS+)|#bMe{Zx*dO3LV z&Hm>&qyVHI5H0HgMsT`FJC;I_>&wI&`vMr)45cL}J8}k*a2U1MNeHA@0=XV|Q#f?W zv%IhNLHvl8y1M#XSafuBHigtysbLe9sQ2aV+2+A)8Q!yh28;PB)B>oh&frG*#h~Im z_|T4~udC~{OE9qQS01zD@bMd5M$fY6unxiUAz6u|5ucGcPn>^#HN2*f$eQ)zirG4w z;(;kK#XS{^<4w2gU3xtKmlRHNwkdH`%W~Zq4c6z)Sb6K5bb}N6gn#R8(n}vqya$yU z^vs6@JRw^r4l(_jCu$VwS@9Dz6?l)nqZI)d>Bdj(M&L(2Lu5iua=Wb{V=MT2|F4lW z0hy>Trp`Jns;+C}1|>+BG}7ITG$;+yjdZt! z5+hyGNFyKuA_CGSjCAK9NJ+;K(hW1;=6Rp*``+vFFTAcZGw1BH_S$RR>vx;ff7=U+ z2U7&dVmcT!@dWU~^eBFxzZ}!JS?DS9`~*tt_s(evFvAaqlvGvMKFZz`-s+pVjlrd3 z1p01OWT;Ag2Y((`81q35*7Ni!D){8L^5(3p1vvA4jXy-%`rO54-<}tJ1=;hmPN7!a z1i-dyRQ7W3jywyNXTqUm45WU<8nyRu)QLLm?It1~OKX$ohRzsSM@U*)`V|a~FoBL@ z!k?7t*ifw98*w2g{^sab4-Jd;?i;YlHv*(Lhag1eJ$=F;4g?LR~Xmeq-#BX28g|Kk4sC0$xO+ zb!+PJl<9vpDp0-DVpJxhZX|TMX?h)3hHo$S;{Ze--RRN z+mQRx;Qvq*`+{^HeCw7QH>(O>_3$STn<~WTGHzg*r z!06Mx7&23Bv#_wxgqI1gEG+B{cb9JMD<71y8=<^YCJ5V)<%4?pL9m>hT%lYfPESvd zi2&K#w{J}XaK8L3R?l^O^-A-T{G*FsBO~z%y`DE09*t~VOp&dv5|cB9FA~y_T#6_Y z&%8Ds>-@RN4AVM{3u>FGt|d|P)A^du53H`Gs~EUjh*{G=SzSG(gBqON_KyvffPVQ~ zEQyYymG`E^MTALPO}!ODnSuioY*sx#tpp)nu%|dm`Bl6&0|PIXmY9_Y4$prG2lsHbgn7w^_3Bkb_@xn7xOkyaC?+O~j!m~H(Iqg8a^yWcq2 zv|H?1H2y5!9jGA$oRA^PBlEfEoDcGTbTgW}+=iS=ojA^6zYTog<29*=opriD#^2HR zPz};@FF_m!B>D3Kfs9#*sWyU0T2LTRCgFbb@G2#9{|1d&EKm50QNd9Ra--A6eLB;8 z<|2wd=%_(NCBNk7C88r$7qQHo7(AHvNGE~lt_a5f#9zo!J)n?#=a093!ut6!%zPK` zOUpTVXT@}T+@$9+-L-UqQ`a|(lt~@kJwuqeu0oMljSuK{0*Fez*kJ}?fRCsfZS9?M zxG(H};pYl~lQ0sv-FKA&tag2kjD%t&u_z3w7z20P0S1C~S-UD$L9!H!?wuL{7E3Yq zR2xR)7_*O?_v@=xYuIy-FOsQ3!!+{6NVf{9_LGKVNZ@d_YQNU$*Xc*R7c5FMGqUzH zw4QN4zW+_c6i=sXUwN^)u@^%M;}Lt^yOFBy*#7MB_wrDRqE!NItM51XBDK*w%ei}s zn=`2NEMFmc?(YXuzSLB z$W#^Z`bC`YFVaW_-3)wSfBEu8ncl<0186#={Lg?zJToa>XJ6me?bcDxt3BDmZUltF98oK0=f@77%knZmrwVUN55Jm}3t4bL_gCBw zxr-Dt5${A;%$C*?cKE-K2%f1Zi4yttaRgCjgKc9Pv0dl%dr+ibD^7^n{{QAn)=$X1z)voa?bir3;o*J zTv?zs%2+P>O8iyen<4jX2cdAh4~FbA3C!X^#*)VV%?-YG6qwGH{lHs1Ds?~%cx|bz zh53|8aAfulF3;`L$QPLb)bm9&L@B0Tb)QE&3Q}d*aXJ*#+j9gVwx^Qz3)t|9%8cf# zoot~AQr>{}u7#zlSF-S)xPbl>Zoj4C!#vMN;0&lpLUBm|A)vPCG1}M`Sbk|3^6@9v zT-Hk|;`6c#Mj}BNO(KT;$~%$e688e*?@NaFSR)DA9uu_T5?=Nyp+Gn4n4w$g=YQ19 z?27AWQTUsfScQ!q@>!hC{^CQ{b1G$2p>xV5v&h@QI*eKQvyhPR&KOBUXP;bJ4Cv|G z$7^;*^HNeFyV$rWf#)`|9t6Ht>8)zk)Gv57KFQ>*0&%WN(aM-S2k8Ji`L~xV=pneY z;f1u981PQisnTGRs9pWU8$%PiYB>|dELb@);gIT4|Asz^S!P^}&3(7>qMwl)_o|h# zWI;7683Y@}_4$*{r94U2g95Tok6|!5ut-)4Dc0W2__;4mtkCsFP%pJs;%{`KYT)VmShUU)H((V23A#rt zChYJ95l)UuwC%4UUj+q=N9>5LC)wob}}V z35#Tj-d>Vqf*ADd9#L4q0{R`53LdI;0Ei%+fLf`-9YuMt#tBMs_vQr<+FVaz(0fl| zNF-WxTknxzapOd-tc~3oHr+RaYldFHd+$1S6ZILdU?LIeooh$`muem$61YxK|AhLJso@iBAuhaYCGvJKa z79Hhv*o#+o`tNO52=tT)v+5gJ0s8mLl8wX$1<%15PXF}2t>+$8vPId510JHc@=H*I zf@8UXP>$Acn$G3^k;S+9Zu`E zZW%Uos$5S6vWQ)3<(~ZEe1oiv_A^jp0Z9%QjT9-S!fn>+pM~$i9o?A-V6+ah@@Wmz zw4M_ULl`oI3Fm2FHlplK#-Z)iY7exnkv+iDGe(myspZ+^&4HDCPbWKBO~<|n0WP5t|A2&I%Yry^f_)H7)oRlgfX{Mv}D zG}qn1_fSD9FoAeK^lz*}Olup!j^DSh4v0&Q`^$0`qBw);N-3Z$3wk8}l7_fclVqouHVPM5Hr;1Hd>`tFYO9IbA=KMI{%1V-uoixedfKHQ@ z-U7%rs{)sf2br>qE4P3Z;_B?FxS&&w{mJ_s3XQNrtbJUMCA)8z=QU1er>=9vbhR$O zJ>kD+gi2nce8bv*+x|tZaAT(!__T+~Syu)AEX++e61HcnIaR0+iX?U08>>A95J=1P z10eaV{kAv>-_@Ww&l6Xe4Wf_rfDFY$qdd!+< zWLNCE-joeiTk(I?8dE>z_(j_CBR_%T&qrKS-w{*c+PR-;r`ZCP(|#l0m3q_mZw|Mb zx~NI7dLLNs_(FOwmnG2ZzAk?A*h7Ow-juZNcv7~JEYTdD1fJ_r72}Xo*qu=+r~Mv5 zE_k!Ea4_rdrim@72x%T*^4`C>v zOt|4tf%R`g0uzE39fK$d91@1nI+!yLT`N19;Haf)9x5k5i!N9o-~5Z-;mM6DTwQ+* zV>&Fek}x#6x|$vmQyI(7z^c38i* zj><#D?@vZ`OYzE>jnD}B%n^6^GcVb&(kpc~%1%jK3QOLwxlxLML3<(j#X3h_=VCQ0 z#$S(#N8FHsbeP8|A-O>p-`gJv=Cs99v}sYD1Rm#D%u*%|!4&ss*X4!U`s0IS&)t<& zwU(iB^{`?wHTIVkwL_WM8{Lv9I|mI6hi|-F8N0G7O4i2Mom}#C&6*tVTwE27@07a~PqM z6!H;x7nv3qT{ysRMv8nhtB*~V_GY}kJzcM9v&~D=pxUn)j z^lhR|V!%k=yTN?RLf&8#;%S$FO2|-!8)p7gQxYdt9%B=;xQkk);+wlgQzCnJfFhH^ zhwB_~nGMX!UH$dJju&gAZqZjQ(#4RM47|MKAQ$fIV-XR_z@itl(&zTC&@fB*~&2=`; zQ*szV(JRfxRR{VkAG6J7#}`~y393)v(5~n*^6oXBx~J-ghGtnO-nCzHWJa|7DQ_2# zQ4qDN-?0curX!L1vlJg!EmpDP5;R9|ozU?(bhnEvK*c z>AW5H9DD{%-u!x`>+?!xeX7y9v3lhS)aa4oBd(elNOXFHBnrDn2UbQU{?xf zKK~xXuHsTqRweh&(s9rXV)YSYA~&PzYNlDnQQL&_xmY0e?M;bBGujy@D$IO@U#*fv z$RjXk)nByR*Y`cmG2c^>h1VCEmD;5G{YGCk3XSJ_PCYs%n?-vxf<8R?FvSyL{#;7q zCuQ>A`4cUF@`Vwu3SVVMuRlyopQ#=wlBl4I^ltLhS)z?o?Ojebi*<2d9}udiGpn<} zooUiLCzYS{oOnjjY!OM_BX}LPcmpr#_{79o3>kpZ4z6g<@)RdnIXYgq9Z>upc%_ES z&|!ZzI5|MpeeywNZ_T%R(g1vAgV7a@sn`l@N?4v+jLKe2!^#-B)77Rx-PdAX6RrF| zIET15L^Lu!799k5+G$43->`(Y9h;pJUr6%N$lo*tJZkuDZ79p0do4XsqesC%OGB#6 z;P5eFg=K0*=Kw?TGAX>_K>LYsr6H|yc>#^>wnV(C?QG_YxI7UN$a{ zd8t;P#S7ei!@JnAS?2VkGRY|GY^VP#caU1Ov5M&_SfNv@RAQ}s<@`2G6uwUOUlztR zBX2W5AowO}Yz6SulQd+^jEaZ+R_|j!_9j*z(mcgJeNL7TrcFeU^av-8kNW;N5%??i zRc4}R8DGqSe^u2y=feDQnOT=}Mi;$p7$nW8SXwA~ z3wsZphc5eO213Bo8*b;Led^+vf9@lyhRxMu!X;=|_O2`4K}*F4E69rCRm$J4$BcPd z(WTHbZ|P(c$Ajg~!B@iB_oA2}B=d}>$L~6e+pXSr3`nUt)k!HOsh?n^`-L~1R>}5v zG(?A*x|e>zuXrRux$^7dKyJ2K^<-^f$q$_z9GZ_DnWvyYtL$jHx2i*|uAgY)7`w=Z zgNb^Rs_LPlRvzk-vjRT~$)Qi5jYyEX)X_Rn#Y=!BU1%sfx;T60WT~GZUUyQ^SjiXW z^&*cSd+lRPUyw|dVqG6h#Btd@Ic61t=}WKCAIo&*#VY39EZx2~B3CdBx!U?}RrB+A z!_Do7r%9L#ogOrPJFji;v*K2tkceEWSZeojONDQ_RkJ7{3bnfaJoj#Ski9WVpNt{V zQ6+kN{Vjm8`t%qE@v_*gVu6h+8zjD9tv*t!KOp#lnZ{syj8is|q$odn%O%%Tc!{`7 zN+YY84V!V%hDl6DL2JUpMYip#Q>4~tx>XehJ}f=8U1dLtUUu7YL(N2>$lwi>*k>YS zs}2ZTT!^MO5EAA!w>Fk9PDRhnmq<9G^^d+mTBYx+Pp;25FtZ-}te-NJPQdiF)mq#H z?1ZxU53~!Y9?kxw9w^{bl`)$q1t&UD!A4FX9Sp0Hc2dh|*=J(J{B&WQmzGDTq;cKI z_x5FrYAD3uQn|dfXiCyh@tz@Fd6(WyPI4v#SrOAqPsf;XPZmYBr>uA=Z1O2emV0}y zaNz|JA_@EOoNrWu^M*j7uw;|k`2HnjA?e_j9rMC(2iKUM<_AI+bl9Q4DU0h*az9m7 zybH=#R9OBt^qHast}Rr$a74VZ)gi56i5oO*t5iX_n8N30EGs;~#Q`HtycGF%LA#Q` z#Kn5?buLPfsqsncjogP+c8AR6k6P$dS(ggXrF~~3h6hOprYw?d>l6f^pJDthsDUyV zEgQ0V9Ew8QKczBVCR`HEOLNv(rY-s|YwF6-Cr8PxpjHG2uy=g=qGG>ye6e+^q|KcD zF_5JWTSvs`cZj&{I;Z<1yxXYYUMz?T7HPE33gNov=CEI%P<~zUV;#oNlrh;2wVlnM z&U%}ItM)JbjT#jR!ah|d^-rVEZi9iEs@(l!AbmcsMt{ z5{g?XvXr6Sr7Qd<6@Fckg?Kv-mVI#(qw3qtudJ>e?LH%3Y7}nj(-!pWGESi?0|(<=r>VEVz9!3I_HCSQHX+v@AK~Zv-h#cH*UYvoiY~d{6e0>w z@iUjk)UWF??QED7T|(9LN^{>%xn`Tr8NxwS!gEP+$=2SDc2DQ}v2}gXnKK>iyG}|d z{D{QUmx7vh&sp1ydLphGiy4-u$jHRHw6Rl_&7tCym2{d1Zb;~L{Y>@HUIXDns~V#m znPd)vAGn^Iaedv6DlH z)MXJ39r&BhY)C|dcil6-b3u5n;Jc{ygLmITN;BI-#;DtRSh+YGdvRD$%EXlyD zp-lee%@|_#kkHV}PVnE*r`A`5C^9U0be31Kp@e;h`fZ@g{gJE^D-XR|==M}XucDxw z^q@vjSAtLHqE6DGb_u$>an> zf=n{&t}4T8Gt}m??8Y0*pv2&QQi9KS*JV5rO$ImP2kz7#`wDd|UUrq8p$rKhL3#qn z!Fl?>A1eWVGZ<;{+8A0czVsT(;I&%r2sbk`3t+gr`Pl#7{Fl79Q2CYOV@!2Q*1VM| z&X)v+*@%*l-cMoXa3hzFttRfxyU&*Sa$(N2Zl3n1!?)muQ(a~gX4#0uMB-}&p`63U zuTdZnQJA?n=K0aD=xQu_SRO4#2yHbpFYn>Oa_153Miexr-k$9mN)pK6b?t)_^W8QQ zsfv^`1nB=f4@Q{z<=uz*vt%G1bR+p#kzk)|Q?t5aj$KI*ZTM7l^MTz@em;Od3)-y( zui95SP-Hz5$a+JtF3o?J9%0alGY~}A)Euk&I7)4v4!%nSBX0qB+$-h(y3wGm%+9UUD) zuJa-`14JV$qlw^Rd%vsbSy`i{B55&6!6EUP+<%td-Bn035zwZ)-qoFeobEqQ?kK{5 zBj{+YKb2LRFMEUA>goipr>A%0fby~t{Ju4^|EwKcU|>~!R~7~XfOjo}|NDG&@G$c7 z7Po(um8fO+7++^T^q8tNr=e0yV?V^Ah2{0}|NFj4b)Ep?C@6hOKcJ8bm!plAqopL6 zL+wLfVU2HRIg>A?XL<5qef8$->Q)VjO)>;{pD94mKNV85l&U85B~CBq1%w{(0?n;S z@7c(#;C;p$dDOA|rEiKxvQr~Ekk&l@w>BS#48YfXG6Ua~n<(i&@!*X#2gzbvpm@!# zKaAgHRsfJJ5!N9r@}M|#^!PuEa}%^B0PjnPx$e4dA7Ku~2bN#mKK3sL7^<*D>YZPV zPUR+WFEWBNJzj7fcMgH$!Qn=63VZM9&UD)g(0{hY&HmhS?iiMIO|yQD+$csqXSW@9 zDRwn3UVLWT8on|uen)bzUu&wjR5|n{xUr_HAO7X67}u;^j{M%IE|6I|_xs%So#juVDT+ zML>MR!DHTwe4cH+J0?;=)W1Q269feyiU5qakCK66ZrgU~T_#PQHty~`c_=bOB;dKc ziTKYk^%y+^L1zpB@^iIqp|FyZI5p-X^{3TxpxMZ>I;yrK6e2gcAagVy&XM@AJom{2WjwLq;>3i0*FJZv1 zSfP#Vw$XN-EN6-Nua#;XCc6xWl_0P8p{1Um&1Yz2FRVBK->Df4{r}$$L2FL=r#TOz zwS4gn+2FNeu53K#+xULq zo;(j{HBEvGMPK?7^1pft`;Jwt*@o68kT?g*NoCk1s{5I$(R@QWu>)jQECGOWuu9>E zXtja~xx?HshItKqFeG>WwxTT$?+C{8U2=HGnF#sd+=zWvfvyhvP#adej2y5M52S`B z>JpMf?Rl6<*^=bR4~oYA2jp-HUmGw%Q2`j-lk;oeoQiR8G68Y&lu_Fr4jCcNF-{|5><32rB!Qj6qS#V_TjjH z{_vhf0BE;kSJ0yL4~!5PlrY6EV(f! zhesOR9A^T34mH$?jtWGj9e|68*vCfMc*cqiDH^p6FtFA9Nyv|=cAPve$W>h;;G=)| zI7@$OX%|Q1h_m-kKvO!=%r3Yfqg!oq=*4Z6p0S%jeYaF|qj{f{unp^h4gL}{ zwGD0^Wz?eJCV|;AFlus}EO-lEFHnCDg<9HA-`A|x>fC#1hv2{8A*^Z~KliFJjGIE7 zB1odf77CPPME6-VNqT9%mX+$48FcISVpj{e;x2*4=i1?VMM^+W55XoLgEuCs%$t`i zuOHOQ+xgT=pX>ma1*t(A{=iK>i1#bDX)8xTySJ(~ws{)Ezfn1dmcs>mfB+wCATnz- zNs6y84wjWtm=4pBLz&ves!e`}bdU_%AgW1c`lH7u?3Wr%VRwNdO7)Uo6_WUyYbmed zc3CFyHQa|)T*A+>QwoA#PjgqE#XTYsT(9rE>LN z@%V9hj+KSpQnz)_?sm?pZ+N)m0);BXgzHJY%jC+bE*1c^J`_6vMSfQ>1a-zePvm+5 zKh-@3922-~06T1P|9R#t{wo(LE$(L4!pMZ7> z+t(-X{2%(TcPW_87#x z!KggOW)K3oP~FD6SuWlKVV!2T@xXfjlqWP{-UykP5B=*DYlXY-A_Z|ehU@DOrF{F* zB>YfXQ+0`-DDirCoHSjPfCDqAyWAYuI0j{VJ@Uf8XV|PxQEcgAlA^2|2Nxx#C#v1Y zz4TfMD!yi*WFE9L8;&MYg_LP7-v~z!{$b<_NV(vYgf+x|IR}Zb4Bin)Du@if%sgKs z+rs-#DB)7{G}Xo|L*`UV)0H z_Pp34+a<@!sjm7KHrx7Os9$)B{FR=yPR3LA1Adf>al7KYj{EmsU5Ihu<6+DYROju= z<5?SFq+&mk*19l@l~6`>6OGx5pOq6~naD)N(z^Y1^R+-Yj(&0C!E)u9%k{8%I#Upm z7y^f^IT0MQB#*~gQoooDx4AOIKc&7qT*y*`l$j1oa4zcE!v&gu1PkDNL#GY!OXAl- z+B1S>v(bWCdI?a4h=YR5JI{%+Del=dmBA}DFfvXxvZVx)q^UM~f1HRH4S(8pK#CR} zxKv{7!zd7w&Z)bx$|-)SbRxys3Wol?0Awo+uheP`j8`qsR|Q610uPGjFeTHDLRHEA zjKW93z^9^JWW-{=1rer`)O+QuXT4bO1iI=w zi>vaAN@uUt3%^z>bn{=0#0CQbX}s@ScbJzn6rUoCk+#ORCnOhz2z!X+ z9O^qAGNLcmG7X4)m0JoNe(~d`Gwlv*KvD7rzxj)J-g1L#rv-iS`XZRA()YjdUb(O8 zl}%q`lvip(N_uD>KmjFMsqLZc1d+%!JjZPK2Fv9J zMX0T_d38de*}uZ`q3t(#g42}-CC_%u)HqgFB*~3J;D1}M;PDHfNt}WfA0bcM*=y`4EBb2@@-V1eyRP`` zFZ*BL-O+DeWB0Nub=)JaxEE?QB3Aqp!iz?IC6*`n( zG&J^WXhr5P>N$IUrQOq@e^cP*Ot6RgC?k3=KOmCzy~?L z0*PZi{u{JrssGPw*Y4DTh;P-9`!#krHCE3no2w>kQPO_f#P3#?fGZXU> z3P8M`YqLHih;zIpK00~W5YaeC%r64ev7!kr@qppo0rnHkV);@>Vzz1E4Q}6X-@|s% zQVlAIEQ`*{ngxnrJm!H5ewIJ;{2*Sh9}(~9l*7yRn7rdC=bI{l>Jngs!m zf0!5Vw3Zc(^>j8^A-gGD`-nwle{C~3gdu6Egol}cDH`YfuN2|iH+3yd)u*R6GPKq+yM1Aq2%&)5T{Vc4s$DD*# zC`U~vHqM{46|>QX1!Ei<%>*Lw{+b3OuaH=gV2&)~M%DMtfc|nef+RzQ;&sn%mkssI z(>{eA)eIv}9u0Mgh`iYJo^d8le#u_h3MYvt`uDSZ$&T5q>#KDSH_|y0yv~9*Zr%G? z`}*;qmYk}X%9>RKs->8Iwep6xLwZ3wOV1a0P#z90!Ceqaw`q43kADgi5OBbb;rJ(m ze64ixe;MQ*Mei6@4H>x0>c8=m)qBK#&sXSC%&7mb3V<(@JXpZq0mADvZtans@mQ-t z_cRgL<-w~Bg6nr~=ca(Yty%3Cot{42_+dcCvgMr}>HD;VZ1Lhzo~Xt8mxDksnYS;d z#}&z*r~^j(l*4rZi0{z@V1j(J*T!#mbw>wUsb)#?4* z9p{lHC9Ls=uw_Mb%<>+2?n8G=tgmnUHgK^)>wG z6t_8d%bI4m>y;did1ZE-LyJfqeH0zfIO#Xvf!Y2>#*SO{26Crd~ zzm~p~t@G-~)^HC!p9y$%vhv;d3u#LS{PKnzw`Z|>JCjB{nS4gOSc%hSP8A3h4Zdj;y$V^5 zD@AmYf2^QlDn~@7g%HTdsy|SN_vE80u~;Ot==M7>Ja{A$tBm$miB`=@j;rulDx}fMUfwcrj<4{ z5|wiUprr$<$kdvQT>i3ZEJQ$b-@;oyN^rLMr}~7H$-Vx$`gU;W*RA+T7_LuAo+4Gq z5~u@84IOB=^l&~sm>g&YLnJfNbS?KvjdS+MBt#}FJjzgFX-2s-Q`ufto4~96H_D|N z&VFY8y0#W;+4u<(u+?FSr>K8Upw^%4uW+*&_-{i``T1^pKMUWg1T|(lUU~7~9yP4tyN!t)p;-Mn;AOXwofr%GOLddSHj)GW4FH$%lQYE zTj&)dmx!OVjR?fm(pC$?-f%qM5=xq(gCqaIti`u#I`%8-Y#hh-y0Pb$~09Y^vR8u?$En1swXKK7j zFIp%^mr2@8P%`0=x2KZu*e87liTVYa(#7FF0j!A0z|T|sd;q-B;*iSTQD&rsQDH^| z05}rmC3mZQ0n=%vrI|GT_o6$`W#JURONAK#)J?2WMe0nY%7iE%bKxY?xk(EhR4H|X z4Xu9KDP-3Fwh%(=aUKNh;Q)-_x!gnDCw+N|lOYrr&8meJ&H*YzdqwOkQRHj7QIBUD z9k^A=NH428YPRcbCSzCsOg832W(PH!g$#MTPS|+n?D)j(c;=Y-Hr@Epq^gYV6Ms@J z3_Is_>}F+tGAvErk>G2wv->Q{@+D%z-j#gsgTu#9Ydh6Mr3Xg&)ikKOA5|T%NsG6C z%AV?QvN2VL#tLZ0iV|y-5k#i-l`&Kn&m=a;e-!se5R;@C&hBfury1`=h=ERwt1^GJWoIf8qD^X-}K0@R>KX z3VJsr%%ayiHs=N#%~{nJ$MJRawV@5#P@FWQ2*&;`O{ zEb*Ed@y6Y9t1~6v0#^eEOa=?AjKh->)REUuUfZUg&5Y05_2!Sn{gM<`-@NfN9ScXk z=2rFd^q?zK(%=ea+A;n33G(JEf_SX9M88<7RqUa)yGwCzkgrVC)(MK`r}0f~#lv%)sRm zueRrC*=X>EQ#rMqoKx;ED^4euv9}bt*g|3yF0W;>oxO$UBxfv3&}SV>8ivgv;$>84 z8onaW7T~YG501MFmr1BU_cz@068f|6?0Ij^(sQi)WQ;#?X4%g6#m7tQ!RHI3v01=$p>J+eKTjDtEcso}0dPfn3(z5;wIs?d&d5ic4+=98*d0 z^ymwOf)HR`ofpq zQA#n9roAil5TQ+vdgytyg0|^bCHML$M(NjRM(wH(ZFqrrxQFEdUVTX*IYSu#d%qlVOh zgiU{J8XC#8!QsxfamQ|cenYzU7z}sP0+e$3aLJO#@Gxv2aM`}i2+x=`y1%{@F-iOk zDlFr+iwtK!0;41Uk-LY;?U6Uc@L&I}ylyt?X44(ezbZJ_+a?cpWnwl7ms0I;eR2P|4;axJ-^MKpo)aJ* zQT#sDT|*AdZvzj7M1IsM$@vOm;JU3TTj&RhkYJX$B&`@s4RpmURGYAQKfZDwBzaJ# z`-K1;*)8dT{vy5|AXohB;F$P5Cu9Jn$!vf$?Sq}qt3rUU)dfLhK7$j@<}sRPyuf7a z2X@`5vsAA0G-(+)>BtFp_x1kKi>Jo|omDC(rBW2IMRKpx_x!5a1&w0RX0(dur~+H> zLoFx_VW8(hIat9uiL+?G0wv<($wH7fLIfMeAi}8`K(8>9bm$bHrSX4S%B^gM(iHe%|%=0&y!h>EoQ`sWp1=%cWGKH~L zwRNXH>uf2}a9_C3nzV!Z%L^_&ze7w&){lvWUpiGtk#HoR^3%~iJC*Qfd2}32n5dN9 z2}4z#o|s^94xw+l2XO5?73+T4ESDKKQS|;-f80cW+^-^>>HeN=gCequhs#k^QudMb zKA53CH;twP`MKb%~_&y()>TH1XVuO0=`~3IFk_f4l$o1bzP5fiL zN@SUx7EM)RyL~w$m&l8xCamhDrvA6-#oy_@=9lILZc~$*O7uOfM-pi=LtRHGJ1M;4 zTu1mjl0<{tV?w>oCvZo~tC!F=sjEW05*ph@w}h9Ma_Y{|DDz+o z_OZaX$vN-)s+UIn%0-T(xMbwr2Y`rX_w%1%w!4&bc%Kwplp;_3Xx?&W0~=PNy3UEr z^|%D8D75b8M|G58$Fhr zlJJdI#A$P=`bC-I{!A?`(e3<1_qAwvvXK7X7D2lBx8MOW*q~ zB`lwBkj__?&i+=0u})56f5gNWcT-%(luAY}fsa(SOD6u#a>Da{&)G*g**`W|D~uo1 zKKVJ9JOAv;r!&I_*PSb*xD8d<=56Hn&+-Fn;CT1PjtKhk63WCHyrY$vA9N%lVL1$ZCBJLs*y!*6$ooMK8%Zr`W;IMT$&%%GJQ9l1LuV8C=gsdV-Ca*cwRVs(T61np67a%qWJj}YZHFsW5(kvq;!9RJBwU(aLT+=&|@ZHWvVb0 z?(nC10cH1k*VZCdMEVmv*I#0;+GQ#V{Vt{rw`U1IS?A6`%IWwHlh@jB%#;0C#U09! zbomn>7p!y`ARa**gnu+FBpF5PiFTs-|A&5j6$V0YZoat^t4R4Ow=`TCH|z7=qZj($ zssh&VNl+F$Am&UggD2=f9dJI>S=WdB`m)#fx+p}S#ryHpBBW3!8bCu07oLNbdrQsf z5WxKisT;p+am2>ho%j^^98+d?X1O@x|i_0e;u zBjEYu7GN;DG7GGYyuRp)8vn6Vh;=fO`1|LNJ@QufyTNe>zH*a|2YG@?RiJJ7IluovubTy@zrx@Q|#L^sP^ zt9yhWv3>6+VUI3510Jq(nP0!G*xoay%78O_I7(@Lr3+HHjaSt+aX?$RIknwNWXnM8 zJ^$>y<`g##UEy_o@%Sfk8cXj@4d#mn2bF^Vp6KLZnu{!s3U!(@f% z=&0IZ!SMn)_9xJAo07y~_x?KX&;k8tZtu8fwSMfBSweo4M2x}nb*zTrZdWx<7mv-* zAe4XAuxA|T*J$c7oV_f2mVFp9E~mFv8}Wr4XKgg! zf8j?K=PyaO{TgV3k8aIunO{2Jl$GIeY0Iue&ET&cc1IkSs~UlL3XQoviFgJ zWB@8@-r>55rLjxAy6G{}5+Yv@;M&-ClV+-FR14gI9P`VwXi%M8WESzBx&g0g@@d~* zj3M+);^N6;ZLl{tY1s&=n^U{}WmV<91!PiFZgSQP1T6BsKF_U_&ex5yRVMF8p#G>( zXsc*|Oy$4bnf`(m-Dv{`r215mw^+jc(9%TX=-q(8zy7=Ar7gabDU`}JDpM4fe+;I# zXLtXekM8=BoCqc(fjqbU1ih+wt;2ZezU&z2RY-Tgl!fBj` zsuh)aQZAn(9GgVs9uJbOB9`y9p!z1aE;TbBF08B2m}>0Ff^)3bP48YuWyW`!-bc2% zoqg=JysRRD{Zt!yzx+<167P#2)r@42HGRzVMA3eiSm2~ZY7rTm>GOa)LY!2NW4!3r zm;NJSpJ`sJp@59?JJUs1=?`T*A+5vQjtE4J9pilH+oz7thgs1+rPaH3EojX z82+F|%!B7SZYw??{z=t_C^dFZT||fHoDcX!S40Hhl>96hIOUlYdNH)DX`u6K>?Bey zk@?Q%`BI{SnQBEC?WaAQOV@B^`ec!p(2kF-0uGIxkrdt2=_TsVMjY|eU>TM2vlBC9 z^Ikc1t3}up@hH`67V#_#d-ZQ%v1?;$XB;!npls(TTTuH3D_L+oV>9)Nm8ZLvQnFdR z`8v1pYeAqvJ;t#-@7K=clzSEs9Cf*2{a3Yf*W>KEZD3_N5uJHE$4now6|;g)TI9#& zNsT_;AKB*7JXP{3U+RY!6T{K|Du2)7VlM;Zk@=nd*{vwW!qU(3QQzD(W~M=v6+Db_ zGZVh?1+UZXh(h1`96%1ZSRMCDlHg)XCLfmMncB?;niK!I5z{F#%Yd!F)7K*+s~Nda zj{0L^2~VI&(r&-nZ}fP8ap^gF8M5*88uk_sTb9-~XQpA!c;wl<2XD^_yGcUcNLg%F zWbP=Ld&#@xZ$D`EnqT`5!g)e9=0o6kdjJFwb#~V5-KHm4bwct3ql0tQ`a0i+wN(DC zdk!K-Z(6^k=K86-!l0AawZz}HS>02|pV;QzPbt?k5Z{EVcXqx0J`1YfWIh_K?I(Z8 z8$y+}dlV_+;mRccdpk<}erkCP?30s#45Y?^djs0)mm2$>OsoE<=*WSgkl)WhR%)9D zp@mn$)19UdeMwL}d1dgpAY4(g2_;_F*q_5TWuWuGOYdU2*rmkQ#gyv_+qbXW-Z%^V zZh^Pt-q}nM%eAfnX6Ap!k-wvCf4uu{bl3X3^-RS%2;kb=ijx7;J2^tM zX3NhtO4ql^mII6`M|_>xGM@3V!ExsTR5)_iO!=XRup@3j^|;NSfj$#+b2SHJj#J#u z$KUL(t+k4Wz!)pkdZFSc71o!2zMxrQ`>E)*Y`)Aus=pl&Ja`>7sy z5zkr-OTJfY3CzwDWj7Er+M!!{!IE}_1g5I(_(4%|5AibwqxsC-t}H!L=UTx{D__Jw zy_hs|V=ZB1G6(*NJ)4h%J?`ZRTxDVXyZTLixWtOcI}YwmGvwosXM1%MO9Ow$71zNJ5lAcsY5|Msj#wbwLJNrcKC zD|efZ4sivGmI))Hl|%fJfW;$|~HlXpk^80wWj_ZCd!p;#pv+VvqBAKe9z3idY@eY<9o<|BT) zC@&xTwJk3ZgQ<~&$xHyryq+|g83S%XotA4|V?g>=9RO~|R(9Ap{2ik9h_WN58lFNW zzY120964D9OirJPmOo&BLC(lUr406HmTdsTp*TgMr6V#h9vnkQq#I?s_> zaUsc&7vsw7oP*pSVf}MY;%C~$Z^kl9HuRO5R50RqWhM9>AAvL}jp=j&&48_Ai|4H9 zwpaOBlHRc zt$L9xVIEv!3fl}FFfTrA2o(0b-Y_PTymkV5vZnK?=Q59ld4Ll`U1uprL*<8lM7hQs zK6!j}0$$)~%FN#LwSQ&S#cXv9FywJ?e?G)UT0YF(q3+KNSvZ0heo6(2AXSj4 zLghIj!Nbu8l+~-17>zj@&?NnB0rnX#6DmbL{*uM}<-+RmG^7B>Rc6*TbOW|b|h1f?ki$rl~t3>E$E8O|o0oL~{o{u%p-Xyuar$0=X$+Ebifwr-Lm zJc9LO>Tg>ft=O?Fy+7}F&y94#MY<>UM0nq2cteFQe369wyjvzOy(>-3wyy7+E`i|7 z%8RePy?rx>DC-GGEY5>5=1knzur>hVE$!_^K|cvded0m%@v+!HW?SDFuLljn{f=5b zB8#0z4qsm>cHJr1SwQyOhT(x0fGg6c#Mt8gnRD>7tJ$tKH;Ja%^Zjl9^-q1Jr|bfA z&C~8{-XO+QTTj{b!JaIK&;2~=dS(1%x_dfE%XPYfRDj!UwcvQ;&G#ZhU4PXUFfS7! zWMx@y6-$CgwA- z>~M;CrsvS%gx&DzY0g4;hf@_-W8#a(#5kep62g#`NV|T1M1w4|R_s2NwcwSba%How zWrE<98wlhoh4e!rz%7+`F{69Lg!wQ-R#Y8tV2}_Kr!JHki>~EeGP95shdX+t3C%Pl z2_mEEGn+&qD|Y0qT#f0Mj>@}_dQ+xfxhn7K_NI_x_3hZOFif10e%L8xKUn;-+2Ah> zz{vK8WFm@1oR7PrhXGo7*G$@lDbFPpYsidOT6WhS< zq6r1K-&DmoZW47(w{%UX=wG~O?EkVHPN7H^r6fVgAn+jMj??sG(t2y&xvvu}Q|FOS zdY|8kR?EkHwNJz7)WH^>CutedoJf_lGm@4yg&6Y~#-#!Z1Dby&)62v?f0K8+&dBVm zQ46jpwr(YJvxPLp^U^Vzb}g>efL>EJwL>lh|g>iQ*sXKBsTrX_>1MJqJg(HVigz2jY&Hs`7s7RC-^~EYAPoX z@FTzBRK3ALoc{FH;aXMuNGT`IfQDeczS;8&YdJ2@Gx^Hjbr;lo^7(iV`5$y)byns% z8mn`QP=@3=QZK0aK4ia-csG0-dHD>G#BHHOn}_T(Df-HrDf;@GDH%qX;Uoz^!&J$V zFL9HESx*fBNtrlZRb*Us>-SdZr`_BIAfv|Tq^Tw-Yu<*{G|uHe;)LoS`kF>R>7Ad( zo|w<5rr;pW`q^av9zvh&XuHWoGEL*`Q(>#dXqJa1L6Or^9ayDVTPDt{mw1oFZC~DdejFg9X+vzSD$W0&FwTk&tJ*Jx6V?-K}c*J<1N^nUVzF>hTQI~T2 z*K=={@Hy-5uUrdR1pQfyE?)ETlBS|s{)tWB2+RfSecaWa z`Gh>TxnP}CjXQxe8dS9#h~64#V{)tN-)@A%zfRC9)SceVQX++JIh0g+*8je zK~~(ae*oD!0x<$cJe!)K4R4>p$~7WMN5ynE1<+!b5sYa6392cOKxbYI1=+zPIL%G| z_#dAPl_2?5MG}q(y!r!#&M||-n+{IY+}9B2n}>tGgO6o?XCvS2YlG_MlZ!F3M`Fwq z@yZahn_4MFvV}rkTPj5Q$`AY8{NU0 zg~BY}n%Y1#D2TiH(^bzzT*znVmXX)(VM6Nu^o9h7FJ|#LzIn^1ihg2Duy`jSo5dfE85jMBN*5|2^Y!$49z>EM=TO@~tJn1|QGQ%e6q`&35Uq)Rw`j@iX^*-q_yd zR!Cw5Z7#Bye^t77c|$f;RQmcL_2au0X&i`?D`Q3yzPfn-V_7PSRW?UZ!qffR>b&ZakCzD` z_OE$c?qs_0)@F|(T4B-NE{76_PSjn(wv_3?cXV?KCanOkcV=bgKTWb^(!PWxQyqpE z68a|6Ffysa7T;kih7T0U))*%_)%FHfo(d1l8U4SrwuO0W3A?s+bKUcAGOMD!!z3uG z8CQhKEKH<D}Dt)J@Q!2@wwJ#Bs6aq+FzP>Lp>Q{on6c1L={Zq8Q~oaQ~@?nC3-~cQXR9kM=&=+1+(oh_cq1-V|@o0zxf>W z0+Yc@XT^#pKJNq_JRBc?q@_n=_)3Hc+Jj8B1YG(eoSoB9UD|_=Nz{&24-@5kb7b&t z&(`TvE8v88;K|;0L_haWOr39|j=p00+U82^*h4jLbl1o>pn8;0-$rAg!17B8-wPLU zcAU_WkG?K9nZJVJ9(Z40%1x|n^Ev+|-$Z}OH%br=G0gTG3Nt?XmeahEa1hRjcn}iD z7+Q5WT|HH|s%WC`ZJ8%j&14afvh{lp1%^Gdf1+vyQ2n z3$)lhRv2q7%kfsB3TNb5V+3Adnx2bZ8qpfgO4?WaLwgp_iqYtXuZSMp6V(So&tTayNB zBLU<70@HaNZ(2Z+>+usiFMveSnJKbARY#DCVbIu7yx>>tV65_S=3( zo}@xcW(W`|`gc)d0iXNdR&REyc zg>r=}%T$MbCA_~|Q#B zSc)ljNaLPb8Hc&#D|tunrmJcqy$R z7J5~zp^J3H56ZKPel(?I-sxBE7D!wyZTiGOBY zL(L?ErmAYA6K?}LxajOM=aR>A?~AGR#i?_*r4^rY72h=-ne8GtkUKwrw6e}gp{gYF z)`osnw-O#IEj6a8=Dqg8?|h|fvfxEHsKW7feb?0yO(zYOwev5BVn25(@1

      V}zlFp=~Egf=gP`>Y8-PP{!P(d-wc`hhhAChxo32QA3Q* z?Gs(S&8ihVw~yhR-m0wH&yIpATb(l zDl5@vT(($ckJP+T%7K0@G)EobEh>e0$H67%c(3NkE;irvlocgZ!9dPMooJ2M@X<+Z z9Voxw-d#-B=n!~Idn0A{^E+=B?apW|#B3h^Rs}epDSp?w{;3;&{rVu}j~cK)-t=2* zQ2lM>{`GDM>R(ppU%&fIf$%%k_YZaRzxS1oX@BRl|3Tir?>Z5|zGV$BE%R5=|6hv& zFaEz>>;J-uX7i3@QT<8af1ZJq!v3lkyL#cqAcXpV{*9XAf9(pdxZ?x4)FphV@t|_F zp7Do;Dfxc1>ZB0qKMiiMzB6dZulvfaz*Pz~>geBtrhE1`9zXlQO~N|Lulp|Hkha#K z?y0KSR{o`B4kVHU0{Q2sC4Ltr=RQV@f_sCupPtTRe1(yP_w&qDd*6IdRDvHfx;Q!M*4vR~h=aBjWFoGh*j1Vmq8$w;lY!pyE*rxIIL@G- zf`Hxh{?DIFF=k=ftic%fL|nI<-S*BXi;vEKt~uE1z-7TChkz8Va>KFF(PgPZ<sM%}#{p|g%2l&(K>jh+Z1O(O~3^0O#MR8JBo0iEy9eY)cDzHJ& zZKc_s0Zj(&YUfv@fZqnnA{-l-3e^cZVbE*2 z5%G4MJTGV;4s$>UL)36~K;wLG+GLZi=p?2m!7*`C$D3mu`VFmJ-K6&R_Gg=uwbm$z zi2ITn8=zhInI?A#Nyqw3vjE&n_q}Fu6==8r?b~Dawj)7dVW|u%>0ndAV5%k1%NaD` z4@O*w07Kl)9xtBCF{(CQn~Ms;klurfDjk0Tiw5lx{*);PaFk!yazAxL!n8XU3?wE~ z>x!e1GyLR<#HCfLi!`K|#9aGwC>M0=Z_fcoDPTD)BP)y4PQq`)XurNU2ZcJV^nTDP z_q{qhm}z$FioD+;yERfY2=22{@Z{v=tP^wOlh-M@@r|u53UP0crJszWQKDTLf=%Hx z#C=EAKjo$`2E+o4l6a9|O0S&au-borSM9MM3GKWx9DMoCWGzN~Ko&lOYKak4+)bGD z>$g(@KE9QbD_ojKrd%Twc4=v84`i%I3h$m8-#+Nt??1iLeIlEXmakvRV{$Sv9&xeJ zG3WB9Aqm(KHuxMElcAzCJl9}S;{b{og2l!7JN2cm7z*!LO)!GEyr7`7fYa;5MqHCw zMP7dY9k;Sx`2&v$dsHq)HY#QEj0n z&PW5w*<-1sDbs3e`6xbv?y3}Go}Yg`NWf}To|WjQq=x0om+Sco2@M2T6skN!+LSmM z;yz6_6IIhgtjcgO>DbY+$!!k{LPMc=#Wd|9;t1dbr1ILrNWE5DSm8gf5Q6;c3R6W> zV40bj-Z&rzx-s^Fm=v@CRRELQDbld?^z=YceyHnw>uqs)=DQdeN)kCOUZ=Y_rJy6l zMm>7$0hpW2$5+d5JNfzZ=Y2_5Fr#3K7>S$r+CMuxJNPb1d(MlF;2!pQP-NZ_f*sQO z{wb*1czj#j)chhnJ>40D=ppq3HsTFy`ELup zN{6*3v+2!0uC*Eivz@=76m+z;`SaXN(dF{@7lx^JWBq z81uDX5*tsf1R-<(l4q}POp?P$Fz^N3WNQxSZypj9bRfAg@BI_-k_8v%t%jy1A`U}R zV=yw{P;z7c_?XS8#T$%y86nx?9)W{_)ZUNj!9jo#x^BDE_ptyIE17R)NkC@5eZvu# zr^U0=$-z{C11@i)dir#%NG;3v`eJN$cDA#Vj*&4`Liq}Iv&aO{^h4LAS06M+`a_F^ z!Ykc~9^3L7+#?UDkKsUDYfH5Zc_~G2#+)W-o3+FXn zfT@8vJgzqA(vWUhxYgMETI+GuGj7|-nwLYyfb`JN(4_P?bD?0~LAtYhPdr_K(rr{# zl_TPa&XRNp_<9oFm)S){D1DDL4;DMWe*HQoiY4iU!+2qlnzJ7BrzQ=cgmWXxLJ-f* zmUE%ZK^VloaM&lDH?$YTOd898*ZT2^h*sCufT-dlvbVPGy9%#}gWMt`dkcgS#;hhP zCMGW@r{6rdThy{d(9WLbb4A&yVz(^hsnvKH83_r?XSy($S#M%kM8xZ-z}3aYbzJRF z4M4&Om;>$a0X48{;PU0duP;wG%-!epMnU%!Y8K6Rt>jcSwo@k~MQT!v@g|Z(5`CCp zk$;KR^EXtC7c|`*G{o0{&1@|!+?d0F0234x>_(|YNm(y1DgrC6HUFB%2hPj;{IEnq zgcCH0>3l8(gb;iV4g=jB#6y`3nvSB$L;?{BTYRr|^B&zr{h(c$yV!wD2Q*)PUfz>B zn+Y&as;$6J|42YUAjE8;FGCoq8JB>77V&^{$Vf}89?%-luJ+%uC4$&J7R8%Tfyw6I@sKKR%NCQ&9jKy8oMo z?vsreq0!LfeTgCg@?6_-nUpSHV*{uFASb?5ZBN!J$;%I{59Luk)zT8^6hK}sG5qwP z9dIgR34B4D%wvG;3S>nw!aX^kgSHE7aekEy3B5hm;y)y2%C7~-HaTtC) z144bi`QaBJ>!6;;%$=u%H;1K`A$Z$2PCj3F7l&l2yS0_FcIJ^2`VFxbFkLY8=5t6x zdrY}sko`phlChxe^)IHoPk0?cz;t+VY~7Y535e?s9oTq__qm3{!88;CeVii|s|jZ9 zfLT&#vx$NphqQrFq(U0nT2x?%n=&n%>NFQdO)h9xy1KepSXcopVT3Ht9%_{7H_nd} z>B|q$R?9#*j5kzRKWScVaCY+z#`I%n^ABnX@vWsj7?MzDzKiKQ3$o=uN%yHA{^LHO zcz-PqgP8qlbBqNn?`9r2-AhYLF$hfG;lTb@jor+HtBZ?^mX?+P0m77dI|~bjk`J*_ zxo|+B;FgdSfFXdRuMl~U3*jpE0TB^>Lu`hEc_{4XRd@FB=X@MX0j7@kV#{wgykj z0Egfjclk{Z?T`c|<^1|3LAa4#=zhcnwT8%O?Gb`>pO}7VOobM#8^u56-({w*v zR>&0fP)uemHh-97LvZa6dT2;$Br!h~hrn1H1lc(`D<1kI%x8&uRLyHdXnsM0#rAvL zBgyi=mZ}Qv$GKiZiJeu-4v777hdX;*56psu@F=t_$|%WH-=W53dK~PMp<3eYd+^DB zj_b!FD>1hfcIr-H#t}v#?L|meC;2Bx<3Ze5E}=>HFfO9_o2d66yL9Cr{l!i=%X44uC1#JzBZ~fM)Ky{Z!JGq zAEKdRC&V+&xYSY@|1d<2;)r&-k4SJ07v6{3Vm=XVoSHB4mubQ;oH6r2+WVMHzJ0&xUjSg$F2K3&c*8 zNyx2*r1)Da40gJpP?m)7ZE!{%8K{~IqE6`eMiszL3`OjQ6M* zG&HSwZTabr3g&k#IwiTdmArV%YbQPNrv2|aD7(nl>UF2C^RMkG<{whU(JPt>e&zhz zTezaWxd=%o(mj&`maNXCpV5@AFCyd@RSG;P-%xR}DH1Q| zN_@tgeTbe^M0TsXmIvo>C$Mny;XkLXi9VvdB4uLP?D~tED%aZ`nJ?%1d{%lw2}djgqB5Dae;jk1Lp! z{KR4+H|LyRnXTE{u#JsK#O}Qp6yBDdtMb5hH%SEIo@X0qbyRPLB+nf2sHh z&h@oC{As>15BKxCKH;1T_ljqN3RhWF3nzyyFfrI;t!#_s)Us+GNYiK1nw((FE|l_EEWj{faMqn2e_P_ycsGhOe_diEzPm!@Ty#Kf~!t$VUWScbUE ztTi5gTWpftsFFhzlCcsL_q%3Ll}Mc#=*z7Ig|fn@vrH$W7mYJ58KA;rFf+;g-)G+V3NO(%N3 zifKH>>d2sU-N~QZv@p*}%kw={BtdHB<-@fJ)1KNIS;*#5_I+Z+;URw_gB%RA&5>I_ z7;Ws@kTh!V8tibt8F=`R;tpcGqnrXe&4q94naSv#7kQ_6WMUTq?WArCQHXUy$H-G} zSKn*7LGYQ6IMQXFt(rC(4H04MIS$Fby!wYWHO0Bn{FD%GJf^j4mEkqdnwBS%PH?r? zoHY_%Hk}>zo!80hgKDaJ4G3hS7T+GdkLQ73`DNjs>l$VA93Xr_l8;b#>CZ^cE3SQ@ zl!lq>Tde_poK;$Pf(?IMFCQL(6yh^!CnLLLsU_>HyjdUAyhQ8TID%FT!OhWgB}#@T zd^lp?mu@h7AwR5Nlx5YIZ*!`#hKIiW_<2x`JUdVBEzv-44E5*~DRybtKrmUf7JF4= z^Y`9L(@uA@+hPn4{$&r6{36(M9)(y(ehU0FB-stYP#((Dyla0~L(#<(`!LwEEA6XC z<}Nt!N)%t$z@l6Ujzs}-naiQmio!l!U0O9?WBvW2R08Vr@VNK3mdP)s-c6R-D}Nz7 z7n)(`VRRj~Ow-Z}85m)q7%_@k$JQy#ps8&hX0_3VXyY7Ud?HFXFDa7XxWLvgV!hZ} zkBe*G5Wk9E$2RYb*^uZ^slVLdE~smFX?0@%SxK!&aGJ7 zsy+cpC5(JUvDl(psZPm6DM0@E3m30b$jB`*jmMTH7psLFXE|hu-(fU}@f;0<4WtoV zr&exwTX?)Y718=QTvq34{V3inulsPQ=d(*=={?&z%P&{AnkCv+&$9-b9d)^9DE{T& z+(o^)gR34HhTd&)I+qr_q^Ynsu#t&5Bk>B%$*kv4v5(kf?p<*M&KQ{5N+F#^cVO#(OOh@g?T(W}v)>Yxt8+fMr0Lrmuc(Afr0y}8`mY50SSBxy1>HVk`}D4@-9|v8 zib&=C_hj>$mRQ;gY=s9ca}nZbFNG6tBqYx@)`aq#pKl61)=<7lWnZPi)h+huG*{GO z*0CEO?NU#ET$ktzBEE(woT8WvLy^2WvdEWa2A1b|U$c@a6n#nB+UQS?DgkEMOOpwe zTxDI?wU4GEVK{3DP7V1X`SUvU`*K^w z?EBvGRuxo5xw=j1z9}TEcWaw4QKu2<)q`caywd|upIbn6dMbX;jX@zY%+DP10>1KGL=Gaf+<>)vV zy60H6kC=LIXRx9IQKuv^0wy*zH=N$@fb(Uz$K(;py8Vxs@JnIO(Ghpbq|s9EccDg2 z?8hldl*gXmU}s5s!;=2*>tGYFXM5jZ&Z#P+k8slPXuM~Cy5meT^mHWG^sJ8d)ogn5 zvuw=cH}9n_?v#B`US^{w?xV40cCT z24X8V*#;p`*J_Q>w3q8ZPcFdbWUi;4Ssm%R$IGPFE8vEW>b$_M~lB5ZU+wP>dx7owq#Bf21X zOw1_lw3ZVt;pP6#l=Cgr&G(j%?=AkhtVl7L_imIP5qM+<8YSo()sa^MukGTnjws|! zfQ;c2*2pnZ%OWU$q??*>&?UdaPFv4)|H~kqAuR%-%lFh%xU zdsuL#|7B_XDlCa4;n-3=`l$LRDfMvSv%EVSpAwbDRp{U5SHpAD29r3Ej;LOrcu8HJO<#naIERY1bDMp58CrkYq77K@3s3UD1r0!mnIWR=WrbMv0oxF3MCNQABK{J!yt?gaIaH!4tb6Oh88?O z#uFtPyFkqjsyL|q&_L81++%nf7>@1!TpZD1>K@669q zMZ)HJrdrj`V`n7;dE~CY{Z-9AC}|t{pPVzq`pZhUJ_G0(u(2sb-6=~f(11xk`O)Ji zz?K7#ZKN_NMNX-5u2&f2UN_{6fR#}{Ah_n~S>G2iba_9EH6mZC>cR@6N)O`la7qSX z0$lyZFZ@#kQ38bq&@ZJ1uT#6I2YlI*9-f})W&K?P17!{i?UR#}0ENTXpHNh$Uc1ua zUXqNIp?8m!2$3*4La9E=WrlKsfs>~VgY444xcSTZgqhtyC{RQW4h~yeVRnUQ;V{sO zHiT_+a}!3DD{;t>KqCW(cKq|C0sI5(LRt~rh|a-GF)x7j1K)!VFKk|gT3GmEC{GRm z{xJ~|`1%Uou&ev=prQA~CJ1?8lZ$rC!0(`7eFQ)hz!PJ+xVYkwz~LY-PEd;OqZL;S zaTvA87xXU82L=X;dY|Da#;%!ln^u9tlcI{nct%CD-2qyfzK9SO7WVb^1^A2~_X}y( z%-crju6S4bd>tJfNF0Z1{{<$x;c`=KfWv0;Sf~QHR+bvKCIGb91&EsqfR@$O)uj-- z&d<*!HD*70?9DVYG{l3b5i4!2{aj}037CxeEXgl2CntwB8+cgrshlqYYHMGCK$FhH zO5;w@LK{u*1sCRb52$Xf6%`d#K!hB1Tr0WMaO8cS=X|WJkx}&dGQbhj5uIOLJe-5T zQ`6D{jP&%HK|}+%VxEV~VX=`{CfVy*X2JgwM}0Tqh<2;dZO`xqu{+#aUmpeF8i>pQ z=pw*u-(_!BjG8(i==|a$fI)T$0@{hkj+PmS)HMMJR`}JXAIeJrz5=RfeznE#zCYjH zEl>2g-p)XNc+C=Q6kHyF)U95=L{+_W=QY3=DmZ~OjeXC20pEkbU*`h{v%?BNfuqGw zzy)KI$H|Z8NTV>~w{(~2RBL~PLZM+{X!-3hHxQNq?q$WTsU`rDVLXKK<>LFY9swkj z#ime1DD+=@`tWN{5n<8McGC@9qgUVzkPs0o)Ll%uC;acAL`Fuoa*Tf+3xz3)UEijl zpg8$K*~xXCx{f^sLPzXBX=!QoKf1?loCOC5JF$tY3}qc3S=db0poua?Z%B9^y_9Fx z$nQSh8c$sV!>YYbw$;fxQP1Tm9_)X;(7p%j`j_y3NpvGWOt}UI z1|IL+?t~pjrt(+>K%ch-fXG(JSY$ZNivG|n7rs4F9dt~)I|nt&et28{fq)(9PgD7$ zxdulXcMXDTxyXCB6+jFFFQPL5<9s}hta-$(Fuh7Ds?f38fq{6=7T@<+g8as<`jZ7^ zs(+sd7XWRojB=!qp7LD*@JhL%zP>)>X;cL4&<&MfW3(8bHi=CyS%tWSX^5f);f$&l z0*3*XdYndd?_8kqWP$Po3>QpaQeYK(1$`t&i!Or!1C_qXy$(1D~pd!CFBG;KdphB^X&h)AULN0`vCv{ump4 zl|W1T$R2tjvAvyD3>2(8RG=bM!v{V$J-*qCnQ(Y%DiF4bNsPU+R#RZ=+u2FCv2^ee2v`VfnRMxG`Y4x(+8 z#UTDsSy@@pD{~XFC=Q1KfCTh_4}GT+6*GFM~r%aIO2N9%_6PE{yPm5pXC<(Mp} zzOtfQdBB#33|+8s6OM)!6bZ5ZGL4eR{_rwG3 z%#kH-BDkwUUMH+S8yaZwXIyuunef6|!G{3W8jl1%hFV5zY+{ln=0#t!f5XSr03=+N zH;don;&|Or4n@Q8#COHrdBeJH^7-w%KniYEkLcJ8g#Wf|peX>yN_`~`lQH=cd2o2x z5~uO##YPc&*yh{2dI~pmPB4{BC1MDcL2OmA5hI8wo$=byl zbPhypx-KA=28JKM79-`e(geVKD;i@s42WPBjeJx=mS-jF%gcyuYXfh+j@EH$8ygy0 zGchT|r^m*QK@4S{nL5i6dY~E2Zt(ekYHD7Ln;)w(L0Hz~=PC%HOJ8f{1KizW zFq1IA-LS>Gha8#F*vxD!PYzrAk_Y~L=*5hSBq)gS>rfahj#S?Y;_-fBEpO8(E-1OHI89j1~}9A>}cT96ln~kq*y=Z?f!4i2DdR zE+TFx6%-WUg#T^i$qU~cEetJXUBcuG=1mkSaBZ3hiA zGc9*c&|gl~mHzwle$AFIm|ov3QYZ|F4WJ~>zzW)hfitW2{Q2|U>Ba?peL$MP+Cnvq z0tNrz^-Ts0h$W%2BLTruKYjN{wXI0f)xQ9HOa!-)b`9h|XwpfPm|efyW(We5zvf4V ze83kVsQd48YMrU6NR<3-I>wT!5rI(9>eswQv43)JJl+3zmsKvr*mw~T$3T_@6hz8F z$g;!Y;lqb7U%rdY$N;G#nL^Iy0GP(vSYN+KO3Ip~*hWD_R0m?Kt~-m4@mmdA-1tf#` z20>L-6>x!{Cdj*K>%=D`^8r*0V!qO|ARS4v5*HU&>OqV${cC%a;#-NNBqSvF?x8kU z+D`H7=}mz=By`8W%yrcG(*M{SG(BAp#QWZ@X9kv)*~L-It`5At+?f)f3SDaN=m55; z_4DVHh`7{vVb5Oyp%Z%n0+eiQY*bW2VCUv^rkY0}f)i9%$FF4E8a?(--2|KjNRH}E zNl&lN2X-}AOa{nnB4pLZiOQoRgM?~pYAA<){7BiD55Xb}7zLUhh)}Jvd}%xaBrf2cfU|#ovjH~;2b?gO z#{^ScjoVnjnhNRE|K#~pP7XyBY}o5~lhB#lb#L}-0JuF4h{SU+@uVMZt{vnzZCsY= z)`kbs(bI#QP7-=SF^^w|WrRX>ak@8X{Fg(6Lp$Y9^7Ib|0Cyoo&ew4X62-i{ydak+ zDy&3M_X9AB1)=>`DCFvl>of2*G)uJOguql3A|j#_aMR$ygQ+|WV6-P89vPXK&xH%o zNU2`^yLXI?``~ZDWVmwWX1$R12a)7PpG*F2TX%Osn=(LwtX052h>MG3Em6x7?-v66 zyZVCHb~5oC*iJp7j~{rEwT+J6Xb7MXFz((B;y}Hh3LF6uO3GW*gtCxqVA6ryHNW!h z`T2biz<&1NA9o?*F!HavSe0qfDCXto=Lg;pEp5I|wYlaF{W3Vu*dvg~(YP)FlFL$+ zzf>{CDd3;CuYwe?#ib=+)AbuFej6L}xxV02s;#Xxo9Ihq!Y3ym$N;*)oCbI0YxO}8;C8(S*M%h7j3z(ZcCY9{>}4#NxkJU;FQ!d7I$ zE{u<}Z*6OXP~QZl1a;i{;YuGXD@fu2bX|gY5{jS=f>u8PrSrtRc|+W1ZEDI36g|+% zdJL5ySqi+X@(g4nNmXbvCq=-31Tm-kTda0xAy3z%E8YKv;^83n9OTnq?ER>ecJwr) z1FO%~gAQe{bL_n@&&wMDNo9;4U=d1h*uR2E@lUW& zebkkP`T6;qRFx+nEDB7CH|z!hNZO^(O4Gd2=XR!oN>fr(@809ghA19wj#-102b>bY zkJzTB{}1cLCKFCXp9;hz7335aP7}KA?CiX%MR0vTEG!Jzf)qkd`O(o>5kjup_mqYc z*D1)!4MAqgs(!O8n==C76E@wN=P-~ih;B%JzAjyDF=$xv{I*`Q+5*Opi3u(XAP7NN zp4$D%Kh0)Zxm%~D|I{-eQ3+(l7(soJVse9h_va;vkmYIPfe7G&>L0yPEO2ymw7DPK zV+tS~=sJ^b4I{=gylZ=4c9Top zBOzJqO~N1wC*~jr%7oT=8WC2Zd0aK+o&$s$l z)K{1Q0c$tY#OI7~IF4}-FDxIx0zfluilBqRATJa^h6os$b9j0R0VWnm)C1F$K$;CB zoaoj+w6A>ht$%Yca0*RrZ2Gr;m;zL%WC{l2@2Mz2S~oQ{+3f0r?*O_;`vz2ykwKJE z%@B->$z58NzDL4K@lL0D6`aC3n*$Ie$uW)CAh!ynG$kk&#HQu0LpSQOc8W(>$$vDv zaj;l{V+n}hkP|=f^R}9+H0i367mALK4#$UkdU&9rDYW|5S&b>muNFW$Idad;|F0{~ z*RTW_n>$%LFt*RZ$;~S(D~meJKLjWB!$H_DE>6AKbq8p8gAdQxR)su|7-fL{Qw==7 zL&qzivB0}QY9$N^+ZOlR*w`_^#;QU=j$}7zs>mmhg^y`X=Sj7L6x;TI%cBjT`0lg; z0{~D)XE>pWu()>`;3^XSZD860-E{}sdlm}GO6vDx1&MM?5mX>6B|0*a0FM9_4Na%! zC9b#6`4hy4YHH;miS{PbSM62y*=#GwU`fUQ6AeI=gz?U|Jk{={yg^|DD7)uw44;IA z5s+^S^|_>Pa5pwKW(SVT`nQ~$DQCV{DMAw7XAX;>(Xg?xzmHIWN1>sj3ig^FV8Qgi?BH1}?bFC0p{zjuOq*bH)~_@uypz&@Ba&XWnl16+Xf@o#(S@bphkn|MSY z23uHI0IqT|&>E^g@Xk1vMa{)3lHNm9k)IQ~}FSJr>vw(@oU|KS52-@RiI0` zcz8Yl1t%|$`jfHJ*475rF;_m`r;{xXnxxp$0%zK_0Jj zFPIVLkzE7qCrRdS@1L?@U|_7Gfb9F{CMI_#mKGOpY7cG$SPt;tEPy!!0r-r5gB1W) zGu8vipy>bJ<1csNTmYmh-T@GRnW`+v*1cM}B?}I&|1eVmV(37(22dB^5#UtV&xyBn zIttj&@^W$AUIW=|NW=kGO8=(Ppqn4Np<$jw5@HQ9v_U+qw#Q~7nMfsE# z&!Evs*1=KV-QE4I@T*n{*@Za0Ek<;lZ&X5Wpf^)OO5AYE zXN3Z(mPG$y@vdR{f{*W!xw3M2Yei6sD>{!7k&%JL^x^i2=ygGxeQpb{eBd1a+XA1+ zq;_Z_viubhhZ4jR%}VJ`OHp$TcIB}9F@(A6x?A4T(K3lB4K{3?UkP3$$IcG78V|p` zn;}S3Ap4=5+97;U-clX>g{tSFWgPf_>h3TlCO@00Qqa4|M54@RmirydD~eyUc^!2N zI!*I=->FK~X@-84x6HBR*Zd`(VwHdS_24uf3_(H4BDe)mL;>IrCMDym!u7qqy+O|l zwMoxb00mPyn9UL0I~r&u>-E2WUs?9K8D99A7PF=60Er@cF15Y5=q8w7WABQ z4Lcd)ZZN4#NltT8a_g5y9@DAnb~5-B2!&gp%U*?QY3a&;EU7a>lwn?Z%J;+AEGu-- zig3{(ti}sR zoFlnKO@KY?^J)_WJDu0hFa*z>XnYemL*VZlcsX(QXIN>`D+V6|#|CO@&>mneV zqs7(cUju?b%>*!;UKb!hnJ$!Q@y;9IAgB_!(`#C_&=JyM<&S{03xL4SRNYX-a2T{T zg3(g4-oaQ7shoHFV}tth{0s8Wd&c>lV${Prx@=JSO5Gv2b4E>xmZ#E(W&8t>F9fGC zeAdZ;K%MmSecIcGNQ=)!H8OBv-?$Cd(iFL~sh6(`WEpzX5DV*T5bPEPX-06ar}QHg zEi63@+V_g+F5DX9XNMy*I?BQ8(@*3oHct=1_XyTMIqQt&m4Q+ zoT%0?`pjwe8E#+cygxA!wPp)!ugMDYenO9Nof_J9iE%Bb` z+u(KRu55;@=Oj}~se4BRujvI@InU$C!y?Dc58XL#2f~Vt8a#RjALT5&k1WLVn|VnN zA}=d9Su&Q^5Z@*D-hTpq(I5i2ws{&eLAi;TXTffgfAd*?V+|I)Lw}YxhxtcE!>1&# zL{>jvA|6LAD#$F3UT!ek9_`$F8MCS6MM(EHZeV!#^R`dIBg?iSjR=$tHrvZB_v7-B z)~9V5Aza_^098(=h;RXtD26=Q@yZxId|@N3q<1OG{%EI|k5!T%uHK|b;>BRzSuJ=x z?u3gsvDj6)y1`<5kf42Ruir`An=GcX*TUvb`TT_{G)EH zWn9$582?;2$3CluZmW*6O?#-Vt}A%+6C=I2CQ2G0bz$7PZ_`7FE#0=e5=lS(D)MX0}JoL-TXbsnP%M_^t z!-pafS?>w2m-6*Lv>qj!FEX~Us7fF0xo|PREx0cnS{__Tb#dB)Cp!?#y!MnYy+Z$F z5kq2BNqD+-OI;U`)tYz8+BmPBN!N5Z(c8R5`v>MU->V2kd=;gSvYZ6y4GR1xLe-#Z z(naZ)l>FBPWS;4dEF¬ct2@oEOQ;hjFg8BqGLCOW$T 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 literal 585346 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

      5T^UpT~zAUG8ewf#)&@h%#g4)blN>J{3CsL z|Ce>0lM=EJQ&r)tag=lGvG!Xb@^i>Ap=FjB!5Wy4wrKzqj-~ zRGm`g9(Q&r80^3E(L&yxCYKt^~u;{KbTXf%I+ zKb=}$G?aN#KJo)CjM;N%0Zn@h%ksUh&v(z!iW|-+p)3A}Sb|lhr^eNbGakM2@6-L_ zX8*khCaWd0@;jeMjVk$7v? zQYQaXhnaNE$g*GYElF88U}1fl#IE>fey^dYGL6=yvTJXKT7!YM!GDO5o)Rg&v?M1^ zbFNhrXmI@>(E!&=>-xld;jb@B_+i5PT~fN{zyDiZv69inQOT0q#YOGC=eYhNM+w<# zW^;b#r$4qhHqmkEqd_?3Cm2t+eZ9GAjKSsfq(79prW=icsS8grKk}`ipOwTR&86CZ zQM!K4=^h)h`_pH`a~?`3EB}98@jvP1f3;uuH-YT0;r^$s0$fF#P88hHHCeo2}LZIxX7frl_>E*vSaE{a_-cb+`IuijqVviApEE(P8KO z@zSSjS$ofl#><>{4~VG~sc74uMV1SAp6opS9v)nNDl$KA%c=O9U|fGy!1Ar{uBqBz zYV80Qtm4h>9IfsL$zV$1e;tx0R+{#A^Q6D#bzE}%iT_&yl^8A8GfVZa6M-Y=w4BsV z!ULD-?XJ~Xz#2-7uHg{kZmKrXEwnJ<5(!rm-+TYI3{6HXa$q4BPA%x8H(45h z=y>(wL$;~k=B`kH1l2p!fKzf19E~rLH-G76Q@D}P**39v7v{;_Tf%&YRflf;yNq79 zz0h;*^nTw+Y*Jj0A6gtlwo>uWJ44?F5=-I`R$9fOtlvQm-)pxZb8Ge?)+UiKk7m}e zlDxZFiPL{qH()A$rb_IcW=*^UymjXIzuo2bBqClt`jF`mZ<7Tyq(d*Ao$Obgfwu?5 z8V-Y#iv0uT#OBn;LRRW7G<{pUJ`>tLpI7gSip~lXX?gMd%fZBI4LxU(&QZ(|nJ4=ebJ1haQF1xESvYZZ%eZbE3as>BaYKqJJKF7i?a5QFde6rB8jb z60VcLo$Q(_+LJHo7YeTbHlId21xdG0#x^x?%>=Zp5;{C;N*`4TWj1FGld$gEme5Xf zXgKnucWDi!`%!s>p#1GzU&yeTYUVRO7^vfK^v70>I+}vORntqjm0)@OkShDtHS?XZ zv@G0yLpHqu+^*1m-2Eu03UZeAQ0JmkcFJSD+#G(FH-hjw%Z7Pjzi=9U`zjIzAlOKN zU*&kV?cl8%h#p?a6Fq!RNkmodA`UI#l##xb@`bD;LaZUoQf&VDeS{{7#;oFzz(k)FThF-J}JPu9drnXV} z5Of8-kAt4GF~7r#zY9JOvaGpDo#`eKp0ugJO@i0bPlrEJ@U+LU-MW$&0CpHACAc(k z(2peu9_A}K`=S*A+882}6tq6zQzfFnEH?xlrvdK6=2z__qOXL_*^d{8V zs(J>5*HuuI6v#70%d_Y?8P<7BU)vfRD$6L6O)im=Aj!L4EgioUt~teUzF*2v?Kv)vw>>A-J7ylxBCAfH&3rkN<7dN|YK|W9v#eqqy13Er5a(Oz7o)Q0@%wok zL^0LTM&&)E<2Otq9a2;NOo8DBK{eUS;FllLK*wtw5JBIWvP1lR`dcLz>b6A94^3WA zM$oe5`=F-vc+%XuTS2D>{KbvxvqSgY;-5m*$0|44O^*%*8f$&gF3tv3z9zyqHL%Yd z{l4~1M@VjOH{mW5QJ3XcxeI_r>tNEtH;Wt!AdCA;I=(~BjG(}EIc5qStBRQZmcv`3 zuJSropehS@Qtn$b{=4Rj zjcs7GOv;qIiZ7j186XT9zgrCMBw?+=lv?vI!F}g(-l-Cs^S#Qx%Ue}5hhr*@DgI4D zA;jYXx2|xT;F=C00c-9qXKJ2FM^LRZPwYjtDYw~qp|j1lV$`Ygw*iZ6WJ2?=GZm7^AMc+(py8d!&jLa(a|n9Yvy+-M2~iX^==f`OC@Y=Yx(F-e`^5Ez{cpru z2ghBee31D{t`AR28gl2t53T*ey#sgKkdp2l3L$jfo&EEThrt{+Q`lmcWGqUGA&QPf z;$IlYpG1q*G>{7P)o-27MWwc|XN7SIt<`4MwjJwP_fC~~?oMz~kGM=f*zY$>fy|Tl z_JUiD{Dy6~0e)~xrYO&elk1d}I4w9Ir&HQ?tj|g1U{7#a8mfK-XWl)C_S2N?z@I5=!I#WiCDttz_?{#d+N3S8lQMo*BkSs`gbU?J+027}A2vq|UtQtlXPE zNaH5qt=Be(_F(x(40|(TZ(f)`l+n2PxV31^uXxO_btbS>Z~ZO&&WpDU@WYuqaI^7g z$fEPrJ4|;72|BRVuT!SS-Msx`ILxedc}zZAkG~jJ8g-epeBUO+n(C<@Z~91U?tV>` zt3b>BSF<*^np{hTr3n+qb9Ckxd1vG~zENheg{2Q}tPJOlqFB>dIZhq~3;;vC8e~31 zxe7NM$@ns&&MPzCbIIj?oDJI`ohNP1cTN8z4o0=ur>I&n9?|ugv50p38V&DW5{i#H<$7=3tRg_0d+eNU+g#ZXq}F??qu zgmw1W!!zV-RU^L1mCw7TD1K#W?`5>3u8V;XWIwu*;zaCO+b6r-Y#~+0n?+9&vg##x zd7ov|`)c}h5c153Jsl9r9Z%Rq*iO$~x%3jf_)2e1>W^+XV=Csx%^#+*An^G6sxAKp zg_hWFK#Syk$JvV5OL0XmO0!TieFmGl%1wPm;jSx!N~$aUmF3B}fCIC#tSlYwhk~0U zr637`Q!K0G(Od^H2(rCTSp=~?dfJXeIaC%jE`%mo^Q3Kg`85k5=MElo8drF%V|!C} z`vic+H9Zqb@$Dkah=4yEN}3I@9lgT)^0_M4L<+A@b+TEx?=+jYiAU?0(d-d=BhF}~ zF2jPuZ!xFhkGq`dyYRO)r=OLIZ~OM^Fv^0SwNCR)A1!0O;oJSVv$~ZN>hE_yzH9}P zaG2lnTY=;cUCXlSunm*$jqM@8Mu%T{Sp32&~8w!tbkT2|s?X^oU zPn%C(y+1PQt>vrtn(34g;~QMiXl|9LnVyLZJl>mFYVR^B?E|z@zr&YzLgMJ%u}D_& z#W*wZz2jjS7bHMX;~YLR?#Wl!4c z+aCe~Rv}AlS@9B^ri*7?=Ga?WIu5||BQi1|k%2=DVC1Re;aPYuo+rOB7MU#cWGzOT z7-n|zstm4`g%l=JUyBm?Tt@bgXo*s*VHOHy>2(Ll-4JjBN2*FT>V<4dOn8aZ&XS}U zd6wjpTU@%B_4Kpd!0HZi^8{DZyV>v!zvjLWXbYYuiFH41T$S9Py1;z!?vrzyT^rglPF~m%h*-+f(a;#$zU0}Y{S|ra1*b8r6di#>5lBP143#9IUdsc%|soR}ebD{Ax z@Y(nzqJ_%a_UHO^on&t0yO*klGgq4o#4hvqDE_&jbIALK*`IA^3o4S+Dm+fZGToHA4aCmY|!rLQx?OCT7UNrowJwfyCSIO z%(wTgiLR>set3VR>0$eN?q)TU_v6oEckShLkFlUYai@Mq1NY@SFL`LdS(B(D$8#JK zV*CP(TwELh!&#n#l)b6qO zX6_T+HdEVOw2_V2^@KwcuiiB^1d2O*ZQVllL6{l=Ra2i=oa=_WcZ%C+aQ2LQN5Y|5 z;7rS?>B*7Gmj79)cu~=sUPSeiy*`Z(<@Y3FS%^nVee2GfU^_6$C-wZBHGAlgV&C;? z8+yN`gmU_N^fBe803}T4)m*Qw-Xe zPLsT@M?Hjl0;jl)P=ENlt*w4$`ynUJBs@gz-l-6Hmfc#F z(}_9ykjHH8dg-wShzt-)%d9_W#b_y`e;ZP%LNW&x%40Bn;|Ta5{~fyf;}N#4qbK%K*j z=YaO}>#5sW$_6!9F9e5{?f{Q7x3Ut5c_19B#7oy-g4956@3p)Wtyf4MD5NS0qsiH? zn2e%GP`+7AER<={^JJF~CDubZHYX&XHo1?^Y(1-e(G&!avoz=@fohOII|!reoz;92 zo>K8b`(0*t*5~!6hVR|UeP-_V$nj+hcn`7w_)x${g-RhQyC?g^w39AT1@pv53%K2N z0pio$RquFWP-8&(2$}^kC|s?yMZD>2hdP4LRWIwR40@-q66qU~)3t7oWr_nuobGEM zn@g3h2Lp)atb}W0ZAE7Ivg0zp+%4G|?>oJVTcX5zi$7Kwq#=^4W-Zec+nk7*csz~j9Mo}Ts05(Z2;(6LA*{B9HWD?pKDodHVTdx_NM6r>5^w}XTGdN`7>Z|-XeU5i- z`4ZlD^%7v>HWlj5`SzVgA7D3&IrTOufZYw;DHG{v_>}=iocbb~($b6n%2{reZGZ0~I6}LTuqJS)zP^RS}&N1;y1JRp*1Xj;@CEB}2ljo6^Od3Tl66wAcY6|x($k$`ES$YhA zuE*8h@X0_ob2lL|i!P4c@yfR^anzq>d)bc6Up5YT8F1HDz?VX~P3wN?9FfzGexbYW zJzm$A_W5zW5%Ly=17&_#fntEVyItu%o;5Pf&1=8dD%7k0_^pNcx;d?8_XA3a-@}S5 zc8RvMnN<;$*}A-7WKJR?$5wg&Nps*IS2BT)42P}5@FUlyJ&oBn&)~NPuH|I@u?H+7 z4|o}x4E$GTzt|ODR7cwWKi1wVpslTo7A~cVmQtX23k6!--L*Icf=hu?+^smJI24Bz zw_?Ga1Z!~!?j%T&;6Z}>O;5jb|8vfL{qq11fn@Jwtu@D-W6UuD&#$Ue^FH3?e}Z^W zHtK@aI`d1rZT<8G$^6*D;Rlj`vd00bt9&S}{M#x)Uv(pPJDZ`q9Y-7kCX^p_Wu09~ zDwtYjY;Wry%hAc!*Jx|@UEHlfs0uV)Ojk=cS^9QyaJX0D6@UCa`YHgc53A_T>@>L| ze(YvyV_wU8+|a+ieV)9LULy!vyR@ANOXXUuRZ`R`u&R)xEC@vz;SIhCnq)4&4X4bs zrt*%J@(9(^!o#S>LUZxilF6&j*9RECC72{~qRQxU4PlL$3pJ^L{FZ<4W!a4Z?>)320FVC&)`^xZ3a^C9+oVhFOy8sXe~e%V;_L>JeILRnL7T`j1!G zvB9X>A9fp#%JN@Ijq-O>w*20+RpO}jGanu9{H{z#&8^N$c8H3s{&iD#)R^uKwu?9nnom~x)+;vIE%|+yYT*J z9PiPEUd1!k}o_^}` z!vFVe2P$`Tvz1bxh|cA zwd(=Sy7zEx{xikqPEp~%-!hw?H2GU2t&UG>I$7;BMv?h{pFUUG4iq?FAFMBQ`M7Q@ zTJgi^VRrI=80FLtx~7Vs0o-=bhI%5s6Tv%mIRCz)iPvSdkHyRWb2k3}6+BZgwxeZ& zJy_}sIU=#LbT@0JbDsaZ1aW68btn6{lXEc-irhRvv}#YEA>Cg8XZ}zC$?Sfb8vfBx##w(fJA7ZZL@*e<3?%7FY>>$oH?Oef9o2->f28 z{#}6+5B~5#+ADh?>YF}^GL5C`KVG}i3bIwOU1-q-n+1KFQKxVY;Xha5KuK^cQ#p-2 z=QtuB%`Mb3Co{b$G~HZ86nUMSKoPgDm`JcJ)CkHFzxi9oP3&Tu2 z!q(=ca>}15YfL7q5GdZLc~r@>sUV!Qy6Bo|0rBk_4hxAF^^I4AJ>r8i$ zF?Hd%VvU5wXC zd{0u-pTo-)r@^E!RRgn8kDv|yw{|qc#?FnM@$%?ZCSx*GPPa5Pb~iY8oM8D#E{IK) z=oGWmOm`PPU&Df3TRb zk`Let)vUu~c#Qk;K`?t4s;vunT6{Eeyw4CW$?Pj2oa^>$q#J>YOn1fgmY+t)c8m$lR-E8raW@vQV80L`SnW zgCj4w4ewo>!Wfo2$UEDOJ0Y__{BnqP>5rB=TeC%j`OBB@!0Wi&_*K9o8QNXO5>#QUu{{l`NsW&`r* zf#$6~SDSinp2_mJlCB>v01LfL%O*Xi)B?fN3xrJ7FA|gcfV!W+$h?ZDp&4v~ zlvXhk=kOBKDQ(7HIwl(kR&uaVkb)&W%}T$LZl54)j9_Txm21+JdV614HRJ=6UMtrx z#0khBF^X97qNo_M8?hWce@$eZz{~b-l&`~L9iBL%WS@GrEi$>J8=0AVD!-+|zp6x# z@LkK!n2x^fWjZU516i)Th0|FVh`Np)ylz%O^rhm7oN@7kjl`a=&;L@YMX%9~BR8b;rmo2j$B4DjyPvneBy(pnD#$**@m6(>CRo9ZdUP1FXxg*)|-@Zl5c}iLl1kccu2<@z3 zGV{cq_SON4Qrvs=UbukuP@^@L!R{Qwja}cSJ1y5@I2rhTVx4e?e0-ezhC)cg6(P5%#`o`tE#6`h z9;kF&!6f;W#|l7SnJ*;c8XxAsxSW{kAn(ij%6gS?+kI zgzAQIB_SM(Kl2y*(=UM4uegj#v)IOXA9)0k1vqbG$)-qq{s*tMRx-yyj0U9{!oGF( z-|t+0@hC#E;!mu^zI6%(X@r)MASblQC?l*Wqsz^^`MSf0&UGm$+$w4JTj13 z{0w|}rF3vc9iH6MML-g{;-DqwjRQE~%x3=2LA1AO9yS++dH|eDfHINQ zktjEX7Z@sLrMi(Eys>_!_y+V@o^`dyVmo!QvZr)HDG7#3KC@bbqy;s4%6TiEk2A(VL^(RkGYmn!@ zWdZZ5a!-y3CjHFGFs{a9M@Ad}XWIY~^bq$|ZM(|Aqo51%EMp!i>7zzx2+qW>j@UWs;P&Q>cOOBD$1 zn0_-mHP!hftY9^68rRaYN}pQpg;x_1TFX3%soNyAGj^of2@wF1vx9RAish#Pqd>L- zzgN6$btOET&tR&Sp-bhX^~``g6Hw=jO0}d(`3z)$H6$hEb*~oJXgCeHjIqD0{ey2u z+xA?<9tbPKz7b|}>|U4Ed&taTg6@+3M=ZFbW^4)B`aD2bytaP(ioPw!YYQd)SUYIz z8cIo5T|aB4wrd(r)f3s+ZS6jrWx8CF`$ExW<04m%i? zLL9NPlA5{Ut(hwukm=#l&>xr)!hB4y2;J>Zj{&9=h=ygp%!1lne*I_G(@f;Je>NA3>oI%NnO;4G_U3Vu~&vI7G1h_1db?rKPi|uyY zD5>?GtzkKhF@V-V&sm5dp=eE832+LJ8lDuX{AE#P^={ImY3~)}2>(*H72cC6xX?5Vum9qO91c2 zgZN~xk4Pf2RaxY%>4wOdXv_e)OiJaG8K#3cZlz^V56TjLhgx(%AKiR3nqBPsLVg^O zWg;d*n|x)$7ANN+SM-yK)>LMlRtCMpcx5{2BQ>a>euZO0)e2w6aBedti4mrTg}u}7 z%hnng?vo<8F@cZHCnn=N*q+K6e7AQd0BYw?p*M*El~X%QF7#Ih zLqT!xkM>10{@m50!Pkss@yd7|-DJcvgYQZ6HyTuJ!g0$7Fb&G!|4X7)B&VbyllLHl zO$DNHL}`M5V|fp71adRxST-UcEle)rR;dz?CVi$Xh`!z@p_vTog2iF#e?K>%^}lnN1G)%y2$EoK{H+ zk1zcW^3G)iktdjwpYf>6Ag{5tv9ofTWl-GF&2R0NzrMppfbU=D>S{YJmo1->cOLLX z;Dv%xi%VquLSRX-dRxYAV%VYmz_{AJ3^N=53AXgwMByN`+z*k9hDS39%%9-W}1BgtOeMkEEx-b9>?cSx~L9i4&;pR1yN2OPI)Y?SCy~u;3aBE+Q6+bIS*q^otWwKO0w7Rx*k@G!ftEH4(jvp=9 z?ZdtH+|trX7Iaaaum|($8f%@bmyqhB=d>ZIVw)!2;($3S;##o@<9Y6{9p0UZUy_N$ zB8$hEKIb<1`;UWynVwNv8q&@Na~6=LS<&9QU5*{%ejSdX6h9bdJWcdwRRMfZDhgT2H1`qlx6r_7_hCCY-_AeX3)--Ww=b3Gc`_xC~9fqJ_? z^20v?*X9mMT)}q>l1QKZ977AF(uE<~Bu*;I6{|*AxJ*n%ycKw0&qP*J1hV3Lb9R#1 z%;Drq<1=Z%i604#(0fG6Bm_Bt6WWAm5N3Lt41a9+`S+it(uw8oCtsTM z{7K;TX7TTAf8V!YxaZQp%-3lbI;b4JX$5?T{A+X=(Qku{fYj>z5g+fCTYsCoYj-{Rvbf&vH6|_1>Q$>`P3CM9xdh8Gu4MOs-~9Tlra;@6@|<1 z%H8Pe@;G-OG-uUhbd)Juu<#+8T&F%sRIZ-wJkIdRFRT`f@-2JwzG8s18)#Dt2x##8 zuNn;PQPfoP3m{m+oIJq3DLn%DySSUb{)lzS-9KX3{ zD09J({LE77?_zAW!0h z(l$Dn^kzx)*Q&@nYH7OdDDscipOfAdRac#3Fug}zn;U+7Jh(j}j7P9J@wC~iRPGan zo&cj;kY`L6rBlXxt>Se9<)Dy?<>{2Tj<7g=wj z?TSQZC&Q(jNJ*Z#IW4g^u!ymQ zgrYE5-KTQ26gE#aBuQ34TKte|Yljq80Zr|0>jO}I^qm?d*A*4miOwAzdmBu# z1MxhoJT4A$d&SC(9!GQ8Zo~2I4)qU84zr<`EL|lcqg_HTep<1Cz8#;hl|^D%d_8xTEVQ9oXmal<@%1bg3hB_=x<@i?^-yT%*e*8#0p%C zzU$&rp0thc>t77mP6JT9-XSSV-n!|`-ySrh=!?@!EYX|I-+Dv(qNcMxr>ZXrr!%M* zPTYIC_m)W~i=>xZDGLH(l3nnMF~S_a)1i(L+26_$>u@vA<8<_XVf9)z+5$daoCSnG)%t zq>~{kkmrb;NpHiBmP`FTX%NH$V{zH~otXu+D{`(IM0h7WitellU4(STre zn;4JMjx!}XB>uQTbK^fS25JMhs|V|5 z+u3hBR0`E1dp%01Lh}rpY3X1_)&2l3ajoYAMwQ4z0evw&AO{bd+OLrbH)Zx}(b&Bo ztKRIM*AH-(oHsC2V?;~4zT)Ny3LYuo+cZX6r4--qo)TuNQN#Vlz(&hj;3a9Kgo?-V z_X7TMtB;({n{V%9aGBBm*X5t2n<&=%Q}=(rV_wZnfKX|^_*E<)N4Xk&%5dPrKm zb+2~}d&;L_r+}__@iOqUqbtsFg6&v3gkg*b-ZpFAQwyHX(ayho&Gh~`6W5^KImklP z+3Yyg`swilqgh64qr#TbcK215Vf^pIu&d}Ru!uud`Q%Tr`3{w2jZ@x;U8*HpN5?}b znbxlrFwOtU2t}cwCoe8tM>kT^77%#~iK<4LxOp%m*lEK9f->|C>1R3AUvbDiyFMtT zgUM_&g-rbX^m{@5Sye^9Qkh+plWmJ1$!5ROcvP{wl~gLTxAz$iqIdyiHn{D|g%ad*6jzy5+(7O(C61BY3)p?;Ns^2<|5W^D+;kV<%JVc=tS zCK3N*F><2}@HwSFJKy{B)%$(x_l`ebQNGg0ZJ?DTym&cSAy_^yMbuaM^iNilO$Cw+ z*x7Sq^K06XRebJF`dWG9nFtxKSPNV~uKb?&yV)s{Z!G>WT5)$AjOzHaWpucl(A65@ z=36ad>*|wzuZjw;T;%3mg>~t%O}DKa$^h9G4r&sPo=bk{Al?cbO07L9Hr868Hqv<) zl0Rmqe<+2S4TGvx1eY_|$VoU_K`xHW9jdYTZkkcMz#B?_tHE*4&$R&vY~xtGjN)C@ z9NrET>3Oj1?rNQ?f8FX4}B$LSYK5We?RP&WcNW@AL z!<{>77Nj=Sk}K7-GTE=7)nnL$rI;&1dvrpr`qkGA3>Ax2522iecF!A_j~SW_Fl1#v zE5wWn=iW&hythuq^lY=2z*=*ThHq%zZ81UVJX*e>8E-7W?wg z;GD_n*C55c#KVD>+hE!)Ht16hDu=_y*5BMWTQ-^`q%<$GjU~HJ`8u*d_r3&Aka1aq zsLO@ewz0dWqmIA?7la;l*NTg`%|w@IYkIyPw`hSh{3=@$^3i^v?#kRq5$+810dG|2 z7Zc9ovC_O|4c$)>Xe;&E*mE0B`1=w(EF*2qgu{KBzEq##jFudLkxw7M%_pAxKH9SF zIct2iemu(=ZT(!W`>}p;0DmSQw$($_P%)U^H5uhxs+3m!>iA)k8mpOaeUhFfNq~q> zu!M`oW=1U00~bF%j*nJb)Oezb;v9I&hU8)u%??)QWwCXaf1rX|YG*I+b($e@(TFiL zcY%X>^heqR%lQZ86^C7$=hPQ>?*s@k@@1pJQh#AFTZ@c@oj*e=5?)S7Ej3G#+RHds z

      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 z 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

      }%iQ?vuwP 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 OLuc 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 H_xS$+)*_>2 diff --git a/fastertransformer/CMakeLists.txt b/fastertransformer/CMakeLists.txt index 239d97ba3..de18cf29f 100644 --- a/fastertransformer/CMakeLists.txt +++ b/fastertransformer/CMakeLists.txt @@ -13,13 +13,15 @@ # limitations under the License. cmake_minimum_required(VERSION 3.8) add_subdirectory(cuda) +add_subdirectory(utils) add_subdirectory(gemm_test) if(BUILD_TF) add_subdirectory(tf_op) endif() -if(BUILD_THE OR BUILD_THS) +if(BUILD_PYT) add_subdirectory(th_op) endif() -add_subdirectory(trt_fused_multihead_attention) \ No newline at end of file +add_subdirectory(trt_fused_multihead_attention) +add_subdirectory(triton_backend) \ No newline at end of file diff --git a/fastertransformer/bert_encoder_transformer.h b/fastertransformer/bert_encoder_transformer.h old mode 100755 new mode 100644 index b28c96f1c..bc76a9993 --- a/fastertransformer/bert_encoder_transformer.h +++ b/fastertransformer/bert_encoder_transformer.h @@ -21,19 +21,20 @@ #pragma once #include -#include "fastertransformer/allocator.h" +#include "fastertransformer/utils/allocator.h" +#include "fastertransformer/utils/common_structure.h" #include "fastertransformer/cuda/cuda_kernels.h" #include "fastertransformer/cuda/cuda_int8_kernels.h" #include "fastertransformer/cuda/open_attention.h" -#include "fastertransformer/common_structure.h" #include "fastertransformer/gemm_test/encoder_gemm_func.h" #include "fastertransformer/gemm_test/encoder_igemm_func.h" +#include "fastertransformer/utils/functions.h" namespace fastertransformer { template -class EncoderInitParam +class BertInitParam { public: const T *from_tensor = nullptr; @@ -55,11 +56,15 @@ class EncoderInitParam int valid_word_num = -1; int layer_idx = 0; int layer_num = 12; - - //First 80 are for activation amaxs. - //For each activation amax, there are 4 values: amax, amax/127.0f, amax/127.0f/127.0f, 127.0f/amax -- input_amax 0-3 , Q_aftergemm_amax 4-7, Qbias_amax 8-11, K_aftergemm_amax 12-15, Kbias_amax 16-19, V_aftergemm_amax 20-23, Vbias_amax 24-27, bmm1_amax 28-31, Softmax_amax 32-35, bmm2_amax 36-39, Proj_aftergemm_scale 40-43, ProjBiasNorm_amax 44-47, FC1_aftergemm_amax 48-51, F1Bias_amax 52-55, FC2_aftergemm_amax 56-59, F2BiasNorm_amax 60-63, reserve 64-79 - //following by kernel amaxs : query_weight_amax_list, key_weight_amax_list, value_weight_amax_list, proj_weight_amax_list, FC1_weight_amax_list, FC2_weight_amax_list - //following by int8 gemm deQ scale list: Q_deQ_scale, K_deQ_scale, V_deQ_scale, bmm1_deQ_scale, bmm2_deQ_scale, FC0_deQ_scale, FC1_deQ_scale, FC2_deQ_scale + + //Part 1: + // First 80 are for activation amaxs. For each activation amax, there are 4 values: amax, amax/127.0f, amax/127.0f/127.0f, 127.0f/amax -- input_amax 0-3 , Q_aftergemm_amax 4-7, Qbias_amax 8-11, K_aftergemm_amax 12-15, Kbias_amax 16-19, V_aftergemm_amax 20-23, Vbias_amax 24-27, bmm1_amax 28-31, Softmax_amax 32-35, bmm2_amax 36-39, Proj_aftergemm_scale 40-43, ProjBiasNorm_amax 44-47, FC1_aftergemm_amax 48-51, F1Bias_amax 52-55, FC2_aftergemm_amax 56-59, F2BiasNorm_amax 60-63, reserve 64-79 + //Part 2: + // Kernel amaxs, for each kernel amax list, there are output_channel values : query_weight_amax_list, key_weight_amax_list, value_weight_amax_list, proj_weight_amax_list, FC1_weight_amax_list, FC2_weight_amax_list + //Part 3: + // Int8 gemm deQFactor list (8 values): Q_deQ_scale, K_deQ_scale, V_deQ_scale, bmm1_deQ_scale, bmm2_deQ_scale, FC0_deQ_scale, FC1_deQ_scale, FC2_deQ_scale + //Part 4: + // Amax used in trt fused mha kernel (3 values) : QKVbias_amax, Softmax_amax, bmm2_amax const float *amaxList = nullptr; const int* trt_seqlen_offset = nullptr; int trt_seqlen_size = -1; @@ -90,25 +95,20 @@ class BertEncoderTransformer IAllocator *allocator_ = NULL; typename Traits_::MultiHeadAttention *attention_ = NULL; typedef typename Traits_::DataType DataType_; - EncoderInitParam param_; + BertInitParam param_; - const cudaDataType_t computeType_ = Traits_::computeType; const cudaDataType_t AType_ = Traits_::AType; const cudaDataType_t BType_ = Traits_::BType; const cudaDataType_t CType_ = Traits_::CType; - int cublasAlgo_[3]; - std::map cublasLtAlgoMap_; - std::map cublasAlgoMap_; + std::map cublasAlgoMap_; std::map parameterMap_; DataType_ *buf_ = NULL; DataType_ *attr_out_buf_; DataType_ *attr_matmul_buf_; DataType_ *inter_matmul_buf_; - DataType_ *attr_out_tmp_buf_; - - DataType_ *out_tmp_buf_; - DataType_ *from_tensor_tmp_buf_; + DataType_ *attr_matmul_unnormed_buf_; + void* cublas_workspace_ = NULL; int batch_size_; int from_seq_len_; @@ -116,17 +116,18 @@ class BertEncoderTransformer int head_num_; int size_per_head_; + int sm_; bool allow_gemm_test_ = false; bool use_ORDER_COL32_2R_4R4_ = false; - //for int8 quantization const float *FC0_weight_amax_list, *FC1_weight_amax_list, *FC2_weight_amax_list; - float int8O_gemm_deQ_scale_list[INT8O_GEMM_NUM]; - const float *bmm2_amax_ptr, *ProjBiasNorm_amax_ptr, *F1Bias_amax_ptr, *F2BiasNorm_amax_ptr, *to_tensor_amax_ptr, *Proj_aftergemm_amax_ptr, *F1_aftergemm_amax_ptr, *F2_aftergemm_amax_ptr; + float scale_list[INT8O_GEMM_NUM+TRT_FUSED_MHA_AMAX_NUM]; + const float *bmm2_amax_ptr, *ProjBiasNorm_amax_ptr, *F1Bias_amax_ptr, *F2BiasNorm_amax_ptr, *to_tensor_amax_ptr, *Proj_aftergemm_amax_ptr, *F1_aftergemm_amax_ptr, *F2_aftergemm_amax_ptr, *int8O_gemm_deQ_scale_list; //int8_mode == 0 -- not use int8 - //int8_mode == 1 -- use int8 without quantized residual - //int8_mode == 2 -- use int8 with quantized residual + //int8_mode == 1 -- use int8; without quantized residual; when (batch*seqLen >= 512) or (seqLen % 32 !=0 ), using trt fused mha + //int8_mode == 2 -- use int8; with quantized residual; with trt fused mha + //int8_mode == 3 -- use int8; with quantized residual; without trt fused mha int int8_mode_; int layer_idx_; int layer_num_; @@ -143,11 +144,11 @@ class BertEncoderTransformer layer_idx_ = layer_idx; } - int calBufSizeInByte(int batch_size, int seq_len, int head_num, int size_per_head, int int8_mode){ - int m = batch_size*seq_len; - int n = head_num*size_per_head; - int k = n; - int normal_buf_size; + size_t calBufSizeInByte(int batch_size, int seq_len, int head_num, int size_per_head, int int8_mode){ + size_t m = batch_size*seq_len; + size_t n = head_num*size_per_head; + size_t k = n; + size_t normal_buf_size; if (int8_mode != 0){ //transA_from_tensor & transformer_out_tmp_DataType normal_buf_size = m*k*sizeof(DataType_) + @@ -163,7 +164,7 @@ class BertEncoderTransformer m*n*sizeof(DataType_); } else{ - normal_buf_size = sizeof(DataType_) * (m*n) * (6 + 3); + normal_buf_size = sizeof(DataType_) * (m*n) * 7 + ((sizeof(half) == sizeof(DataType_)) ? CUBLAS_WORKSPACE_SIZE : 0); } return normal_buf_size; } @@ -172,12 +173,12 @@ class BertEncoderTransformer { char mark[1000]; bool parameterInMap; + int dataType = is_fp16 == 0 ? FLOAT_DATATYPE : HALF_DATATYPE; if (int8_mode != 0) { - int8_mode = 1; - is_fp16 = 1; + dataType = INT8_DATATYPE; } - sprintf(mark, "%d_%d_%d_%d_%d_%d", batch_size, seq_len, head_num, size_per_head, int8_mode, is_fp16); + sprintf(mark, "%d_%d_%d_%d_%d", batch_size, seq_len, head_num, size_per_head, dataType); if (parameterMap_.find(std::string(mark)) != parameterMap_.end()) parameterInMap = true; else @@ -211,65 +212,6 @@ class BertEncoderTransformer buffer = reinterpret_cast(allocator->malloc(buf_size_in_byte, false)); } - void readAlgoFromConfig(int int8_mode) - { - - if (int8_mode != 0) - { - cublasLtAlgoMap_.clear(); - parameterMap_.clear(); - FILE* fd = fopen(IGEMM_CONFIG, "r"); - if (fd == NULL) - return; - int batchCount2, m2, n2, k2, algoId, customOption, tile, splitK_val, swizzle, reductionScheme, workspaceSize, stages; - int batch_size, seq_len, head_num, size_per_head; - while(fscanf(fd,"%d %d %d %d ### %d %d %d %d %d %d %d %d %d %d %d %d\n", &batch_size, &seq_len, &head_num, &size_per_head, &batchCount2, &m2, &n2, &k2, &algoId, &customOption, &tile, &splitK_val, &swizzle, &reductionScheme, &workspaceSize, &stages)!=EOF) - { - char mark[256]; - sprintf(mark, "%d_%d_%d_%d_1_1", batch_size, seq_len, head_num, size_per_head); - std::string markStr0(mark); - sprintf(mark, "%d_%d_%d_%d", batchCount2, m2, n2, k2); - std::string markStr(mark); - //workspaceSize should be zero - if (cublasLtAlgoMap_.find(markStr) == cublasLtAlgoMap_.end() && workspaceSize == 0) - { - parameterMap_[markStr0] = 1; - cublasLtAlgoMap_[markStr].algoId = algoId; - cublasLtAlgoMap_[markStr].customOption = customOption; - cublasLtAlgoMap_[markStr].tile = tile; - cublasLtAlgoMap_[markStr].splitK_val = splitK_val; - cublasLtAlgoMap_[markStr].swizzle = swizzle; - cublasLtAlgoMap_[markStr].reductionScheme = reductionScheme; - cublasLtAlgoMap_[markStr].workspaceSize = workspaceSize; - cublasLtAlgoMap_[markStr].stages = stages; - } - } - fclose(fd); - } - else - { - cublasAlgoMap_.clear(); - parameterMap_.clear(); - FILE* fd = fopen(GEMM_CONFIG, "r"); - if (fd == NULL) - return; - int batchCount2, m2, n2, k2, is_fp16, algoId; - int batch_size, seq_len, head_num, size_per_head; - float runtime; - while(fscanf(fd,"%d %d %d %d ### %d %d %d %d %d %d %f\n", &batch_size, &seq_len, &head_num, &size_per_head, &batchCount2, &m2, &n2, &k2, &is_fp16, &algoId, &runtime)!=EOF) - { - char mark[256]; - sprintf(mark, "%d_%d_%d_%d_0_%d", batch_size, seq_len, head_num, size_per_head, is_fp16); - std::string markStr0(mark); - parameterMap_[markStr0] = 1; - sprintf(mark, "%d_%d_%d_%d_%d", batchCount2, m2, n2, k2, is_fp16); - std::string markStr(mark); - cublasAlgoMap_[markStr] = algoId; - } - fclose(fd); - } - } - bool gemmTest(int batch_size, int seq_len, int head_num, int size_per_head, int int8_mode, int is_fp16) { @@ -283,7 +225,7 @@ class BertEncoderTransformer if (!checkParameterInMap(batch_size, seq_len, head_num, size_per_head, int8_mode, is_fp16)) { - readAlgoFromConfig(int8_mode); + readAlgoFromConfig(int8_mode, cublasAlgoMap_, parameterMap_); } else { @@ -302,7 +244,7 @@ class BertEncoderTransformer { generate_encoder_igemm_config(batch_size, seq_len, head_num, size_per_head, gemm_test_buf); freeBufferForGemmTest(allocator_, gemm_test_buf); - readAlgoFromConfig(int8_mode); + readAlgoFromConfig(int8_mode, cublasAlgoMap_, parameterMap_); hasChangedConfig = true; } } @@ -320,7 +262,7 @@ class BertEncoderTransformer if (!checkParameterInMap(batch_size, seq_len, head_num, size_per_head, int8_mode, is_fp16)) { - readAlgoFromConfig(int8_mode); + readAlgoFromConfig(int8_mode, cublasAlgoMap_, parameterMap_); } else { @@ -342,7 +284,7 @@ class BertEncoderTransformer else generate_encoder_gemm_config(batch_size, seq_len, head_num, size_per_head, gemm_test_buf); freeBufferForGemmTest(allocator_, gemm_test_buf); - readAlgoFromConfig(int8_mode); + readAlgoFromConfig(int8_mode, cublasAlgoMap_, parameterMap_); hasChangedConfig = true; } } @@ -355,60 +297,6 @@ class BertEncoderTransformer return hasChangedConfig; } - void getBestAlgoFromMap(int batch_size, int seq_len, int head_num, int size_per_head, int is_fp16) - { - int m = batch_size * seq_len; - int n = head_num * size_per_head; - int k = n; - char mark[256]; - int foundAlgo = 0; - sprintf(mark, "1_%d_%d_%d_%d", m, n, k, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) - { - cublasAlgo_[0] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - } - if (foundAlgo == 1) - { - sprintf(mark, "1_%d_%d_%d_%d", m, 4*n, k, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) - { - cublasAlgo_[1] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - } - if (foundAlgo == 2) - { - sprintf(mark, "1_%d_%d_%d_%d", m, n, 4*k, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) - { - cublasAlgo_[2] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - } - } - } - - if (foundAlgo != 3) - { - printf("[WARNING][BertEncoderTransformer] Loading GEMM algorithms error, using default GEMM algorithms!\n"); - if (is_fp16 == 0) - { - cublasAlgo_[0] = -1; - cublasAlgo_[1] = -1; - cublasAlgo_[2] = -1; - } - else - { - cublasAlgo_[0] = 99; - cublasAlgo_[1] = 99; - cublasAlgo_[2] = 99; - } - } - } - - //free buffer for BertEncoderTransformer void freeBuffer() { @@ -465,34 +353,28 @@ class BertEncoderTransformer int n = k; int buf_size = m * n; - int buf_size_in_byte = calBufSizeInByte(batch_size_, from_seq_len_, head_num_, size_per_head_, int8_mode_); + size_t buf_size_in_byte = calBufSizeInByte(batch_size_, from_seq_len_, head_num_, size_per_head_, int8_mode_); //allocate buffer if (int8_mode_ != 0){ - //check if seq_len is a multiple of 32 - if (from_seq_len_ % 32 != 0){ - printf("[ERROR] seq_len should be a multiple of 32 when using int8 quantization\n"); - exit(-1); - } - buf_ = reinterpret_cast(allocator_->malloc(buf_size_in_byte, false)); if (buf_ == nullptr) throw std::runtime_error(std::string("Allocator failed to allocate internal buffer.")); - attr_out_buf_ = (DataType_*)(((void*)buf_) + m*k*sizeof(DataType_) + m*k*sizeof(int8_t) + 3*n*k*sizeof(int8_t) + 4*m*k * sizeof(int)); + attr_out_buf_ = (DataType_*)(((char*)buf_) + m*k*sizeof(DataType_) + m*k*sizeof(int8_t) + 3*n*k*sizeof(int8_t) + 4*m*k * sizeof(int)); attr_matmul_buf_ = attr_out_buf_ + buf_size; inter_matmul_buf_ = attr_matmul_buf_ + buf_size; - int8_from_tensor_tmp_ = (int8_t *)(((void*)buf_) + m*k*(sizeof(DataType_))); + int8_from_tensor_tmp_ = (int8_t *)(((char*)buf_) + m*k*(sizeof(DataType_))); attr_matmul_buf_tmp_ = int8_from_tensor_tmp_; transformer_out_tmp_int8_ = int8_from_tensor_tmp_; transA_from_tensor_tmp_ = (DataType_*)buf_; transformer_out_tmp_DataType_ = transA_from_tensor_tmp_; - int_buf_ = (int32_t*)(((void*)buf_) + (m * k) * (sizeof(DataType_) + sizeof(int8_t)) + 3*n*k*sizeof(int8_t)); + int_buf_ = (int32_t*)(((char*)buf_) + (m * k) * (sizeof(DataType_) + sizeof(int8_t)) + 3*n*k*sizeof(int8_t)); - tmp_DataType_ = (DataType_*)(((void*)buf_) + m*k*(sizeof(DataType_)+sizeof(int8_t)) + 3*n*k*sizeof(int8_t) + 4*m*k * sizeof(int32_t) + 6*m*n*sizeof(DataType_)); + tmp_DataType_ = (DataType_*)(((char*)buf_) + m*k*(sizeof(DataType_)+sizeof(int8_t)) + 3*n*k*sizeof(int8_t) + 4*m*k * sizeof(int32_t) + 6*m*n*sizeof(DataType_)); tmp_int8_ = (int8_t*)tmp_DataType_; } else{ @@ -500,13 +382,21 @@ class BertEncoderTransformer if (buf_ == nullptr) throw std::runtime_error(std::string("Allocator failed to allocate internal buffer.")); - attr_out_buf_ = buf_; + if (sizeof(half) == sizeof(DataType_)) + { + //cublas_workspace_ should be the start pointer of cudaMalloc() + //to ensure 16B alignemnet + cublas_workspace_ = buf_; + attr_out_buf_ = (DataType_*)((char *)cublas_workspace_ + CUBLAS_WORKSPACE_SIZE); + } + else + { + cublas_workspace_ = nullptr; + attr_out_buf_ = (DataType_*)buf_; + } attr_matmul_buf_ = attr_out_buf_ + buf_size; inter_matmul_buf_ = attr_matmul_buf_ + buf_size; - - attr_out_tmp_buf_ = inter_matmul_buf_ + 4 * buf_size; - out_tmp_buf_ = attr_out_tmp_buf_ + buf_size; - from_tensor_tmp_buf_ = out_tmp_buf_ + buf_size; + attr_matmul_unnormed_buf_ = inter_matmul_buf_ + 4 * buf_size; } } @@ -523,14 +413,8 @@ class BertEncoderTransformer size_per_head_, int8_mode_, is_fp16); } - if (int8_mode_ == 0) - { - //get best FP16/FP32 algo from map - getBestAlgoFromMap(batch_size_, from_seq_len_, head_num_, size_per_head_, is_fp16); - } - //allocate buffer for attention_ - attention_->allocateBuffer(allocator, batch_size_, from_seq_len_, to_seq_len, + attention_->allocateBuffer(allocator, cublas_workspace_, batch_size_, from_seq_len_, to_seq_len, head_num_, size_per_head_, hasChangedConfig, use_trt_kernel); } catch (std::runtime_error &error) @@ -549,48 +433,33 @@ class BertEncoderTransformer try { - if (int8_mode_ != 0){ - - // check sm version -#ifdef CUDA11_MODE - int device{-1}; - cudaGetDevice(&device); - cudaDeviceProp props; - cudaGetDeviceProperties(&props, device); - if (props.major * 10 + props.minor >= 80){ - use_ORDER_COL32_2R_4R4_ = true; - } -#endif + sm_ = getSMVersion(); + if (sm_ >= 80){ + use_ORDER_COL32_2R_4R4_ = true; + } + if (sm_ < 75 && int8_mode_ != 0){ + printf("[ERROR][BertEncoderTransformer] int8 mode only works with sm >= 75.\n"); + exit(-1); + } - //read best algos from config - int isConfigExist = access(IGEMM_CONFIG, 0); - if (isConfigExist == -1) - { - if (!allow_gemm_test_) - { - printf("[WARNING][BertEncoderTransformer] %s is not found; using default GEMM algo\n", IGEMM_CONFIG); - } - } - else + int isConfigExist = -1; + if (int8_mode_ != 0) + isConfigExist = access(IGEMM_CONFIG, 0); + else + isConfigExist = access(GEMM_CONFIG, 0); + if (isConfigExist == -1) + { + if (!allow_gemm_test_) { - readAlgoFromConfig(int8_mode_); + printf("[WARNING][BertEncoderTransformer] %s is not found; using default GEMM algo\n", int8_mode_ != 0 ? IGEMM_CONFIG : GEMM_CONFIG); } } - else{ - int isConfigExist = access(GEMM_CONFIG, 0); - if (isConfigExist == -1) - { - if (!allow_gemm_test_) - { - printf("[WARNING][BertEncoderTransformer] %s is not found; using default GEMM algo\n", GEMM_CONFIG); - } - } - else - { - readAlgoFromConfig(int8_mode_); - } + else + { + readAlgoFromConfig(int8_mode_, cublasAlgoMap_, parameterMap_); } - attention_ = new typename Traits_::MultiHeadAttention(int8_mode_, allow_gemm_test_, use_ORDER_COL32_2R_4R4_); + + attention_ = new typename Traits_::MultiHeadAttention(int8_mode_, allow_gemm_test_, use_ORDER_COL32_2R_4R4_, sm_); } catch (std::runtime_error &error) { @@ -598,6 +467,22 @@ class BertEncoderTransformer } } + BertEncoderTransformer(const BertEncoderTransformer *transformer) + { +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + sm_ = transformer->sm_; + use_ORDER_COL32_2R_4R4_ = transformer->use_ORDER_COL32_2R_4R4_; + int8_mode_ = transformer->int8_mode_; + allow_gemm_test_ = transformer->allow_gemm_test_; + + cublasAlgoMap_ = transformer->cublasAlgoMap_; + parameterMap_ = transformer->parameterMap_; + + attention_ = new typename Traits_::MultiHeadAttention(transformer->attention_); + } + void genTransATensorAndInt8TensorForFirstLayer(){ const int m = param_.sequence_id_offset == nullptr ? batch_size_ * from_seq_len_ : param_.valid_word_num; const int k = head_num_ * size_per_head_; @@ -607,7 +492,7 @@ class BertEncoderTransformer transA_from_tensor_ = (const DataType_*)transA_from_tensor_tmp_; quantized_kernelLauncher(int8_from_tensor_tmp_, transA_from_tensor_, m*k, to_tensor_amax_ptr+3, param_.stream); } - else + else if (int8_mode_ == 2 || int8_mode_ == 3) { transposeMatrix_colMajorToCOL32_quantize_kernelLauncher(int8_from_tensor_tmp_, param_.from_tensor, k, m, to_tensor_amax_ptr+3, param_.stream); } @@ -619,7 +504,7 @@ class BertEncoderTransformer * We will keep the Ctor empty to ensure the sub classes follow the same init routine. * Please be aware that no dynamic memory allocation should be placed **/ - void initialize(EncoderInitParam param) + void initialize(BertInitParam param) { #ifndef NDEBUG PRINT_FUNC_NAME_(); @@ -645,10 +530,14 @@ class BertEncoderTransformer FC0_weight_amax_list = param_.amaxList + ACTIVATION_AMAX_NUM + 3*hidden_dim; FC1_weight_amax_list = FC0_weight_amax_list + hidden_dim; FC2_weight_amax_list = FC1_weight_amax_list + 4*hidden_dim; - - if (int8_mode_ == 2) - check_cuda_error(cudaMemcpyAsync(int8O_gemm_deQ_scale_list, FC2_weight_amax_list + hidden_dim, INT8O_GEMM_NUM*sizeof(float), cudaMemcpyDeviceToHost, param_.stream)); + //This D2H copy operation will cause performance degradation + if ( (int8_mode_ == 1 && ((batch_size_*from_seq_len_ >= 512) || (from_seq_len_ % 32 != 0)) ) || int8_mode_ == 2 || int8_mode_ == 3) + { + //copy (int8O_gemm_deQ_scale_list + trt_fused_mha_amax_list) amax into scale_list + check_cuda_error(cudaMemcpyAsync(scale_list, FC2_weight_amax_list + hidden_dim, (INT8O_GEMM_NUM+TRT_FUSED_MHA_AMAX_NUM)*sizeof(float), cudaMemcpyDeviceToHost, param_.stream)); + int8O_gemm_deQ_scale_list = scale_list; + } int k = hidden_dim; const int m = param_.sequence_id_offset == nullptr ? batch_size_ * from_seq_len_ : param_.valid_word_num; @@ -658,10 +547,10 @@ class BertEncoderTransformer else { transA_from_tensor_ = param_.from_tensor; - if (int8_mode_ == 2){ + if (int8_mode_ == 2 || int8_mode_ == 3){ int8_from_tensor_ = (const int8_t*)transA_from_tensor_; } - else{ + else if (int8_mode_ == 1){ quantized_kernelLauncher(int8_from_tensor_tmp_, transA_from_tensor_, m*k, to_tensor_amax_ptr + 3, param_.stream); int8_from_tensor_ = (const int8_t*)(int8_from_tensor_tmp_); } @@ -669,11 +558,11 @@ class BertEncoderTransformer multi_head_init_param.int8_from_tensor = int8_from_tensor_; - multi_head_init_param.cublaslt_handle = param_.cublaslt_handle; - multi_head_init_param.amaxList = param_.amaxList; multi_head_init_param.int8O_gemm_deQ_scale_list = int8O_gemm_deQ_scale_list; + + multi_head_init_param.trt_fused_mha_amax_list = scale_list + INT8O_GEMM_NUM; } multi_head_init_param.from_tensor = param.from_tensor; @@ -682,12 +571,13 @@ class BertEncoderTransformer multi_head_init_param.attr_mask = param.attr_mask; multi_head_init_param.stream = param.stream; multi_head_init_param.cublas_handle = param.cublas_handle; + multi_head_init_param.cublaslt_handle = param_.cublaslt_handle; multi_head_init_param.attr_out = attr_out_buf_; multi_head_init_param.valid_word_num = param.valid_word_num; multi_head_init_param.sequence_id_offset = param.sequence_id_offset; multi_head_init_param.trt_seqlen_offset = param_.trt_seqlen_offset; multi_head_init_param.trt_seqlen_size = param_.trt_seqlen_size; - + attention_->initialize(multi_head_init_param); } @@ -719,16 +609,16 @@ class BertEncoderTransformer { cublasLtMM_withAlgo(int_buf_, 1, m, n, k, m*k, n*k, m*n, (int8_t*)attr_out_buf_, (int8_t*)(param_.self_attention. attention_output_weight.kernel), - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); add_bias_input_layernorm_COL32_int32I_DataTypeO_kernelLauncher(attr_matmul_buf_, int_buf_, transA_from_tensor_, param_.self_attention.attention_output_weight.bias, param_.self_layernorm.gamma, param_.self_layernorm.beta, m, n, param_.stream, FC0_weight_amax_list, bmm2_amax_ptr); } - else + else if (int8_mode_ == 2 || int8_mode_ == 3) { cublasLtMM_withAlgo_int8IO((int8_t*)int_buf_, 1, m, n, k, m*k, n*k, m*n, int8O_gemm_deQ_scale_list[5], (int8_t*)attr_out_buf_, (int8_t*)(param_.self_attention. attention_output_weight.kernel), - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); add_bias_input_layernorm_COL32_int8IO_kernelLauncher((int8_t*)attr_matmul_buf_, (int8_t*)int_buf_, int8_from_tensor_, param_.self_attention.attention_output_weight.bias, param_.self_layernorm.gamma, param_.self_layernorm.beta, @@ -747,16 +637,16 @@ class BertEncoderTransformer quantized_kernelLauncher(attr_matmul_buf_tmp_, attr_matmul_buf_, k*m, ProjBiasNorm_amax_ptr + 3, param_.stream); cublasLtMM_withAlgo(int_buf_, 1, m, n, k, m*k, n*k, m*n, attr_matmul_buf_tmp_, (int8_t*)(param_.ffn.intermediate_weight.kernel), - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); add_bias_act_COL32_int32I_int8O_kernelLauncher((int8_t*)inter_matmul_buf_, int_buf_, param_.ffn.intermediate_weight.bias, m, n, param_.stream, FC1_weight_amax_list, ProjBiasNorm_amax_ptr+2, F1Bias_amax_ptr+3); } - else + else if (int8_mode_ == 2 || int8_mode_ == 3) { cublasLtMM_withAlgo_int8IO((int8_t*)int_buf_, 1, m, n, k, m*k, n*k, m*n, int8O_gemm_deQ_scale_list[6], (int8_t*)attr_matmul_buf_, (int8_t*)(param_.ffn.intermediate_weight.kernel), - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); add_bias_act_COL32_int8IO_kernelLauncher((int8_t*)inter_matmul_buf_, (int8_t*)int_buf_, param_.ffn.intermediate_weight.bias, m, n, param_.stream, F1_aftergemm_amax_ptr+1, F1Bias_amax_ptr+3); @@ -774,7 +664,7 @@ class BertEncoderTransformer { cublasLtMM_withAlgo(int_buf_, 1, m, n, k, m*k, n*k, m*n, (int8_t*)inter_matmul_buf_, (int8_t*)(param_.ffn.output_weight.kernel), - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); if (layer_idx_ != layer_num_ - 1) { add_bias_input_layernorm_COL32_int32I_DataTypeO_kernelLauncher(param_.transformer_out, int_buf_, attr_matmul_buf_, @@ -791,11 +681,11 @@ class BertEncoderTransformer transposeMatrix_COL32ToColMajor_kernelLauncher(param_.transformer_out, transformer_out_tmp_DataType_, m, n, param_.stream); } } - else + else if (int8_mode_ == 2 || int8_mode_ == 3) { cublasLtMM_withAlgo_int8IO((int8_t*)int_buf_, 1, m, n, k, m*k, n*k, m*n, int8O_gemm_deQ_scale_list[7], (int8_t*)inter_matmul_buf_, (int8_t*)(param_.ffn.output_weight.kernel), - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); if (layer_idx_ != layer_num_ - 1) { add_bias_input_layernorm_COL32_int8IO_kernelLauncher((int8_t*)param_.transformer_out, (int8_t*)int_buf_, (int8_t*)attr_matmul_buf_, @@ -819,21 +709,20 @@ class BertEncoderTransformer #endif } else{ - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.attention_output_weight.kernel, AType_, n, - attr_out_buf_, BType_, k, - &beta, - attr_matmul_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); + cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, &alpha, + param_.self_attention.attention_output_weight.kernel, AType_, n, + attr_out_buf_, BType_, k, + &beta, (DataType_ *)attr_matmul_buf_, CType_, n, + param_.stream, cublasAlgoMap_, sm_, cublas_workspace_); + add_bias_input_layernorm_kernelLauncher(attr_matmul_buf_, - param_.from_tensor, param_.self_attention.attention_output_weight.bias, + param_.from_tensor, + param_.self_attention.attention_output_weight.bias, param_.self_layernorm.gamma, - param_.self_layernorm.beta, m, n, param_.stream); - + param_.self_layernorm.beta, + m, n, param_.stream); + #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); @@ -841,18 +730,14 @@ class BertEncoderTransformer n *= 4; - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.ffn.intermediate_weight.kernel, AType_, n, - attr_matmul_buf_, BType_, k, - &beta, - inter_matmul_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[1]))); - - add_bias_act_kernelLauncher(inter_matmul_buf_, param_.ffn.intermediate_weight.bias, m, n, param_.stream); + cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, &alpha, + param_.ffn.intermediate_weight.kernel, AType_, n, + attr_matmul_buf_, BType_, k, + &beta, (DataType_ *)inter_matmul_buf_, CType_, n, + param_.stream, cublasAlgoMap_, sm_, cublas_workspace_); + + add_bias_act_kernelLauncher(inter_matmul_buf_, param_.ffn.intermediate_weight.bias, m, n, ActivationType::GELU, param_.stream); #ifndef NDEBUG cudaDeviceSynchronize(); @@ -862,18 +747,15 @@ class BertEncoderTransformer n = k; k *= 4; - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.ffn.output_weight.kernel, AType_, n, - inter_matmul_buf_, BType_, k, - &beta, - param_.transformer_out, CType_, n, - computeType_, - static_cast(cublasAlgo_[2]))); + cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, &alpha, + param_.ffn.output_weight.kernel, AType_, n, + inter_matmul_buf_, BType_, k, + &beta, (DataType_ *)(param_.transformer_out), CType_, n, + param_.stream, cublasAlgoMap_, sm_, cublas_workspace_); - add_bias_input_layernorm_kernelLauncher(param_.transformer_out, attr_matmul_buf_, + add_bias_input_layernorm_kernelLauncher(param_.transformer_out, + attr_matmul_buf_, param_.ffn.output_weight.bias, param_.ffn_layernorm.gamma, param_.ffn_layernorm.beta, @@ -891,16 +773,6 @@ class BertEncoderTransformer } } - void trt_initialize(DataType_ *from_tensor, DataType_ *to_tensor, DataType_ *attr_mask, DataType_ *out, cudaStream_t stream, cublasHandle_t cublas_handle) - { - param_.from_tensor = from_tensor; - param_.to_tensor = to_tensor; - param_.stream = stream; - param_.transformer_out = out; - param_.cublas_handle = cublas_handle; - attention_->trt_initialize(from_tensor, to_tensor, attr_mask, stream, param_.cublas_handle); - } - ~BertEncoderTransformer() { if (buf_ != NULL) @@ -918,3 +790,4 @@ class BertEncoderTransformer }; } // namespace fastertransformer + diff --git a/fastertransformer/common.h b/fastertransformer/common.h deleted file mode 100644 index bcc628775..000000000 --- a/fastertransformer/common.h +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include "stdio.h" - -#define MAX_CONFIG_NUM 20 -#define GEMM_NUM 6 -#define COL32_ 32 -#define ACTIVATION_AMAX_NUM 80 -#define INT8O_GEMM_NUM 8 -#define GEMM_CONFIG "gemm_config.in" -#define IGEMM_CONFIG "igemm_config.in" - -#include "fastertransformer/gemm_test/encoder_gemm_func.h" -#include "fastertransformer/gemm_test/encoder_igemm_func.h" - -namespace fastertransformer -{ - -enum class OperationType -{ - FP32, - FP16 -}; -enum class AllocatorType -{ - CUDA, - TF, - TH -}; - -#define PRINT_FUNC_NAME_() \ - do \ - { \ - std::cout << "[FT][CALL] " << __FUNCTION__ << " " << std::endl; \ - } while (0) - -static const char *_cudaGetErrorEnum(cudaError_t error) -{ - return cudaGetErrorString(error); -} - -static inline __device__ int8_t float_to_int8_rn(float x) -{ - uint32_t dst; - asm volatile("cvt.rni.sat.s8.f32 %0, %1;" - : "=r"(dst) - : "f"(x)); - return reinterpret_cast(dst); -} - -static const char *_cudaGetErrorEnum(cublasStatus_t error) -{ - switch (error) - { - case CUBLAS_STATUS_SUCCESS: - return "CUBLAS_STATUS_SUCCESS"; - - case CUBLAS_STATUS_NOT_INITIALIZED: - return "CUBLAS_STATUS_NOT_INITIALIZED"; - - case CUBLAS_STATUS_ALLOC_FAILED: - return "CUBLAS_STATUS_ALLOC_FAILED"; - - case CUBLAS_STATUS_INVALID_VALUE: - return "CUBLAS_STATUS_INVALID_VALUE"; - - case CUBLAS_STATUS_ARCH_MISMATCH: - return "CUBLAS_STATUS_ARCH_MISMATCH"; - - case CUBLAS_STATUS_MAPPING_ERROR: - return "CUBLAS_STATUS_MAPPING_ERROR"; - - case CUBLAS_STATUS_EXECUTION_FAILED: - return "CUBLAS_STATUS_EXECUTION_FAILED"; - - case CUBLAS_STATUS_INTERNAL_ERROR: - return "CUBLAS_STATUS_INTERNAL_ERROR"; - - case CUBLAS_STATUS_NOT_SUPPORTED: - return "CUBLAS_STATUS_NOT_SUPPORTED"; - - case CUBLAS_STATUS_LICENSE_ERROR: - return "CUBLAS_STATUS_LICENSE_ERROR"; - } - return ""; -} - -//for int8 cublasLtMM with algo -//ATransform should be m*n, CUBLASLT_ORDER_COL32 -//kernel should be n*k, CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 -//res is m*n, CUBLASLT_ORDER_COL32 -template -void cublasLtMM_withAlgo(int *res, int batchCount, int m, int n, int k, - int64_t stridea, int64_t strideb, int64_t stridec, - const int8_t *ATransform, const T *kernel, cublasLtHandle_t cublasLt_handle, - cudaStream_t stream, std::map &cublasLtAlgoMap, - bool use_ORDER_COL32_2R_4R4, bool use_default_algo = false) -{ - cublasOperation_t opTranspose = CUBLAS_OP_T; -#ifdef CUDA11_MODE - cublasComputeType_t computeType = CUBLAS_COMPUTE_32I; -#else - cudaDataType_t computeType = CUDA_R_32I; -#endif - cublasLtMatmulDesc_t matmulDesc; - cublasLtMatrixLayout_t AtransformDesc = NULL; - cublasLtMatrixLayout_t BtransformDesc = NULL; - cublasLtMatrixLayout_t CtransformDesc = NULL; - cublasLtOrder_t order_COL32 = CUBLASLT_ORDER_COL32; - - cublasLtOrder_t order_matrixB; -#ifdef CUDA11_MODE - if (use_ORDER_COL32_2R_4R4) - order_matrixB = CUBLASLT_ORDER_COL32_2R_4R4; - else - order_matrixB = CUBLASLT_ORDER_COL4_4R2_8C; -#else - order_matrixB = CUBLASLT_ORDER_COL4_4R2_8C; -#endif - - - - int ldaTransform = 32 * m; - int ldbTransform; - if (use_ORDER_COL32_2R_4R4) - ldbTransform = 32 * ((n + 32 - 1) / 32) * 32; - else - ldbTransform = 32 * ((n + 8 - 1) / 8) * 8; - int ldcTransform = 32 * m; - - // create matmulDesc -#ifdef CUDA11_MODE - cublasLtMatmulDescCreate(&matmulDesc, computeType, CUDA_R_32I); -#else - cublasLtMatmulDescCreate(&matmulDesc, computeType); -#endif - cublasLtMatmulDescSetAttribute(matmulDesc, CUBLASLT_MATMUL_DESC_TRANSB, &opTranspose, sizeof(cublasOperation_t)); - cublasLtMatrixLayoutCreate(&AtransformDesc, CUDA_R_8I, m, k, ldaTransform); - cublasLtMatrixLayoutSetAttribute(AtransformDesc, CUBLASLT_MATRIX_LAYOUT_ORDER, &order_COL32, sizeof(order_COL32)); - cublasLtMatrixLayoutCreate(&BtransformDesc, CUDA_R_8I, n, k, ldbTransform); - cublasLtMatrixLayoutSetAttribute(BtransformDesc, CUBLASLT_MATRIX_LAYOUT_ORDER, &order_matrixB, sizeof(order_matrixB)); - cublasLtMatrixLayoutCreate(&CtransformDesc, CUDA_R_32I, m, n, ldcTransform); - cublasLtMatrixLayoutSetAttribute(CtransformDesc, CUBLASLT_MATRIX_LAYOUT_ORDER, &order_COL32, sizeof(order_COL32)); - if (batchCount > 1) - { - cublasLtMatrixLayoutSetAttribute(AtransformDesc, CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT, &batchCount, sizeof(batchCount)); - cublasLtMatrixLayoutSetAttribute(AtransformDesc, CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET, &stridea, sizeof(stridea)); - cublasLtMatrixLayoutSetAttribute(BtransformDesc, CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT, &batchCount, sizeof(batchCount)); - cublasLtMatrixLayoutSetAttribute(BtransformDesc, CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET, &strideb, sizeof(strideb)); - cublasLtMatrixLayoutSetAttribute(CtransformDesc, CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT, &batchCount, sizeof(batchCount)); - cublasLtMatrixLayoutSetAttribute(CtransformDesc, CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET, &stridec, sizeof(stridec)); - } - - int alphaI = 1; - int betaI = 0; - - //get algo - cublasLtMatmulAlgo_t algo; - char mark[1000]; - sprintf(mark, "%d_%d_%d_%d", batchCount, m, n, k); - std::string markStr(mark); - int findAlgo = 0; - if ((!use_default_algo) && cublasLtAlgoMap.find(markStr) != cublasLtAlgoMap.end() && cublasLtAlgoMap[markStr].workspaceSize == 0) - { - //printf("find algo %s\n", markStr.c_str()); - findAlgo = 1; - - cublasLtMatmulAlgoInit(cublasLt_handle, computeType, CUDA_R_32I, CUDA_R_8I, CUDA_R_8I, CUDA_R_32I, CUDA_R_32I, cublasLtAlgoMap[markStr].algoId, &algo); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION, &(cublasLtAlgoMap[markStr].customOption), sizeof(cublasLtAlgoMap[markStr].customOption)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_TILE_ID, &(cublasLtAlgoMap[markStr].tile), sizeof(cublasLtAlgoMap[markStr].tile)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &(cublasLtAlgoMap[markStr].splitK_val), sizeof(cublasLtAlgoMap[markStr].splitK_val)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING, &(cublasLtAlgoMap[markStr].swizzle), sizeof(cublasLtAlgoMap[markStr].swizzle)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &(cublasLtAlgoMap[markStr].reductionScheme), sizeof(int)); -#ifdef CUDA11_MODE - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_STAGES_ID, &(cublasLtAlgoMap[markStr].stages), sizeof(cublasLtAlgoMap[markStr].stages)); -#endif - } - else - { - findAlgo = 1; - int algoId; - if (use_ORDER_COL32_2R_4R4) - { - algoId = 7; - } - else - { - algoId = 6; - } - int swizzle = 0; - int customOption = 0; - int tile = 20; - int splitK_val = 0; - int reductionScheme = 0; - cublasLtMatmulAlgoInit(cublasLt_handle, computeType, CUDA_R_32I, CUDA_R_8I, CUDA_R_8I, CUDA_R_32I, CUDA_R_32I, algoId, &algo); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION, &(customOption), sizeof(customOption)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_TILE_ID, &(tile), sizeof(tile)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &(splitK_val), sizeof(splitK_val)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING, &(swizzle), sizeof(swizzle)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &(reductionScheme), sizeof(int)); -#ifdef CUDA11_MODE - int stages; - if (use_ORDER_COL32_2R_4R4) - stages = 15; - else - stages = 13; - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_STAGES_ID, &(stages), sizeof(stages)); -#endif - } - - cublasLtMatmul(cublasLt_handle, - matmulDesc, - &alphaI, - ATransform, - AtransformDesc, - kernel, - BtransformDesc, - &betaI, - res, - CtransformDesc, - res, - CtransformDesc, - (findAlgo == 1 ? (&algo) : NULL), NULL, 0, stream); - - cublasLtMatmulDescDestroy(matmulDesc); - cublasLtMatrixLayoutDestroy(AtransformDesc); - cublasLtMatrixLayoutDestroy(BtransformDesc); - cublasLtMatrixLayoutDestroy(CtransformDesc); -} - -//for int8 IO cublasLtMM with algo -//ATransform should be m*k CUBLASLT_ORDER_COL32 -//kernel should be n*k CUBLASLT_ORDER_COL4_4R2_8C -//res is m*n CUBLASLT_ORDER_COL32 -template -void cublasLtMM_withAlgo_int8IO(int8_t *res, int batchCount, int m, int n, int k, - int64_t stridea, int64_t strideb, int64_t stridec, - const float alpha, const int8_t *ATransform, const T *kernel, - cublasLtHandle_t cublasLt_handle, cudaStream_t stream, - std::map &cublasLtAlgoMap, - bool use_ORDER_COL32_2R_4R4, bool use_default_algo=false) -{ - cublasOperation_t opTranspose = CUBLAS_OP_T; - //int8 gemm does not support CUBLAS_POINTER_MODE_DEVICE - //cublasLtPointerMode_t pointerMode = CUBLASLT_POINTER_MODE_ALPHA_DEVICE_VECTOR_BETA_ZERO; - cudaDataType_t scaleType = CUDA_R_32F; -#ifdef CUDA11_MODE - cublasComputeType_t computeType = CUBLAS_COMPUTE_32I; -#else - cudaDataType_t computeType = CUDA_R_32I; -#endif - cublasLtMatmulDesc_t matmulDesc; - cublasLtMatrixLayout_t AtransformDesc = NULL; - cublasLtMatrixLayout_t BtransformDesc = NULL; - cublasLtMatrixLayout_t CtransformDesc = NULL; - cublasLtOrder_t order_COL32 = CUBLASLT_ORDER_COL32; - - cublasLtOrder_t order_matrixB; -#ifdef CUDA11_MODE - if (use_ORDER_COL32_2R_4R4) - order_matrixB = CUBLASLT_ORDER_COL32_2R_4R4; - else - order_matrixB = CUBLASLT_ORDER_COL4_4R2_8C; -#else - order_matrixB = CUBLASLT_ORDER_COL4_4R2_8C; -#endif - - - int ldaTransform = 32 * m; - - int ldbTransform; - if (use_ORDER_COL32_2R_4R4) - ldbTransform = 32 * ((n + 32 - 1) / 32) * 32; - else - ldbTransform = 32 * ((n + 8 - 1) / 8) * 8; - - - int ldcTransform = 32 * m; - - // create matmulDesc -#ifdef CUDA11_MODE - cublasLtMatmulDescCreate(&matmulDesc, computeType, scaleType); -#else - cublasLtMatmulDescCreate(&matmulDesc, computeType); -#endif - cublasLtMatmulDescSetAttribute(matmulDesc, CUBLASLT_MATMUL_DESC_TRANSB, &opTranspose, sizeof(cublasOperation_t)); - cublasLtMatmulDescSetAttribute(matmulDesc, CUBLASLT_MATMUL_DESC_SCALE_TYPE, &scaleType, sizeof(scaleType)); - //cublasLtMatmulDescSetAttribute(matmulDesc, CUBLASLT_MATMUL_DESC_POINTER_MODE, &pointerMode, sizeof(cublasLtPointerMode_t)); - cublasLtMatrixLayoutCreate(&AtransformDesc, CUDA_R_8I, m, k, ldaTransform); - cublasLtMatrixLayoutSetAttribute(AtransformDesc, CUBLASLT_MATRIX_LAYOUT_ORDER, &order_COL32, sizeof(order_COL32)); - cublasLtMatrixLayoutCreate(&BtransformDesc, CUDA_R_8I, n, k, ldbTransform); - cublasLtMatrixLayoutSetAttribute(BtransformDesc, CUBLASLT_MATRIX_LAYOUT_ORDER, &order_matrixB, sizeof(order_matrixB)); - cublasLtMatrixLayoutCreate(&CtransformDesc, CUDA_R_8I, m, n, ldcTransform); - cublasLtMatrixLayoutSetAttribute(CtransformDesc, CUBLASLT_MATRIX_LAYOUT_ORDER, &order_COL32, sizeof(order_COL32)); - if (batchCount > 1) - { - cublasLtMatrixLayoutSetAttribute(AtransformDesc, CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT, &batchCount, sizeof(batchCount)); - cublasLtMatrixLayoutSetAttribute(AtransformDesc, CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET, &stridea, sizeof(stridea)); - cublasLtMatrixLayoutSetAttribute(BtransformDesc, CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT, &batchCount, sizeof(batchCount)); - cublasLtMatrixLayoutSetAttribute(BtransformDesc, CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET, &strideb, sizeof(strideb)); - cublasLtMatrixLayoutSetAttribute(CtransformDesc, CUBLASLT_MATRIX_LAYOUT_BATCH_COUNT, &batchCount, sizeof(batchCount)); - cublasLtMatrixLayoutSetAttribute(CtransformDesc, CUBLASLT_MATRIX_LAYOUT_STRIDED_BATCH_OFFSET, &stridec, sizeof(stridec)); - } - //get algo - cublasLtMatmulAlgo_t algo; - char mark[1000]; - sprintf(mark, "%d_%d_%d_%d", batchCount, m, n, k); - std::string markStr(mark); - int findAlgo = 0; - if ((!use_default_algo) && cublasLtAlgoMap.find(markStr) != cublasLtAlgoMap.end() && cublasLtAlgoMap[markStr].workspaceSize == 0) - { - findAlgo = 1; - cublasLtMatmulAlgoInit(cublasLt_handle, computeType, CUDA_R_32F, CUDA_R_8I, CUDA_R_8I, CUDA_R_8I, CUDA_R_8I, cublasLtAlgoMap[markStr].algoId, &algo); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION, &(cublasLtAlgoMap[markStr].customOption), sizeof(cublasLtAlgoMap[markStr].customOption)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_TILE_ID, &(cublasLtAlgoMap[markStr].tile), sizeof(cublasLtAlgoMap[markStr].tile)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &(cublasLtAlgoMap[markStr].splitK_val), sizeof(cublasLtAlgoMap[markStr].splitK_val)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING, &(cublasLtAlgoMap[markStr].swizzle), sizeof(cublasLtAlgoMap[markStr].swizzle)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &(cublasLtAlgoMap[markStr].reductionScheme), sizeof(int)); -#ifdef CUDA11_MODE - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_STAGES_ID, &(cublasLtAlgoMap[markStr].stages), sizeof(cublasLtAlgoMap[markStr].stages)); -#endif - } - else - { - findAlgo = 1; - int algoId; - if (use_ORDER_COL32_2R_4R4) - { - algoId = 7; - } - else - { - algoId = 6; - } - int swizzle = 0; - int customOption = 0; - int tile = 20; - int splitK_val = 0; - int reductionScheme = 0; - cublasLtMatmulAlgoInit(cublasLt_handle, computeType, CUDA_R_32F, CUDA_R_8I, CUDA_R_8I, CUDA_R_8I, CUDA_R_8I, algoId, &algo); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION, &(customOption), sizeof(customOption)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_TILE_ID, &(tile), sizeof(tile)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &(splitK_val), sizeof(splitK_val)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING, &(swizzle), sizeof(swizzle)); - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &(reductionScheme), sizeof(int)); -#ifdef CUDA11_MODE - int stages; - if (use_ORDER_COL32_2R_4R4) - stages = 15; - else - stages = 13; - cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_STAGES_ID, &(stages), sizeof(stages)); -#endif - } - - float beta = 0.0f; - cublasLtMatmul(cublasLt_handle, - matmulDesc, - &alpha, - ATransform, - AtransformDesc, - kernel, - BtransformDesc, - &beta, - res, - CtransformDesc, - res, - CtransformDesc, - (findAlgo == 1 ? (&algo) : NULL), NULL, 0, stream); - - cublasLtMatmulDescDestroy(matmulDesc); - cublasLtMatrixLayoutDestroy(AtransformDesc); - cublasLtMatrixLayoutDestroy(BtransformDesc); - cublasLtMatrixLayoutDestroy(CtransformDesc); -} - -template -void check(T result, char const *const func, const char *const file, int const line) -{ - if (result) - { - throw std::runtime_error(std::string("[FT][ERROR] CUDA runtime error: ") + - (_cudaGetErrorEnum(result)) + " " + file + - ":" + std::to_string(line) + " \n"); - } -} - -#define check_cuda_error(val) check((val), #val, __FILE__, __LINE__) - -template -void print_to_file(T *result, const int size, char *file) -{ - FILE *fd = fopen(file, "w"); - T *tmp = (T *)malloc(sizeof(T) * size); - check_cuda_error(cudaMemcpy(tmp, result, sizeof(T) * size, cudaMemcpyDeviceToHost)); - for (int i = 0; i < size; ++i) - { - float val; - if (sizeof(T) == 2) - val = (T)__half2float(tmp[i]); - else - val = (T)tmp[i]; - fprintf(fd, "%f\n", val); - } - free(tmp); - fclose(fd); -} - -template -void print_to_screen(T *result, const int size) -{ - T *tmp = (T *)malloc(sizeof(T) * size); - check_cuda_error(cudaMemcpy(tmp, result, sizeof(T) * size, cudaMemcpyDeviceToHost)); - for (int i = 0; i < size; ++i) - printf("%d, %f\n", i, (float)tmp[i]); - free(tmp); -} - -template -void check_max_val(const T *result, const int size) -{ - T *tmp = new T[size]; - cudaMemcpy(tmp, result, sizeof(T) * size, cudaMemcpyDeviceToHost); - float max_val = -100000; - for (int i = 0; i < size; i++) - { - float val = (float)(tmp[i]); - if (val > max_val) - max_val = val; - } - delete tmp; - printf("[INFO][CUDA] addr %p max val: %f \n", result, max_val); -} - -inline int getSMVersion() -{ - int device{-1}; - check_cuda_error(cudaGetDevice(&device)); - cudaDeviceProp props; - check_cuda_error(cudaGetDeviceProperties(&props, device)); - return props.major * 10 + props.minor; -} - -template -void check_abs_mean_val(const T *result, const int size) -{ - T *tmp = new T[size]; - cudaMemcpy(tmp, result, sizeof(T) * size, cudaMemcpyDeviceToHost); - float sum = 0.0f; - for (int i = 0; i < size; i++) - { - sum += abs((float)tmp[i]); - } - delete tmp; - printf("[INFO][CUDA] addr %p abs mean val: %f \n", result, sum / size); -} - -inline int div_up(int a, int n) -{ - return (a + n - 1) / n; -} - -} //namespace fastertransformer diff --git a/fastertransformer/cuda/CMakeLists.txt b/fastertransformer/cuda/CMakeLists.txt index 6aa9b77e9..6fdefcb89 100644 --- a/fastertransformer/cuda/CMakeLists.txt +++ b/fastertransformer/cuda/CMakeLists.txt @@ -19,6 +19,7 @@ set(encoder_kernel_files set(decoder_kernel_files open_decoder.cu + masked_multihead_attention.cu ) set(online_softmax_beamsearch_kernel_files @@ -38,6 +39,16 @@ set_property(TARGET cuda_kernels PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET cuda_kernels PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) target_link_libraries(cuda_kernels PUBLIC -lcublas -lcudart -lcurand) +add_library(attention_kernels STATIC attention_kernels.cu) +set_property(TARGET attention_kernels PROPERTY POSITION_INDEPENDENT_CODE ON) +set_property(TARGET attention_kernels PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) +target_link_libraries(attention_kernels PUBLIC -lcublas -lcudart -lcurand) + +add_library(transformer_kernels STATIC transformer_kernels.cu) +set_property(TARGET transformer_kernels PROPERTY POSITION_INDEPENDENT_CODE ON) +set_property(TARGET transformer_kernels PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) +target_link_libraries(transformer_kernels PUBLIC -lcublas -lcudart -lcurand) + add_library(cuda_int8_kernels STATIC cuda_int8_kernels.cu) set_property(TARGET cuda_int8_kernels PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET cuda_int8_kernels PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) @@ -46,12 +57,14 @@ target_link_libraries(cuda_int8_kernels PUBLIC -lcublas -lcudart -lcurand cuda_k add_library(encoder STATIC ${encoder_kernel_files}) set_property(TARGET encoder PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET encoder PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) -target_link_libraries(encoder PUBLIC -lcublas -lcublasLt -lcudart -lcurand cuda_kernels cuda_int8_kernels trt_fused_multi_head_attention encoder_gemm_func encoder_igemm_func) +target_link_libraries(encoder PUBLIC -lcublas -lcublasLt -lcudart -lcurand cuda_kernels + cuda_int8_kernels attention_kernels transformer_kernels + trt_fused_multi_head_attention encoder_gemm_func encoder_igemm_func) add_library(decoder STATIC ${decoder_kernel_files}) set_property(TARGET decoder PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET decoder PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) -target_link_libraries(decoder PUBLIC -lcublas -lcudart -lcurand) +target_link_libraries(decoder PUBLIC -lcublas -lcudart -lcurand cuda_kernels attention_kernels transformer_kernels nccl_utils nvtx_utils) add_library(online_softmax_beamsearch STATIC ${online_softmax_beamsearch_kernel_files}) set_property(TARGET online_softmax_beamsearch PROPERTY POSITION_INDEPENDENT_CODE ON) @@ -67,3 +80,11 @@ add_library(decoding STATIC ${decoding_kernel_files}) set_property(TARGET decoding PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET decoding PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS ON) target_link_libraries(decoding PUBLIC -lcublas -lcudart -lcurand topk online_softmax_beamsearch cuda_kernels) + +if (BUILD_GPT) + target_compile_features(cuda_kernels PRIVATE cxx_std_14) + target_compile_features(attention_kernels PRIVATE cxx_std_14) + target_compile_features(decoder PRIVATE cxx_std_14) + target_compile_features(online_softmax_beamsearch PRIVATE cxx_std_14) + target_compile_features(topk PRIVATE cxx_std_14) +endif() diff --git a/fastertransformer/cuda/attention_kernels.cu b/fastertransformer/cuda/attention_kernels.cu new file mode 100644 index 000000000..0bd550ab6 --- /dev/null +++ b/fastertransformer/cuda/attention_kernels.cu @@ -0,0 +1,845 @@ +/* +* Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "fastertransformer/cuda/attention_kernels.cuh" + +namespace fastertransformer +{ + +#define FINAL_MASK 0xffffffff + +template +__inline__ __device__ +T warpReduceSum(T val) +{ + #pragma unroll + for(int mask = 16; mask > 0; mask >>= 1) + val += __shfl_xor_sync(FINAL_MASK, val, mask, 32); + return val; +} + +/* Calculate the sum of all elements in a block */ +template + __inline__ __device__ +T blockReduceSum(T val) +{ + static __shared__ T shared[32]; + int lane = threadIdx.x & 0x1f; + int wid = threadIdx.x >> 5; + + val = warpReduceSum(val); + + if(lane == 0) + shared[wid] = val; + + __syncthreads(); + + val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : (T)(0.0f); + val = warpReduceSum(val); + + return val; +} + +template + __inline__ __device__ +T warpReduceMax(T val) +{ + #pragma unroll + for(int mask = 16; mask > 0; mask >>= 1) + val = max(val, __shfl_xor_sync(FINAL_MASK, val, mask, 32)); + return val; +} + +/* Calculate the maximum of all elements in a block */ +template + __inline__ __device__ +T blockReduceMax(T val) +{ + static __shared__ T shared[32]; + int lane = threadIdx.x & 0x1f; // in-warp idx + int wid = threadIdx.x >> 5; // warp idx + + val = warpReduceMax(val); // get maxx in each warp + + if(lane == 0) // record in-warp maxx by warp Idx + shared[wid] = val; + + __syncthreads(); + + + val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : -1e20f; + val = warpReduceMax(val); + + return val; +} + +__inline__ __device__ +int target_index(int id1, int id2, int id3, int id4, int dim_1, int dim_2, int dim_3, int dim_4) +{ + return id1 * (dim_2 * dim_3 * dim_4) + id3 * (dim_2 * dim_4) + id2 * dim_4 + id4; +} + +template +__global__ +void add_QKV_bias(T* Q, const T* bias_Q, T* K, const T* bias_K, T* V, const T* bias_V, T* q_buf_, T* k_buf_, T* v_buf_, + const int batch_size, const int seq_len, const int head_num, const int size_per_head, const int word_per_block) +{ + + T* data_ptr; + T* buf_ptr; + const T* bias_ptr; + + int m = batch_size * seq_len; + int n = head_num * size_per_head; + + int qkv_id = blockIdx.x * word_per_block / m; + int row_offset = (blockIdx.x * word_per_block % m) * n; + + if(qkv_id == 0) + { + data_ptr = Q + row_offset; + buf_ptr = q_buf_; + bias_ptr = bias_Q; + } + else if(qkv_id == 1) + { + data_ptr = K + row_offset; + buf_ptr = k_buf_; + bias_ptr = bias_K; + } + else + { + data_ptr = V + row_offset; + buf_ptr = v_buf_; + bias_ptr = bias_V; + } + + int batch_id = (blockIdx.x * word_per_block % m) / seq_len; + int head_id = threadIdx.x / size_per_head; + int id_in_head = threadIdx.x % size_per_head; + int word_start_id = (blockIdx.x * word_per_block) % seq_len; + + T bias = __ldg(&bias_ptr[threadIdx.x]); + + for(int i = word_start_id; i < word_start_id + word_per_block; ++i) + { + T tmp = data_ptr[threadIdx.x] + bias; + + int target_id = batch_id * (seq_len * head_num * size_per_head) + head_id * seq_len * size_per_head + + i * size_per_head + id_in_head; + + buf_ptr[target_id] = tmp; + data_ptr += n; + } +} + +template <> +__global__ +void add_QKV_bias(half* Q, const half* bias_Q, half* K, const half* bias_K, half* V, const half* bias_V, + half* q_buf_, half* k_buf_, half* v_buf_, + const int batch_size, const int seq_len, const int head_num, const int size_per_head, const int word_per_block) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + int batch_id = tid / (head_num * seq_len * size_per_head); + int seq_id = (tid % (head_num * seq_len * size_per_head)) / (head_num * size_per_head); + int head_id = (tid % (head_num * size_per_head)) / size_per_head; + int id = tid % size_per_head; + int target_id = target_index(batch_id, seq_id, head_id, id, batch_size, seq_len, head_num, size_per_head); + + int bias_id = threadIdx.x; + + half2* src_ptr = (half2*)Q; + half2* dst_ptr = (half2*)q_buf_; + const half2* bias_ptr = (const half2*)bias_Q; + + dst_ptr[target_id] = __hadd2(src_ptr[tid], __ldg(&bias_ptr[bias_id])); + + src_ptr = (half2*)K; + dst_ptr = (half2*)k_buf_; + bias_ptr = (const half2*)bias_K; + dst_ptr[target_id] = __hadd2(src_ptr[tid], __ldg(&bias_ptr[bias_id])); + + src_ptr = (half2*)V; + dst_ptr = (half2*)v_buf_; + bias_ptr = (const half2*)bias_V; + dst_ptr[target_id] = __hadd2(src_ptr[tid], __ldg(&bias_ptr[bias_id])); +} + + +template +__global__ +void add_QKV_bias_generalized(const T* __restrict Q, + const T* __restrict bias_Q, + const T* __restrict K, + const T* __restrict bias_K, + const T* __restrict V, + const T* __restrict bias_V, + T* q_buf_, T* k_buf_, T* v_buf_, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const int word_per_block) +{ + + const T* data_ptr; + T* buf_ptr; + T bias; + + int n = head_num * size_per_head; + const int blocks_per_word = n / blockDim.x; + const int blocks_per_buffer = gridDim.x / 3; + const int qkv_id = blockIdx.x / blocks_per_buffer; + const int block_id_in_buffer = blockIdx.x % blocks_per_buffer; + const int offset = block_id_in_buffer * blockDim.x + threadIdx.x; + const int bias_id = offset % n; + + if(qkv_id == 0) + { + data_ptr = Q + offset; + buf_ptr = q_buf_; + bias = __ldg(&bias_Q[bias_id]); + } + else if(qkv_id == 1) + { + data_ptr = K + offset; + buf_ptr = k_buf_; + bias = __ldg(&bias_K[bias_id]); + } + else + { + data_ptr = V + offset; + buf_ptr = v_buf_; + bias = __ldg(&bias_V[bias_id]); + } + + const int head_id = bias_id / size_per_head; + const int size_id = bias_id % size_per_head; + + for(int i = 0; i < word_per_block; i++) + { + const int block_lane = i * blocks_per_buffer; + const int batch_id = (block_id_in_buffer + block_lane) / seq_len / blocks_per_word; + const int word_id = ((block_id_in_buffer + block_lane) / blocks_per_word) % seq_len; + + int target_id = batch_id * (head_num * seq_len * size_per_head) + head_id * seq_len * size_per_head + + word_id * size_per_head + size_id; + buf_ptr[target_id] = __ldg(&data_ptr[block_lane * blockDim.x]) + bias; + } +} + +template +void add_QKV_bias_transpose_kernelLauncher( + T* q_buf, + T* k_buf, + T* v_buf, + T* Q, + const T* bias_Q, + T* K, + const T* bias_K, + T* V, + const T* bias_V, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream) +{ + const int k = head_num * size_per_head; + dim3 grid, block; + if(k <= 1024) + { + if(sizeof(T) == 4) + { + const int m = batch_size * seq_len; + const int word_per_block = 1; + assert(k <= 1024); + assert(m / word_per_block * 3 <= 65536); + + dim3 grid(m / word_per_block * 3); + dim3 block(k); + add_QKV_bias<<>>(Q, bias_Q, K, bias_K, V, bias_V, q_buf, k_buf, v_buf, + batch_size, seq_len, head_num, size_per_head, word_per_block); + } + else + { + const int word_per_block = 1; + grid.x = batch_size * seq_len / word_per_block; + block.x = head_num * size_per_head * word_per_block / 2; + + assert(block.x <= 1024); + + add_QKV_bias<<>>(Q, bias_Q, K, bias_K, V, bias_V, q_buf, k_buf, + v_buf, batch_size, seq_len, head_num, size_per_head / 2, word_per_block); + } + } + else + { + // k > 1024, so split into many block + if(sizeof(T) == 4) + { + const int m = batch_size * seq_len; + const int word_per_block = 4; + dim3 block; + if(k % 512 == 0) + block.x = 512; + else if(k % 384 == 0) + block.x = 384; + else if(k % 256 == 0) + block.x = 256; + else if(k % 128 == 0) + block.x = 128; + else + printf("[ERROR] no supported k %d \n", k); + assert(k % block.x == 0); + dim3 grid(m * k / block.x / word_per_block * 3); + assert(grid.x <= 65536 && grid.x > 0); + add_QKV_bias_generalized<<>>(Q, bias_Q, K, bias_K, V, bias_V, q_buf, k_buf, v_buf, + batch_size, seq_len, head_num, size_per_head, word_per_block); + + } + else + { + const int m = batch_size * seq_len; + const int word_per_block = 4; + const int half_k = k / 2; + dim3 block; + if(half_k % 512 == 0) + block.x = 512; + else if(half_k % 384 == 0) + block.x = 384; + else if(half_k % 256 == 0) + block.x = 256; + else if(half_k % 128 == 0) + block.x = 128; + else if(half_k % 64 == 0) + block.x = 64; + else + printf("[ERROR] no supported half_k %d \n", half_k); + assert(half_k % block.x == 0); + dim3 grid(m * half_k / block.x / word_per_block * 3); + assert(grid.x <= 65536 && grid.x > 0); + add_QKV_bias_generalized<<>>((const half2*)Q, (const half2*)bias_Q, + (const half2*)K, (const half2*)bias_K, + (const half2*)V, (const half2*)bias_V, + (half2*)q_buf, (half2*)k_buf, (half2*)v_buf, + batch_size, seq_len, head_num, + size_per_head / 2, word_per_block); + } + } +} + +template +__global__ +void add_fusedQKV_bias_transpose_kernel( + T* q_buf, + T* k_buf, + T* v_buf, + const T* __restrict QKV, + const T* __restrict qkv_bias, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head) +{ + // QKV: [m, 3, n] + // qkv_bias: [3, n] + // q_buf, k_buf, v_buf: [batch, head_num, seq_len, size_per_head] + + T* qkv_ptr[3] = {q_buf, k_buf, v_buf}; + const int n = head_num * size_per_head; + for(int index = blockDim.x * blockIdx.x + threadIdx.x; index < batch_size * seq_len * 3 * n; index += gridDim.x * blockDim.x) + { + int bias_id = index % (3 * n); + T val = __ldg(&QKV[index]) + __ldg(&qkv_bias[bias_id]); + + int tmp_index = index; + const int target_batch_id = tmp_index / (seq_len * 3 * n); + tmp_index -= target_batch_id * seq_len * 3 * n; + const int seq_id = tmp_index / (3 * n); + tmp_index -= seq_id * 3 * n; + const int qkv_id = tmp_index / n; + tmp_index -= qkv_id * n; + const int head_id = tmp_index / size_per_head; + const int size_id = tmp_index - head_id * size_per_head; + + qkv_ptr[qkv_id][ + target_batch_id * head_num * seq_len * size_per_head + + head_id * seq_len * size_per_head + + seq_id * size_per_head + + size_id] = val; + } +} + +template +void add_fusedQKV_bias_transpose_kernelLauncher( + T* q_buf, + T* k_buf, + T* v_buf, + T* QKV, + const T* qkv_bias, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream) +{ + const int m = batch_size * seq_len; + const int n = head_num * size_per_head; + dim3 block(384); + dim3 grid((int)(ceil(1.0 * m * n / 384))); + add_fusedQKV_bias_transpose_kernel<<>>( + q_buf, k_buf, v_buf, QKV, qkv_bias, + batch_size, seq_len, head_num, size_per_head); +} + +template +__global__ +void softmax_kernel(T* qk_buf_, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, + const T scalar) +{ + int batch_id = blockIdx.x / head_num; + int qk_offset = blockIdx.x * seq_len * seq_len; + int mask_offset = batch_id * seq_len * seq_len; + + __shared__ float s_sum, s_max; + + for(int i = 0; i < seq_len; ++i) + { + float qk = threadIdx.x < seq_len ? (float)qk_buf_[threadIdx.x + qk_offset] : 0.0f; + float mask_val = threadIdx.x < seq_len ? (float)attr_mask[threadIdx.x + mask_offset] : 0.0f; + + mask_val = (1.0f - mask_val) * -10000.0f; + + float tmp = threadIdx.x < seq_len ? (float)(qk * (float)scalar + mask_val): -1e20f; + + float max_val = blockReduceMax(tmp); + + if(threadIdx.x == 0) + s_max = max_val; + __syncthreads(); + + qk = threadIdx.x < seq_len ? __expf(tmp - s_max) : 0.0f; + + float sum_val = blockReduceSum(qk); + + if(threadIdx.x == 0) + { + s_sum = sum_val + 1e-6f; + } + __syncthreads(); + + if(threadIdx.x < seq_len) + qk_buf_[threadIdx.x + qk_offset] = (T)(qk / s_sum); + + qk_offset += seq_len; + mask_offset += seq_len; + } +} + + +template +__global__ +void softmax_kernel_v2(T* qk_buf_, const T* attr_mask, const int batch_size, const int head_num, + const int seq_len, const float scalar) +{ + int batch_id = blockIdx.x / head_num / seq_len; + int seq_id = blockIdx.x % seq_len; + int qk_offset = blockIdx.x * seq_len; + int mask_offset = batch_id * seq_len * seq_len + seq_id * seq_len; + + __shared__ float s_sum, s_max; + + float qk = threadIdx.x < seq_len ? (float)qk_buf_[threadIdx.x + qk_offset] : 0.0f; + float mask_val = threadIdx.x < seq_len ? (float)attr_mask[threadIdx.x + mask_offset] : 0.0f; + + mask_val = (1.0f - mask_val) * -10000.0f; + + float tmp = threadIdx.x < seq_len ? (float)(qk * (float)scalar + mask_val) : -1e20f; + float max_val = blockReduceMax(tmp); + if(threadIdx.x == 0) + s_max = max_val; + __syncthreads(); + + float qk_tmp = threadIdx.x < seq_len ? __expf((float)(tmp - s_max)) : 0.0f; + float sum_val = blockReduceSum(qk_tmp); + + if(threadIdx.x == 0) + { + s_sum = sum_val + 1e-6f; + } + __syncthreads(); + + if(threadIdx.x < seq_len) + qk_buf_[threadIdx.x + qk_offset] = (T)(qk_tmp / s_sum); +} + +//grid = (seq_len/word_per_thread, batch_size, head_num) +//block.x = max(32, (seq_len + 31)/32*32) +template +__global__ +void softmax_kernel_v3(T* qk_buf_, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, const T scalar) +{ + + bool qual = threadIdx.x < seq_len; + for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ + float tmp = -1e20f; + int qk_offset; + __shared__ float s_mean, s_max; + if (qual){ + qk_offset = ((blockIdx.y*head_num + blockIdx.z)*seq_len + seq_id) *seq_len + threadIdx.x; + int mask_offset = (blockIdx.y * seq_len + seq_id) * seq_len + threadIdx.x; + + float qk = static_cast(qk_buf_[qk_offset]); + float mask_val = static_cast(__ldg(&attr_mask[mask_offset])); + + mask_val = (1.0f - mask_val) * -10000.0f; + + tmp = qk * static_cast(scalar) + mask_val; + } + + float max_val = blockReduceMax(tmp); + if (threadIdx.x == 0){ + s_max = max_val; + } + __syncthreads(); + + float qk_tmp = qual ? __expf(tmp - s_max) : 0.0f; + float sum_val = blockReduceSum(qk_tmp); + if (threadIdx.x == 0){ + s_mean = sum_val + 1e-6f; + s_mean = __fdividef(1.0f, s_mean); + } + __syncthreads(); + + if(qual) + qk_buf_[qk_offset] = (T)(qk_tmp * s_mean); + } +} + + +//grid = (seq_len/word_per_thread, batch_size, head_num) +//block.x = max(32, (seq_len/2 + 31)/32*32) +//seq_len % 2 == 0 +template <> +__global__ +void softmax_kernel_v3(half* qk_buf_, const half* attr_mask, + const int batch_size, const int head_num, + const int seq_len, const half scalar) +{ + int threadIdx2 = threadIdx.x << 1; + bool qual = threadIdx2 < seq_len; + half2* qk_buf_half2Ptr = (half2*) qk_buf_; + const half2* attr_mask_half2Ptr = (const half2*) attr_mask; + __shared__ float s_mean, s_max; + for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ + int qk_offset; + half2 tmp = __float2half2_rn(0.0f); + + float max_val = -1e20f; + half2 qk; + if (qual){ + qk_offset = ((((blockIdx.y*head_num + blockIdx.z)*seq_len + seq_id) *seq_len) >> 1) + threadIdx.x; + int mask_offset = (((blockIdx.y * seq_len + seq_id) * seq_len) >> 1) + threadIdx.x; + + qk = qk_buf_half2Ptr[qk_offset]; + half2 mask_val = __ldg(&attr_mask_half2Ptr[mask_offset]); + half2 mask_val_tmp = __hmul2(__hsub2(__float2half2_rn(1.0f), mask_val), __float2half2_rn(-10000.0f)); + tmp = __hadd2(__hmul2(__half2half2(scalar), qk), mask_val_tmp); + max_val = fmax((float)tmp.x, (float)tmp.y); + } + + max_val = blockDim.x <= 32 ? warpReduceMax(max_val) : blockReduceMax(max_val); + + if (threadIdx.x == 0){ + s_max = max_val; + } + __syncthreads(); + + if (qual){ + tmp = h2exp(__hsub2(tmp, __float2half2_rn(s_max))); + } + float sum_val = blockDim.x <= 32 ? warpReduceSum((float)(tmp.x + tmp.y)) : blockReduceSum((float)(tmp.x + tmp.y)); + + if (threadIdx.x == 0){ + s_mean = sum_val + 1e-6f; + s_mean = __fdividef(1.0f, s_mean); + } + __syncthreads(); + + if(qual){ + qk = __hmul2(tmp, __float2half2_rn(s_mean)); + qk_buf_half2Ptr[qk_offset] = qk; + } + } +} + +template +__global__ +void softmax_kernel_v3_LE32(T* qk_buf_, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, const T scalar) +{ + bool qual = threadIdx.x < seq_len; + for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ + int qk_offset; + __shared__ float s_mean, s_max; + float tmp = -1e20f; + if (qual){ + qk_offset = ((blockIdx.y*head_num + blockIdx.z)*seq_len + seq_id) *seq_len + threadIdx.x; + int mask_offset = (blockIdx.y * seq_len + seq_id) * seq_len + threadIdx.x; + + float qk = static_cast(qk_buf_[qk_offset]); + float mask_val = static_cast(__ldg(&attr_mask[mask_offset])); + + mask_val = (1.0f - mask_val) * -10000.0f; + + tmp = static_cast(qk) * static_cast(scalar) + mask_val; + } + float max_val = warpReduceMax(tmp); + + if (threadIdx.x == 0){ + s_max = max_val; + } + __syncthreads(); + + tmp = qual ? __expf(tmp - s_max) : 0.0f; + float sum_val = warpReduceSum(tmp); + + if (threadIdx.x == 0){ + s_mean = sum_val + 1e-6f; + s_mean = __fdividef(1.0f, s_mean); + } + __syncthreads(); + + if(qual) + qk_buf_[qk_offset] = (T)(tmp * s_mean); + } +} + +template +void attn_softmax_kernelLauncher( + T* buffer, + const T* attr_mask, + const int batch_size, + const int seq_len, + const int head_num, + const T scalar, + cudaStream_t stream) +{ + dim3 grid, block; + //deal with odd seq_len + if (seq_len % 2 != 0){ + if(seq_len <= 32) + block.x = 32; + else if(seq_len > 32 && seq_len <= 64) + block.x = 64; + else if(seq_len > 64 && seq_len <= 128) + block.x = 128; + else if(seq_len > 128 && seq_len <= 256) + block.x = 256; + else if(seq_len > 256 && seq_len <= 512) + block.x = 512; + else + block.x = 1024; + + if(batch_size * head_num <= 120) + { + grid.x = batch_size * head_num * seq_len; + softmax_kernel_v2<<>>(buffer, attr_mask, batch_size, head_num, seq_len, scalar); + } + else + { + grid.x = batch_size * head_num; + softmax_kernel<<>>(buffer, attr_mask, batch_size, head_num, seq_len, scalar); + } + } + //deal with even seq_len + else{ + grid.x = seq_len; + if (batch_size * head_num > 360) + grid.x = ceil(float(seq_len)/32.0f); + grid.y = batch_size; + grid.z = head_num; + if (seq_len <= 32){ + block.x = 32; + softmax_kernel_v3_LE32<<>>(buffer, attr_mask, batch_size, head_num, seq_len, scalar); + } + else{ + if (sizeof(T) == 2){ + block.x = (seq_len/2 + 31)/32*32; + softmax_kernel_v3<<>>(buffer, attr_mask, batch_size, head_num, seq_len, scalar); + } + else{ + block.x = (seq_len + 31)/32*32; + softmax_kernel_v3<<>>(buffer, attr_mask, batch_size, head_num, seq_len, scalar); + } + } + grid.x = grid.y = grid.z = 1; + } +} + +template +__global__ +void transpose(T* src, T* dst, const int batch_size, const int seq_len, const int head_num, const int size_per_head) +{ + int batch_id = blockIdx.x / (head_num * seq_len); + int seq_id = blockIdx.x % seq_len; + int head_id = (blockIdx.x % (head_num * seq_len))/ seq_len; + dst[batch_id * (head_num * seq_len * size_per_head) + seq_id * head_num * size_per_head + + head_id * size_per_head + threadIdx.x] = src[blockIdx.x * size_per_head + threadIdx.x]; +} + +template<> + __global__ +void transpose(half* src, half* dst, + const int batch_size, const int seq_len, const int head_num, const int size_per_head) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + + int batch_id = tid / (head_num * seq_len * size_per_head); + int head_id = (tid % (head_num * seq_len * size_per_head)) / (seq_len * size_per_head); + int seq_id = (tid % (seq_len * size_per_head)) / size_per_head; + int id = tid % size_per_head; + + int target_id = target_index(batch_id, head_id, seq_id, id, batch_size, head_num, seq_len, size_per_head); + half2* src_ptr = (half2*)src; + half2* dst_ptr = (half2*)dst; + + dst_ptr[target_id] = src_ptr[tid]; +} + +template +void transpose_kernelLauncher( + T* dst, + T* src, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream) +{ + dim3 grid, block; + if(sizeof(T) == 2) + { + const int seq_per_block = 4; + grid.x = batch_size * head_num * seq_len / seq_per_block; + block.x = seq_per_block * size_per_head / 2; + + assert(grid.x * seq_per_block == batch_size * head_num * seq_len); + + transpose<<>>(src, dst, + batch_size, seq_len, head_num, size_per_head / 2); + } + else + { + const int seq_per_block = 1; + grid.x = batch_size * head_num * seq_len / seq_per_block; + block.x = seq_per_block * size_per_head; + transpose<<>>(src, dst, + batch_size, seq_len, head_num, size_per_head); + } +} + +template void add_QKV_bias_transpose_kernelLauncher( + float* q_buf, + float* k_buf, + float* v_buf, + float* Q, + const float* bias_Q, + float* K, + const float* bias_K, + float* V, + const float* bias_V, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template void add_QKV_bias_transpose_kernelLauncher( + half* q_buf, + half* k_buf, + half* v_buf, + half* Q, + const half* bias_Q, + half* K, + const half* bias_K, + half* V, + const half* bias_V, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template void add_fusedQKV_bias_transpose_kernelLauncher( + float* q_buf, + float* k_buf, + float* v_buf, + float* QKV, + const float* qkv_bias, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template void add_fusedQKV_bias_transpose_kernelLauncher( + half* q_buf, + half* k_buf, + half* v_buf, + half* QKV, + const half* qkv_bias, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template void attn_softmax_kernelLauncher( + float* buffer, + const float* attr_mask, + const int batch_size, + const int seq_len, + const int head_num, + const float scalar, + cudaStream_t stream); + +template void attn_softmax_kernelLauncher( + half* buffer, + const half* attr_mask, + const int batch_size, + const int seq_len, + const int head_num, + const half scalar, + cudaStream_t stream); + +template void transpose_kernelLauncher( + float* dst, + float* src, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template void transpose_kernelLauncher( + half* dst, + half* src, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +} // namespace fastertransformer \ No newline at end of file diff --git a/fastertransformer/cuda/attention_kernels.cuh b/fastertransformer/cuda/attention_kernels.cuh new file mode 100644 index 000000000..7fbe4b229 --- /dev/null +++ b/fastertransformer/cuda/attention_kernels.cuh @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once +#include +#include +#include "fastertransformer/utils/arguments.h" +#include + +namespace fastertransformer +{ + +template +void add_QKV_bias_transpose_kernelLauncher( + T* q_buf, + T* k_buf, + T* v_buf, + T* Q, + const T* bias_Q, + T* K, + const T* bias_K, + T* V, + const T* bias_V, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template +void add_fusedQKV_bias_transpose_kernelLauncher( + T* q_buf, + T* k_buf, + T* v_buf, + T* QKV, + const T* qkv_bias, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +template +void attn_softmax_kernelLauncher( + T* buffer, + const T* attr_mask, + const int batch_size, + const int seq_len, + const int head_num, + const T scalar, + cudaStream_t stream); + +template +void transpose_kernelLauncher( + T* dst, + T* src, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + cudaStream_t stream); + +} // namespace fastertransformer \ No newline at end of file diff --git a/fastertransformer/cuda/cuda_int8_kernels.cu b/fastertransformer/cuda/cuda_int8_kernels.cu index 835f114b7..157761317 100644 --- a/fastertransformer/cuda/cuda_int8_kernels.cu +++ b/fastertransformer/cuda/cuda_int8_kernels.cu @@ -14,8 +14,7 @@ * limitations under the License. */ -#include "fastertransformer/common.h" - +#include "fastertransformer/utils/common.h" #include "cuda_kernels.h" #include "cuda_int8_kernels.h" #include @@ -23,6 +22,7 @@ #include #include #include + namespace fastertransformer{ template @@ -47,7 +47,6 @@ half2 gelu(half2 val) } - template __inline__ __device__ T warpReduceSum(T val) @@ -166,6 +165,7 @@ template void transposeMatrix_COL32ToColMajor_kernelLauncher(half *dst, co template void transposeMatrix_COL32ToColMajor_kernelLauncher(int8_t* dst, const int8_t* src, const int m, const int n, cudaStream_t stream); + //transpose matrix & transfrom col-major to COL32 & quantize //input matrix is (m, n) col-major //output matrix is (n, m) COL32, using char4 to write out @@ -263,7 +263,7 @@ void transposeMatrix_colMajorToCOL32_kernel(half2*dst, const half2* src, const i } } -//transpose matrix & transfrom col-major to COL32 & quantize +//transpose matrix & transfrom col-major to COL32 //input matrix is (m, n) col-major //output matrix is (n, m) COL32, using char4 to write out //m should be a mutiple of 32 @@ -283,6 +283,41 @@ template void transposeMatrix_colMajorToCOL32_kernelLauncher(float* dst, template void transposeMatrix_colMajorToCOL32_kernelLauncher(half *dst, const half* src, const int m, const int n, cudaStream_t stream); +//transfrom row-major to COL32 +//input matrix is (m, n) row-major +//output matrix is (m, n) COL32 +//n should be a mutiple of 32 +//grid((n+31)/32, (m+31)/32) +//block(8, 32) +__global__ +void rowMajorToCOL32_kernel(char4*dst, const char4* src, const int m, const int n) +{ + + int n_id = (blockIdx.x*blockDim.x + threadIdx.x) << 2; + int m_id = blockIdx.y*blockDim.y + threadIdx.y; + + bool check = ((m_id < m) && (n_id < n)); + if (check) + { + + // COL32_col = n_id >> 5 ; COL32_row = (m_id << 5) + (n_id & 31); + // COL32_idx = (COL32_col << 5) * m + COL32_row = (n_id & 0xffffffe0)*m + (m_id << 5) + (n_id & 31) + dst[((n_id & 0xffffffe0)*m + (m_id << 5) + (n_id & 31)) >> 2] = __ldg(src+((m_id*n+n_id) >> 2)); + } +} + +//transfrom row-major to COL32 +//input matrix is (m, n) row-major +//output matrix is (m, n) COL32 +//n should be a mutiple of 32 +//grid((n+31)/32, (m+31)/32) +//block(8, 32) +void rowMajorToCOL32_kernelLauncher(int8_t* dst, const int8_t* src, const int m, const int n, cudaStream_t stream) +{ + assert(n%32 == 0); + rowMajorToCOL32_kernel<<>>((char4*)dst, (const char4*)src, m, n); +} + //add bias to matrix of m * n, CUBLASLT_ORDER_COL32 //grid, thread = (m), (n/4) @@ -939,7 +974,6 @@ void transpose_COL32_kernel(int8_t* dst, const int8_t* src, const int batch_size const int size_per_head, const float *bmm2_deQFactor, const float* out_scale_ptr, const int batch_size_x_seq_len, const int seq_len_x_size_per_head) { - const float scale = __ldg(bmm2_deQFactor) * __ldg(out_scale_ptr); int threadIdx4 = threadIdx.x << 2; int batch_id = blockIdx.y; int seq_id = blockIdx.x; @@ -964,15 +998,9 @@ void transpose_COL32_kernel(int8_t* dst, const int8_t* src, const int batch_size COL32_col = mk_col >> 5; int inIdx = ((batch_id*head_num + head_id)*seq_len_x_size_per_head + (COL32_col << 5 )*seq_len + COL32_row) >> 2; - char4 tmp; const char4* src_ptr4 = (const char4*)src; - tmp = __ldg(src_ptr4 + inIdx); - tmp.x = float_to_int8_rn(tmp.x*scale); - tmp.y = float_to_int8_rn(tmp.y*scale); - tmp.z = float_to_int8_rn(tmp.z*scale); - tmp.w = float_to_int8_rn(tmp.w*scale); char4 *dst_ptr4 = (char4 *)dst; - dst_ptr4[outIdx] = tmp; + dst_ptr4[outIdx] = __ldg(src_ptr4 + inIdx); } void transpose_COL32_kernelLauncher(int8_t* dst, const int8_t* src, const int batch_size, const int seq_len, const int head_num, @@ -1046,7 +1074,6 @@ __global__ void transpose_COL32_rebuild_padding_kernel(int8_t* dst, const int8_t* src, const int* sequence_id_map, const int valid_word_num, const int batch_size, const int seq_len, const int head_num, const int size_per_head, const float *bmm2_deQFactor, const float* out_scale_ptr, const int seq_len_x_size_per_head) { - const float scale = __ldg(bmm2_deQFactor) * __ldg(out_scale_ptr); int threadIdx4 = threadIdx.x << 2; int batch_id = blockIdx.y; int seq_id = blockIdx.x; @@ -1072,17 +1099,11 @@ void transpose_COL32_rebuild_padding_kernel(int8_t* dst, const int8_t* src, cons COL32_col = mk_col >> 5; int inIdx = ((batch_id*head_num + head_id)*seq_len_x_size_per_head + (COL32_col << 5 )*seq_len + COL32_row) >> 2; - char4 tmp; const char4* src_ptr4 = (const char4*)src; - tmp = __ldg(src_ptr4 + inIdx); - tmp.x = float_to_int8_rn(tmp.x*scale); - tmp.y = float_to_int8_rn(tmp.y*scale); - tmp.z = float_to_int8_rn(tmp.z*scale); - tmp.w = float_to_int8_rn(tmp.w*scale); char4 *dst_ptr4 = (char4 *)dst; - dst_ptr4[outIdx] = tmp; + dst_ptr4[outIdx] = __ldg(src_ptr4 + inIdx); } } diff --git a/fastertransformer/cuda/cuda_int8_kernels.h b/fastertransformer/cuda/cuda_int8_kernels.h index c3975ae56..676803233 100644 --- a/fastertransformer/cuda/cuda_int8_kernels.h +++ b/fastertransformer/cuda/cuda_int8_kernels.h @@ -117,4 +117,7 @@ void rebuild_sequence_length_padding_COL32_kernelLauncher(const T* src, T* tgt, const int* mask_offset, const int m, const int n, const int tgt_m, cudaStream_t stream); +void rowMajorToCOL32_kernelLauncher(int8_t* dst, const int8_t* src, + const int m, const int n, cudaStream_t stream); + } //namespace fastertransformer diff --git a/fastertransformer/cuda/cuda_kernels.cu b/fastertransformer/cuda/cuda_kernels.cu index a9c74c4c4..467bf4fec 100644 --- a/fastertransformer/cuda/cuda_kernels.cu +++ b/fastertransformer/cuda/cuda_kernels.cu @@ -14,38 +14,15 @@ * limitations under the License. */ -#include "fastertransformer/common.h" - +#include "fastertransformer/utils/common.h" #include "cuda_kernels.h" #include #include #include #include #include -namespace fastertransformer{ - -template -__inline__ __device__ -T gelu(T x) -{ - float cdf = 0.5f * (1.0f + tanhf((0.7978845608028654f * (x + 0.044715f * x * x * x)))); - return x * cdf; -} - -template <> -__inline__ __device__ -half2 gelu(half2 val) -{ - half2 val_pow3 = __hmul2(val, __hmul2(val, val)); - float2 tmp_pow = __half22float2(val_pow3); - float2 tmp = __half22float2(val); - - tmp.x = 0.5f * (1.0f + tanhf((0.7978845608028654f * (tmp.x + 0.044715f * tmp_pow.x)))); - tmp.y = 0.5f * (1.0f + tanhf((0.7978845608028654f * (tmp.y + 0.044715f * tmp_pow.y)))); - return __hmul2(val, __float22half2_rn(tmp)); - -} +namespace fastertransformer{ template __inline__ __device__ @@ -75,7 +52,6 @@ T blockReduceSum(T val) return val; } - template __inline__ __device__ T warpReduceMax(T val) @@ -107,278 +83,7 @@ T blockReduceMax(T val) } template -__global__ -void add_bias_act(T* out, const T* bias, int m, int n) -{ - T val, reg_bias; - - int row_id = blockIdx.x; - int ite = n / blockDim.x; - int tid = threadIdx.x; - - for(int i = 0; i < ite; ++i) - { - reg_bias = __ldg(&bias[i * blockDim.x + tid]); - row_id = blockIdx.x; - - while(row_id < m){ - val = out[tid + i * blockDim.x + row_id * n]+ reg_bias; - out[tid + i * blockDim.x + row_id * n] = gelu(val); - row_id += gridDim.x; - } - } -} - -template <> -__global__ -void add_bias_act(half* out, const half* bias, int m, int n) -{ - half2 val, reg_bias; - int row_id = blockIdx.x; - int ite = n / blockDim.x / 2; - int tid = threadIdx.x; - - half2* out_ptr = (half2*) out; - const half2* bias_ptr = (half2*) bias; - for(int i = 0; i < ite; ++i) - { - reg_bias = __ldg(&bias_ptr[i * blockDim.x + tid]); - row_id = blockIdx.x; - - while(row_id < m){ - val = out_ptr[tid + i * blockDim.x + row_id * n / 2]; - val = __hadd2(val, reg_bias); - out_ptr[tid + i * blockDim.x + row_id * n / 2] = gelu(val); - row_id += gridDim.x; - } - } -} - -template -__global__ -void add_bias_input_layernorm(T* out, const T* input, const T* bias, const T* gamma, const T* beta, int m, int n) -{ - int tid = threadIdx.x; - - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - - float local_out = 0.0f; - local_out += (float)(out[blockIdx.x * n + tid] + input[blockIdx.x * n + tid] + __ldg(&bias[tid])); - - mean = blockReduceSum(local_out); - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - variance = blockReduceSum((local_out - s_mean) * (local_out - s_mean)); - if(threadIdx.x == 0) - s_variance = variance / n + 1e-6f; - __syncthreads(); - - out[blockIdx.x * n + tid] = - (T)(((local_out - s_mean) * rsqrtf(s_variance)) * (float)(__ldg(&gamma[tid])) + (float)(__ldg(&beta[tid]))); -} - -template <> -__global__ -void add_bias_input_layernorm(half* out, const half* input, const half* bias, - const half* gamma, const half* beta, int m, int n) -{ - - int tid = threadIdx.x; - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - float2 local_out_fp2; - - half2* out_ptr = (half2*)out; - const half2* input_ptr = (const half2*)input; - const half2* bias_ptr = (const half2*)bias; - const half2* gamma_ptr = (const half2*)gamma; - const half2* beta_ptr = (const half2*)beta; - - float local_out = 0.0f; - int id = blockIdx.x * n / 2 + tid; - local_out_fp2 = __half22float2(__hadd2(__hadd2(out_ptr[id], input_ptr[id]), __ldg(&bias_ptr[tid]))); - local_out += local_out_fp2.x; - local_out += local_out_fp2.y; - - mean = blockReduceSum(local_out); - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - variance = (local_out_fp2.x - s_mean) * (local_out_fp2.x - s_mean); - variance += (local_out_fp2.y - s_mean) * (local_out_fp2.y - s_mean); - variance = blockReduceSum(variance); - if(threadIdx.x == 0) - s_variance = rsqrtf(variance / n + 1e-6f); - __syncthreads(); - - float2 gamma_val = __half22float2(__ldg(&gamma_ptr[tid])); - float2 beta_val = __half22float2(__ldg(&beta_ptr[tid])); - local_out_fp2.x = (local_out_fp2.x - s_mean) * s_variance * gamma_val.x + beta_val.x; - local_out_fp2.y = (local_out_fp2.y - s_mean) * s_variance * gamma_val.y + beta_val.y; - out_ptr[id] = __float22half2_rn(local_out_fp2); -} - - -template -__global__ -void add_bias_input_layernorm_v2(T* out, const T* __restrict input, const T* __restrict bias, - const T* __restrict gamma, const T* __restrict beta, int n) -{ - const int ite = 4; - const int tid = threadIdx.x; - const int bid = blockIdx.x; - - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - float local_out[ite]; - - float sum = 0.0f; - #pragma unroll - for(int i = 0; i < ite; i++) - { - int col_id = i * blockDim.x + tid; - int id = bid * n + col_id; - local_out[i] = (float)(out[id] + __ldg(&input[id]) + __ldg(&bias[col_id])); - sum += local_out[i]; - } - - mean = blockReduceSum(sum); - if(tid == 0) - s_mean = mean / n; - __syncthreads(); - - float var = 0.0f; - #pragma unroll - for(int i = 0; i < ite; i++) - { - float diff = local_out[i] - s_mean; - var += diff * diff; - } - - variance = blockReduceSum(var); - if(tid == 0) - s_variance = rsqrtf(variance / n + 1e-6f); - __syncthreads(); - - #pragma unroll - for(int i = 0; i < ite; i++) - { - int col_id = i * blockDim.x + tid; - int id = bid * n + col_id; - out[id] = (T)((local_out[i] - s_mean) * s_variance * (float)__ldg(&gamma[col_id]) + (float)__ldg(&beta[col_id])); - } -} - -template <> -__global__ -void add_bias_input_layernorm_v2(half* out, const half* __restrict input, const half* __restrict bias, - const half* __restrict gamma, const half* __restrict beta, int n) -{ - const int ite = 4; - const int tid = threadIdx.x; - const int bid = blockIdx.x; - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - half2 local_out_half2[ite]; - - half2* out_ptr = (half2*)out; - const half2* input_ptr = (const half2*)input; - const half2* bias_ptr = (const half2*)bias; - const half2* gamma_ptr = (const half2*)gamma; - const half2* beta_ptr = (const half2*)beta; - - // float sum = 0.0f; - half2 sum = __float2half2_rn(0.0f); - #pragma unroll - for(int i = 0; i < ite; i++) - { - int col_id = i * blockDim.x + tid; - int id = bid * n / 2 + col_id; - local_out_half2[i] = out_ptr[id] + __ldg(&input_ptr[id]) + __ldg(&bias_ptr[col_id]); - sum += local_out_half2[i]; - } - - mean = blockReduceSum((float)(sum.x + sum.y)); - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - float var = 0.0f; - half2 s_mean_2 = __float2half2_rn(s_mean); - #pragma unroll - for(int i = 0; i < ite; i++) - { - local_out_half2[i] = local_out_half2[i] - s_mean_2; - float v1 = (float)local_out_half2[i].x; - float v2 = (float)local_out_half2[i].y; - var += v1 * v1 + v2 * v2; - } - - variance = blockReduceSum(var); - if(threadIdx.x == 0) - s_variance = rsqrtf(variance / n + 1e-6f); - __syncthreads(); - - half2 s_var_2 = __float2half2_rn(s_variance); - #pragma unroll - for(int i = 0; i < ite; i++) - { - int col_id = i * blockDim.x + tid; - int id = bid * n / 2 + col_id; - out_ptr[id] = local_out_half2[i] * s_var_2 * __ldg(&gamma_ptr[col_id]) + __ldg(&beta_ptr[col_id]); - } -} - -template -void add_bias_act_kernelLauncher(T* out, const T* bias, int m, int n, cudaStream_t stream) -{ - dim3 grid(ceil(m / 4.)); - dim3 block(n / 4); - assert(block.x <= 1024); - add_bias_act<<>>(out, bias, m, n); -} - -template -void add_bias_input_layernorm_kernelLauncher(T* out, const T* input, const T* bias, - const T* gamma, const T* beta, int m, int n, cudaStream_t stream) -{ - dim3 grid(m); - dim3 block(n); - assert(n <= 1024); - if(n == 768 || n == 1024) - add_bias_input_layernorm_v2<<>>(out, input, bias, gamma, beta, n); - else - add_bias_input_layernorm<<>>(out, input, bias, gamma, beta, m, n); -} - -template <> -void add_bias_input_layernorm_kernelLauncher(half* out, const half* input, const half* bias, - const half* gamma, const half* beta, int m, int n, cudaStream_t stream) -{ - dim3 grid(m); - dim3 block(n / 2); - assert(n / 2 <= 1024); - - if(m >= 512 && (n == 768 || n == 1024)) - add_bias_input_layernorm_v2<<>>(out, input, bias, gamma, beta, n); - else - add_bias_input_layernorm<<>>(out, input, bias, gamma, beta, m, n); -} - -template -__global__ void update_logits_kernel(T* logits, const T* bias, const int end_id, const bool* finished, const int n) +__global__ void update_logits_kernel(float* logits, const T* tmp_logits, const T* bias, const int end_id, const bool* finished, const int n) { int bid = blockIdx.x; bool finish = finished[bid]; @@ -388,35 +93,45 @@ __global__ void update_logits_kernel(T* logits, const T* bias, const int end_id, __shared__ float s_max_val; __shared__ float s_sum_val; - for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + if(finish) { - if(finish) - logits[offset + tid] = (tid == end_id) ? FLT_MAX : -1 * FLT_MAX; - else - logits[offset + tid] += bias[tid]; - max_val = max(max_val, logits[offset + tid]); + for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + { + logits[offset + tid] = (tid == end_id) ? 0 : -FLT_MAX; + } } + else + { + for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + { + if(finish) + logits[offset + tid] = (tid == end_id) ? FLT_MAX : -1 * FLT_MAX; + else + logits[offset + tid] = (float)(tmp_logits[offset + tid] + bias[tid]); + max_val = max(max_val, logits[offset + tid]); + } - max_val = blockReduceMax((float)max_val); - if(threadIdx.x == 0) - s_max_val = max_val; - __syncthreads(); + max_val = blockReduceMax((float)max_val); + if(threadIdx.x == 0) + s_max_val = max_val; + __syncthreads(); - float sum_val = 0.0f; - for(int tid = threadIdx.x; tid < n; tid += blockDim.x) - { - logits[offset + tid] = __expf((float)logits[offset + tid] - s_max_val); - sum_val += (float)logits[offset + tid]; - } + float sum_val = 0.0f; + for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + { + logits[offset + tid] = __expf((float)logits[offset + tid] - s_max_val); + sum_val += (float)logits[offset + tid]; + } - sum_val = blockReduceSum(sum_val); - if(threadIdx.x == 0) - s_sum_val = sum_val; - __syncthreads(); + sum_val = blockReduceSum(sum_val); + if(threadIdx.x == 0) + s_sum_val = sum_val; + __syncthreads(); - for(int tid = threadIdx.x; tid < n; tid += blockDim.x) - { - logits[offset + tid] = logf((float)logits[offset + tid] / s_sum_val); + for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + { + logits[offset + tid] = logf((float)logits[offset + tid] / s_sum_val); + } } } @@ -445,11 +160,11 @@ __global__ void update_logits_kernel_without_softmax(T* logits, const T* bias, c template __global__ void softmax_kernel(T* logits, const T* bias, const int end_id, const bool* finished, - const int n) + const int n_padded, const int n) { int bid = blockIdx.x; bool finish = (finished != nullptr) ? finished[bid] : false; - int offset = bid * n; + int offset = bid * n_padded; float max_val = -1 * FLT_MAX; const bool IS_FP16 = std::is_same::value; @@ -457,14 +172,21 @@ __global__ void softmax_kernel(T* logits, const T* bias, __shared__ float s_max_val; __shared__ float s_sum_val; - for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + for(int tid = threadIdx.x; tid < n_padded; tid += blockDim.x) { - if(finish) - logits[offset + tid] = (tid == end_id) ? MAX_T_VAL : -MAX_T_VAL; + if(tid < n) + { + if(finish) + logits[offset + tid] = (tid == end_id) ? MAX_T_VAL : -MAX_T_VAL; + else + { + T bias_val = (bias != nullptr) ? bias[tid] : (T)0.0f; + logits[offset + tid] += bias_val; + } + } else { - T bias_val = (bias != nullptr) ? bias[tid] : (T)0.0f; - logits[offset + tid] += bias_val; + logits[offset + tid] = -MAX_T_VAL; } max_val = max(max_val, (float)logits[offset + tid]); } @@ -475,7 +197,7 @@ __global__ void softmax_kernel(T* logits, const T* bias, __syncthreads(); float sum_val = 0.0f; - for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + for(int tid = threadIdx.x; tid < n_padded; tid += blockDim.x) { logits[offset + tid] = __expf((float)logits[offset + tid] - s_max_val); sum_val += (float)logits[offset + tid]; @@ -486,7 +208,7 @@ __global__ void softmax_kernel(T* logits, const T* bias, s_sum_val = sum_val; __syncthreads(); - for(int tid = threadIdx.x; tid < n; tid += blockDim.x) + for(int tid = threadIdx.x; tid < n_padded; tid += blockDim.x) { logits[offset + tid] = ((float)logits[offset + tid] / s_sum_val); } @@ -596,15 +318,43 @@ template void remove_sequence_length_padding_kernelLauncher(const half* src, hal int* mask_offset, const int m, const int n, cudaStream_t stream); -void update_logits(float* logits, const float* bias, const int end_id, const bool* finished, +template +__global__ void cuda_random_uniform_kernel(T* buffer, const int size) +{ + const int idx = blockIdx.x * blockDim.x + threadIdx.x; + curandState_t local_state; + curand_init((T)1337.f, idx, 0, &local_state); + for(int index = idx; index < size; index += blockDim.x * gridDim.x) + { + buffer[index] = (T)(curand_uniform(&local_state) * 0.2f - 0.1f); + } +} + +template +void cuda_random_uniform_kernelLauncher(T *buffer, const int size) +{ + cuda_random_uniform_kernel<<<256, 256>>>(buffer, size); +} + +template void cuda_random_uniform_kernelLauncher(float *buffer, const int size); +template void cuda_random_uniform_kernelLauncher(half *buffer, const int size); + +template +void update_logits(float* logits, const T* tmp_logits, const T* bias, const int end_id, const bool* finished, const int m, const int n, cudaStream_t stream) { dim3 grid(m); dim3 block(min(n, 1024)); /*n is the vocab_size, e.g., 30000, 7000.... vocab_size is usually very big. */ - update_logits_kernel<<>>(logits, bias, end_id, finished, n); + update_logits_kernel<<>>(logits, tmp_logits, bias, end_id, finished, n); } +template void update_logits(float* logits, const float* tmp_logits, const float* bias, const int end_id, + const bool* finished, const int m, const int n, cudaStream_t stream); + +template void update_logits(float* logits, const half* tmp_logits, const half* bias, const int end_id, + const bool* finished, const int m, const int n, cudaStream_t stream); + template void update_logits_without_softmax(T* logits, const T* bias, const int end_id, const bool* finished, const int m, const int n, cudaStream_t stream) @@ -623,33 +373,19 @@ template void update_logits_without_softmax(half* logits, const half* bias, cons template void softmax_kernelLauncher(T* logits, const T* bias, const int end_id, const bool* finished, - const int m, const int n, cudaStream_t stream) + const int m, const int n_padded, const int n, cudaStream_t stream) { dim3 grid(m); dim3 block(min(n, 1024)); /*n is the vocab_size, e.g., 30000, 7000.... vocab_size is usually very big. */ - softmax_kernel<<>>(logits, bias, end_id, finished, n); + softmax_kernel<<>>(logits, bias, end_id, finished, n_padded, n); } template void softmax_kernelLauncher(float* logits, const float* bias, const int end_id, const bool* finished, - const int m, const int n, cudaStream_t stream); + const int m, const int n_padded, const int n, cudaStream_t stream); template void softmax_kernelLauncher(half* logits, const half* bias, const int end_id, const bool* finished, - const int m, const int n, cudaStream_t stream); - -template void add_bias_act_kernelLauncher( - float* out, const float* bias, int m, int n, cudaStream_t stream); - -template void add_bias_input_layernorm_kernelLauncher( - float* out, const float* input, const float* bias, const float* gamma, const float* beta, - int m, int n, cudaStream_t stream); - -template void add_bias_act_kernelLauncher( - half* out, const half* bias, int m, int n, cudaStream_t stream); - -template void add_bias_input_layernorm_kernelLauncher( - half* out, const half* input, const half* bias, const half* gamma, const half* beta, - int m, int n, cudaStream_t stream); + const int m, const int n_padded, const int n, cudaStream_t stream); /* *********************************** Debug tools *********************************** */ @@ -678,6 +414,17 @@ void print_kernel(const T* buf, uint size) printf("\n"); } +template <> +__global__ +void print_kernel(const int* buf, uint size) +{ + for(int i = 0; i < size; i++) + { + printf("%d ", buf[i]); + } + printf("\n"); +} + template void print_first_k(const T* buf, uint size, cudaStream_t stream) { @@ -701,6 +448,7 @@ void print_abs_mean(const T* buf, uint size, cudaStream_t stream) template void print_first_k(const float*, uint size, cudaStream_t); template void print_first_k(const half*, uint size, cudaStream_t); template void print_first_k(const int*, uint size, cudaStream_t); +template void print_first_k(const bool*, uint size, cudaStream_t); template void print_abs_mean(const float* buf, uint size, cudaStream_t stream); template void print_abs_mean(const half* buf, uint size, cudaStream_t stream); @@ -708,6 +456,7 @@ template void print_abs_mean(const int* buf, uint size, cudaStream_t stream); /* **************************** end of Debug tools *********************************** */ +// TODO remove in v4.1 /* *************************** depreciated kernels *********************************** */ template diff --git a/fastertransformer/cuda/cuda_kernels.h b/fastertransformer/cuda/cuda_kernels.h index aba208494..a86ce7dbd 100644 --- a/fastertransformer/cuda/cuda_kernels.h +++ b/fastertransformer/cuda/cuda_kernels.h @@ -17,7 +17,7 @@ #include #include #include -#include "fastertransformer/arguments.h" +#include "fastertransformer/utils/arguments.h" #include "fastertransformer/cuda/topk_kernels.cuh" namespace fastertransformer @@ -33,15 +33,6 @@ void init_kernelLauncher(bool* finished, int* sequence_length, int* word_ids, T* cum_log_probs, const int sentence_id, const int batch_size, const int beam_width, cudaStream_t stream); -template -void add_bias_act_kernelLauncher(T* out, const T* bias, int m, int n, cudaStream_t stream); - -template -void add_bias_input_layernorm_kernelLauncher(T *out, const T *input_tensor, - const T *bias, const T *gamma, - const T *beta, int m, int n, - cudaStream_t stream); - template void embedding_lookup_sine_position_encoding_kernel_launcher(T *from_tensor, const T *embedding_table, @@ -72,22 +63,63 @@ void embedding_position_lookups_kernel_launcher(T* from_tensor, int step, cudaStream_t stream); +template +void start_id_embedding_position_lookups_kernel_launcher(T* from_tensor, + int* output_ids, + const T* embedding_table, + const T* pos_table, + const int* word_ids, + const int start_step, + const int length, + const int max_length, + const int batch_size, + const int hidden_units, + cudaStream_t stream); + template void apply_temperature_penalty_kernelLauncher(T* logits, const T temperature, const int m, - const int n, + const int vocab_size, + const int vocab_size_padd, cudaStream_t stream); +void set_start_ids_kernelLauncher(int* out_ids, + const int* in_ids, + const int max_start_len, + const int step, + const int ite, + const int batch_size, + const int local_batch_size, + const int end_id, + cudaStream_t stream); + +template +void kernel_padding_kernelLauncher(T *padded_kernel, const T *kernel, + const int row_dim, const int col_dim, + const int padded_col_dim, cudaStream_t stream); + +template +void bias_padding_kernelLauncher(T1 *padded_bias, const T2 *bias, + const int col_dim, const int padded_col_dim, + cudaStream_t stream); + template -void transpose(T *out, const T *in, int batch, +void transpose(T *out, const T *in, int batch, int height, int width, int stride, cudaStream_t stream); -/* *************************** end of common kernel *********************************** */ + +template +void transpose_axis_01_kernelLauncher(DataType_ *out, DataType_ *in, const int dim0, + const int dim1, const int dim2, cudaStream_t stream); + void build_sequence_length_padding_offset_kernelLauncher(const int *sequence_length, const int batch_size, const int max_seq_len, int *valid_word_num, int *tmp_mask_offset, cudaStream_t stream); +template +void cuda_random_uniform_kernelLauncher(T *buffer, const int size); + /* *************************** end of common kernel *********************************** */ /* ********************************** BeamSearch kernel *********************************** */ @@ -96,7 +128,8 @@ void broadcast_kernelLauncher(float *log_probs, float *cum_log_probs, const int batch_size, const int beam_width, const int vocab_size, cudaStream_t stream); -void update_logits(float* logits, const float* bias, const int end_ids, +template +void update_logits(float* logits, const T *tmp_logits, const T* bias, const int end_ids, const bool* finished, const int m, const int n, cudaStream_t stream); @@ -106,9 +139,9 @@ void apply_logit_penalties(int step, int* current_ids, int* previous_ids, int* parent_ids, - Gpt2Arguments args, + GptArguments args, cudaStream_t stream); - + void update_kernelLauncher(float* log_probs, float* cum_log_probs, bool* finished, int* parent_ids, int* sequence_length, int* word_ids, int* output_ids, @@ -126,8 +159,10 @@ void update_kernelLauncher_v2(bool* finished, int* parent_ids, template void update_KV_cache_kernelLauncher(T **key_cache, T **value_cache, const int *beam_ids, + const bool* finished, const int batch_size, const int beam_width, - const int hidden_dim, const int step, + const int head_num, const int size_per_head, + const int step, const int decoder_max_seq_len, const int cache_size, const int decoder_layers, cudaStream_t stream); @@ -163,6 +198,16 @@ void topp_initialization_kernelLauncher(bool* finished, const int logits_buf_size, DecodingSamplingArguments args, cudaStream_t stream); + +void topp_initialization_kernelLauncher_v2(bool* finished, + int* sequence_length, + int* word_ids, + int* topp_id_val_buf, + int* topp_offset_buf, + int* begin_topp_offset_buf_, + const int logits_buf_size, + DecodingSamplingArguments args, + cudaStream_t stream); void init_topp_id_val_kernel_kernelLauncher(int *topp_id_val_buf, int *topp_offset_buf, @@ -177,7 +222,7 @@ void update_logits_without_softmax(T* logits, const T* bias, const int end_ids, template void softmax_kernelLauncher(T* logits, const T* bias, const int end_ids, - const bool* finished, const int m, const int n, + const bool* finished, const int m, const int n_padded, const int n, cudaStream_t stream); /* *************************** end of Sampling kernel *********************************** */ diff --git a/fastertransformer/cuda/decoding_kernel_check.cpp b/fastertransformer/cuda/decoding_kernel_check.cpp index 95f8ca843..e5636836f 100644 --- a/fastertransformer/cuda/decoding_kernel_check.cpp +++ b/fastertransformer/cuda/decoding_kernel_check.cpp @@ -93,7 +93,7 @@ void init_kernel_check(bool *d_finished, int *d_sequence_length, int *d_word_ids printf("[INFO] decoding init check Finish. \n"); } -void update_logits_kernel_check(float *logits, const float *bias, const int end_id, const bool *finished, const int m, const int n, cudaStream_t stream) +void update_logits_kernel_check(float *logits, const float *tmp_logits, const float *bias, const int end_id, const bool *finished, const int m, const int n, cudaStream_t stream) { // m: batch_size * beam_width // n: vocab size @@ -109,7 +109,7 @@ void update_logits_kernel_check(float *logits, const float *bias, const int end_ check_cuda_error(cudaMemcpy(h_logits, logits, sizeof(float) * m * n, cudaMemcpyDeviceToHost)); check_cuda_error(cudaMemcpy(h_bias, bias, sizeof(float) * n, cudaMemcpyDeviceToHost)); check_cuda_error(cudaMemcpy(h_finished, finished, sizeof(bool) * m, cudaMemcpyDeviceToHost)); - update_logits(logits, bias, end_id, finished, m, n, stream); + update_logits(logits, tmp_logits, bias, end_id, finished, m, n, stream); cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); check_cuda_error(cudaMemcpy(h_logits_after_update, logits, sizeof(float) * m * n, cudaMemcpyDeviceToHost)); diff --git a/fastertransformer/cuda/decoding_kernel_check.h b/fastertransformer/cuda/decoding_kernel_check.h index 6308a11ef..f496e519b 100644 --- a/fastertransformer/cuda/decoding_kernel_check.h +++ b/fastertransformer/cuda/decoding_kernel_check.h @@ -16,7 +16,7 @@ limitations under the License. #pragma once #include "cuda_kernels.h" -#include "fastertransformer/common.h" +#include "fastertransformer/utils/common.h" #include #include #include @@ -41,9 +41,11 @@ void update_kernel_check(float* log_probs, float* cum_log_probs, int* ids, bool* const int end_id, int* finished_count); template -void update_KV_cache_kernel_check(T** key_cache, T** value_cache, const int* beam_ids, const int batch_size, const int beam_width, const int hidden_dim, - const int step, const int cache_size, const int decoder_layers, cudaStream_t stream){ +void update_KV_cache_kernel_check(T** key_cache, T** value_cache, const int* beam_ids, const int batch_size, const int beam_width, + const int head_num, const int size_per_head, const int step, const int cache_size, const int decoder_layers, cudaStream_t stream){ + const int hidden_dim = head_num * size_per_head; + printf("[INFO] decoding update KV cache check for step %d. \n", step); const int src_id = step & 0x1; const int tgt_id = 1 - src_id; @@ -67,7 +69,8 @@ void update_KV_cache_kernel_check(T** key_cache, T** value_cache, const int* bea check_cuda_error(cudaMemcpy(h_beam_ids, beam_ids, sizeof(int) * batch_size * beam_width, cudaMemcpyDeviceToHost)); // compute on GPU and copy the result to CPU - update_KV_cache_kernelLauncher(key_cache, value_cache, beam_ids, batch_size, beam_width, hidden_dim, step, cache_size, decoder_layers, stream); + // we use sequence major cache format here + update_KV_cache_kernelLauncher(key_cache, value_cache, beam_ids, nullptr, batch_size, beam_width, head_num, size_per_head, step, -1, cache_size, decoder_layers, stream); cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); check_cuda_error(cudaMemcpy(h_key_cache_tgt_after_update, key_cache[tgt_id], sizeof(T) * cache_size * decoder_layers, cudaMemcpyDeviceToHost)); diff --git a/fastertransformer/cuda/decoding_kernels.cu b/fastertransformer/cuda/decoding_kernels.cu index a806c4e7f..2c0b56ea7 100644 --- a/fastertransformer/cuda/decoding_kernels.cu +++ b/fastertransformer/cuda/decoding_kernels.cu @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "fastertransformer/common.h" +#include "fastertransformer/utils/common.h" #include "cuda_kernels.h" #include "cub/cub.cuh" @@ -36,15 +36,18 @@ namespace fastertransformer int* word_ids, T* cum_log_probs, const int sentence_id, - const int beam_width) + const int beam_width, + const int batch_size) { const bool IS_FP16 = std::is_same::value; const T MAX_T_VAL = (IS_FP16)? HALF_FLT_MAX : 1e20f; - int tid = threadIdx.x; - finished[tid] = false; - sequence_length[tid] = 0; - word_ids[tid] = sentence_id; - cum_log_probs[tid] = (tid % beam_width == 0) ? (T)0.0f: -MAX_T_VAL; + for(int index = blockIdx.x * blockDim.x + threadIdx.x; index < batch_size * beam_width; index += blockDim.x * gridDim.x) + { + finished[index] = false; + sequence_length[index] = 0; + word_ids[index] = sentence_id; + cum_log_probs[index] = (index % beam_width == 0) ? (T)0.0f: -MAX_T_VAL; + } } template @@ -57,27 +60,30 @@ namespace fastertransformer const int beam_width, cudaStream_t stream) { - dim3 grid(1); - dim3 block(min(1024, batch_size * beam_width)); - assert(batch_size * beam_width <= 1024); + dim3 grid((int)ceil(batch_size * beam_width * 1.0 / 256)); + dim3 block(256); init_kernel<<>>(finished, sequence_length, word_ids, cum_log_probs, sentence_id, - beam_width); + beam_width, + batch_size); } __global__ void sampling_init_kernel(bool* finished, int* sequence_length, int* word_ids, - const int start_id) + const int start_id, + const int batch_size) { - const int tid = threadIdx.x; - finished[tid] = false; - sequence_length[tid] = 0; - word_ids[tid] = start_id; + for(int index = blockIdx.x * blockDim.x + threadIdx.x; index < batch_size; index += blockDim.x * gridDim.x) + { + finished[index] = false; + sequence_length[index] = 0; + word_ids[index] = start_id; + } } void sampling_init_kernelLauncher(bool* finished, @@ -87,14 +93,15 @@ namespace fastertransformer const int batch_size, cudaStream_t stream) { - dim3 grid(1); - dim3 block(min(1024, batch_size)); - assert(batch_size <= 1024); + dim3 grid((int)ceil(batch_size * 1.0 / 256)); + dim3 block(256); + sampling_init_kernel<<>>(finished, sequence_length, word_ids, - start_id); + start_id, + batch_size); } template @@ -136,8 +143,7 @@ namespace fastertransformer hidden_units); } - - + // TODO Add half2 implementation template __global__ void embedding_position_lookups_kernel(T* from_tensor, const T* embedding_table, @@ -178,15 +184,84 @@ namespace fastertransformer step); } + template + __global__ void start_id_embedding_position_lookups_kernel(T* from_tensor, + int* output_ids, + const T* embedding_table, + const T* pos_table, + const int* word_ids, + const int start_step, + const int length, + const int max_length, + const int batch_size, + const int hidden_units) + { + for(int index = blockIdx.x * blockDim.x + threadIdx.x; index < batch_size * length * hidden_units; index += blockDim.x * gridDim.x) + { + // transpose the word_ids [batch, length] (part of [batch, max_length]) to output_ids [length, batch] + if(index < batch_size * max_length) + { + const int seq_id = index % max_length; + const int batch_id = index / max_length; + if(seq_id < length) + output_ids[seq_id * batch_size + batch_id] = word_ids[index]; + // output_ids[index] = word_ids[index]; + } + + // embedding lookup from word ids [batch, length] (part of [batch, max_length]) and [vocab, hidden] to generate embedding [batch, length, hidden] + const int word_index = index / hidden_units; + const int word_index_row = word_index / length; + const int word_index_col = word_index % length; + const int real_word_index = word_index_row * max_length + word_index_col; + const int step = start_step + word_index % length; + const int col_index = index % hidden_units; + from_tensor[index] = embedding_table[word_ids[real_word_index] * hidden_units + col_index] + + pos_table[(step - 1) * hidden_units + col_index]; + } + } + + + template + void start_id_embedding_position_lookups_kernel_launcher(T* from_tensor, + int *output_ids, + const T* embedding_table, + const T* pos_table, + const int* word_ids, + const int start_step, + const int length, + const int max_length, + const int batch_size, + const int hidden_units, + cudaStream_t stream) + { + dim3 grid(min(batch_size * length, 65536)); + dim3 block(min(hidden_units, 1024)); + start_id_embedding_position_lookups_kernel<<>>(from_tensor, + output_ids, + embedding_table, + pos_table, + word_ids, + start_step, + length, + max_length, + batch_size, + hidden_units); + } + + // TODO Add half2 implementation template __global__ void apply_temperature_penalty_kernel(T* logits, const T temperature_inverse, const int m, - const int n) + const int vocab_size, + const int vocab_size_padd) { - for(int index = blockIdx.x * blockDim.x + threadIdx.x; index < m * n; index += blockDim.x * gridDim.x) + const bool IS_FP16 = std::is_same::value; + const T MAX_T_VAL = (IS_FP16)? HALF_FLT_MAX : FLT_MAX; + for(int index = blockIdx.x * blockDim.x + threadIdx.x; index < m * vocab_size_padd; index += blockDim.x * gridDim.x) { - logits[index] = logits[index] * temperature_inverse; + if(index % vocab_size_padd < vocab_size) logits[index] = logits[index] * temperature_inverse; + else logits[index] = -MAX_T_VAL; } } @@ -194,16 +269,112 @@ namespace fastertransformer void apply_temperature_penalty_kernelLauncher(T* logits, const T temperature, const int m, - const int n, + const int vocab_size, + const int vocab_size_padd, cudaStream_t stream) { dim3 grid(min(m, 65536)); - dim3 block(min(n, 1024)); + dim3 block(min(vocab_size_padd, 1024)); const T temperature_inverse = (T)(1.f / (float) temperature); apply_temperature_penalty_kernel<<>>(logits, temperature_inverse, m, - n); + vocab_size, + vocab_size_padd); + } + + __global__ void set_start_ids_kernel(int* out_ids, + const int* in_ids, + const int max_start_len, + const int step, + const int ite, + const int batch_size, + const int local_batch_size, + const int end_id) + { + const int id = blockIdx.x * blockDim.x + threadIdx.x; + if(id < local_batch_size) + { + int in_id = in_ids[(ite * local_batch_size + id) * max_start_len + step]; + if(in_id != end_id) + out_ids[step * batch_size + ite * local_batch_size + id] = in_ids[(ite * local_batch_size + id) * max_start_len + step]; + } + } + + void set_start_ids_kernelLauncher(int* out_ids, + const int* in_ids, + const int max_start_len, + const int step, + const int ite, + const int batch_size, + const int local_batch_size, + const int end_id, + cudaStream_t stream) + { + dim3 grid((int)(ceil(local_batch_size / 512.))); + set_start_ids_kernel<<>>(out_ids, + in_ids, + max_start_len, + step, + ite, + batch_size, + local_batch_size, + end_id); + } + + template + __global__ void kernel_padding_kernel(T *padded_kernel, const T *kernel, + const int row_dim, const int col_dim, const int padded_col_dim) + { + for(int id = threadIdx.x + blockIdx.x * blockDim.x; id < row_dim * padded_col_dim; id += blockDim.x * gridDim.x) + { + int row_id = id / padded_col_dim; + int col_id = id % padded_col_dim; + if(col_id < col_dim) + { + padded_kernel[id] = kernel[row_id * col_dim + col_id]; + } + else + { + padded_kernel[id] = (T)(0.0f); + } + } + } + + template + void kernel_padding_kernelLauncher(T *padded_kernel, const T *kernel, + const int row_dim, const int col_dim, const int padded_col_dim, cudaStream_t stream) + { + // pad 0 into the kernel from shape [row_dim, col_dim] to [row_dim, padded_col_dim] + dim3 block(512); + dim3 grid(min(65536, (int)(ceil(row_dim * padded_col_dim / 512.)) )); + kernel_padding_kernel<<>>(padded_kernel, kernel, row_dim, col_dim, padded_col_dim); + } + + template + __global__ void bias_padding_kernel(T1 *padded_bias, const T2 *bias, + const int col_dim, const int padded_col_dim) + { + const int index = blockIdx.x * blockDim.x + threadIdx.x; + if(index < col_dim) + { + padded_bias[index] = (T1)bias[index]; + } + else if(index >= col_dim && index < padded_col_dim) + { + padded_bias[index] = (T1)(std::is_same::value ? -60000 : -1e20f); + } + } + + template + void bias_padding_kernelLauncher(T1 *padded_bias, const T2 *bias, + const int col_dim, const int padded_col_dim, cudaStream_t stream) + { + // pad -max into the bias from shape [col_dim] to [padded_col_dim] + dim3 block(512); + dim3 grid( (int)(ceil(padded_col_dim / 512.)) ); + assert(grid.x < 65536); + bias_padding_kernel<<>>(padded_bias, bias, col_dim, padded_col_dim); } /* *************************** end of common kernel *********************************** */ @@ -289,19 +460,22 @@ namespace fastertransformer int* sequence_length, int* word_ids, int* output_ids, const int vocab_size, const int end_id, + const int batch_size, const int beam_width, int* finished_count) { - int tid = threadIdx.x; - sequence_length[tid] = finished[tid] ? sequence_length[tid] : sequence_length[tid] + 1; - - int beam_id = word_ids[tid] / vocab_size; - int word_id = word_ids[tid] % vocab_size; - - sequence_length[tid] = sequence_length[beam_id]; - finished[tid] = word_id == end_id ? 1 : 0; - parent_ids[tid] = beam_id; - word_ids[tid] = word_id; - output_ids[tid] = word_id; + for(int index = blockIdx.x * blockDim.x + threadIdx.x; index < batch_size * beam_width; index += blockDim.x * gridDim.x) + { + sequence_length[index] = finished[index] ? sequence_length[index] : sequence_length[index] + 1; + + int beam_id = word_ids[index] / vocab_size; + int word_id = word_ids[index] % vocab_size; + + sequence_length[index] = sequence_length[beam_id]; + finished[index] = word_id == end_id ? 1 : 0; + parent_ids[index] = beam_id; + word_ids[index] = word_id; + output_ids[index] = word_id; + } } void update_kernelLauncher_v2(bool* finished, int* parent_ids, @@ -311,14 +485,15 @@ namespace fastertransformer DecodingBeamsearchArguments args, cudaStream_t stream) { - dim3 grid(1); - dim3 block(args.batch_size_ * args.beam_width_); - assert(block.x <= 1024); + dim3 grid((int)ceil(args.batch_size_ * args.beam_width_ * 1.0 / 256)); + dim3 block(256); update_kernel_v2<<>>(finished, parent_ids, sequence_length, word_ids, - output_ids, args.vocab_size_, - args.end_id_, finished_count); + output_ids, args.vocab_size_padded_, + args.end_id_, + args.batch_size_, args.beam_width_, + finished_count); } template @@ -326,7 +501,8 @@ namespace fastertransformer T* key_tgt_cache, const T* __restrict value_src_cache, T* value_tgt_cache, - const int* beam_ids, + const int* beam_ids, + const bool* finished, const int batch_size, const int beam_width, const int hidden_dim, @@ -337,6 +513,7 @@ namespace fastertransformer int layer_id = blockIdx.x / batch_size / beam_width / step; int batch_id = (blockIdx.x % (batch_size * beam_width * step)) / (beam_width * step); int beam_id = (blockIdx.x % (beam_width * step)) / step; + if(finished[batch_id * beam_width + beam_id]) return; int step_id = blockIdx.x % step; int hidden_id = step_id * batch_size * beam_width * hidden_dim + @@ -365,6 +542,7 @@ namespace fastertransformer const half* __restrict value_src_cache, half* value_tgt_cache, const int* beam_ids, + const bool* finished, const int batch_size, const int beam_width, const int hidden_dim, @@ -375,6 +553,7 @@ namespace fastertransformer int layer_id = blockIdx.x / batch_size / beam_width / step; int batch_id = (blockIdx.x % (batch_size * beam_width * step)) / (beam_width * step); int beam_id = (blockIdx.x % (beam_width * step)) / step; + if(finished[batch_id * beam_width + beam_id]) return; int step_id = blockIdx.x % step; int hidden_id = (step_id * batch_size * beam_width * hidden_dim + @@ -396,29 +575,121 @@ namespace fastertransformer } + template + __global__ void update_KV_batch_major_cache_kernel(const T* __restrict key_src_cache, + T* key_tgt_cache, + const T* __restrict value_src_cache, + T* value_tgt_cache, + const int* beam_ids, + const bool* finished, + const int batch_size, + const int beam_width, + const int size_per_head, + const int cache_size, + const int step, + const int max_seq_len, + const int decoder_layers) + { + int layer_id = blockIdx.z; + int head_id = blockIdx.y; + int bb_id = blockIdx.x; + int batch_id = bb_id / beam_width; + int beam_id = bb_id % beam_width; + + if(finished[batch_id * beam_width + beam_id]) return; + + const int hidden_dim = size_per_head * gridDim.y; + + int src_offset = layer_id * cache_size + + (beam_ids[batch_id * beam_width + beam_id] * hidden_dim + + head_id * size_per_head) * max_seq_len; + int tgt_offset = layer_id * cache_size + + ((batch_id * beam_width + beam_id) * hidden_dim + + head_id * size_per_head) * max_seq_len; + + // for better memory access always do 16 byte loads. + // [B, H, Dh/x, L, x] and [B, H, L, Dh/x, x] (i.e. [B, H, L, Dh]) + auto key_src_ptr = reinterpret_cast(key_src_cache + src_offset); + auto value_src_ptr = reinterpret_cast(value_src_cache + src_offset); + auto key_tgt_ptr = reinterpret_cast(key_tgt_cache + tgt_offset); + auto value_tgt_ptr = reinterpret_cast(value_tgt_cache + tgt_offset); + constexpr int x = (sizeof(T) == 4)? 4 : 8; + + // step starts from 1 + #if 0 + constexpr int WARP_SIZE = 32; + const int num_warps = blockDim.x / WARP_SIZE; + const int warp_id = threadIdx.x / WARP_SIZE; + const int lane_id = threadIdx.x % WARP_SIZE; + for (int dhx = warp_id; dhx < size_per_head/x; dhx += num_warps) + { + for (int tid = lane_id; tid < step; tid += WARP_SIZE) + { + key_tgt_ptr[dhx * max_seq_len + tid] = key_src_ptr[dhx * max_seq_len + tid]; + } + } + #else + // seems to be a bit faster + for (int tid = threadIdx.x; tid < max_seq_len * size_per_head/x; tid += blockDim.x) + { + // could consider fast int division here + if (tid % max_seq_len < step) + { + key_tgt_ptr[tid] = key_src_ptr[tid]; + } + } + #endif + + for (int tid = threadIdx.x; tid < step * size_per_head/x; tid += blockDim.x) + { + value_tgt_ptr[tid] = value_src_ptr[tid]; + } + } + template void update_KV_cache_kernelLauncher(T** key_cache, T** value_cache, const int* beam_ids, + const bool* finished, const int batch_size, - const int beam_width, - const int hidden_dim, - const int step, + const int beam_width, + const int head_num, + const int size_per_head, + const int step, + const int decoder_max_seq_len, const int cache_size, const int decoder_layers, cudaStream_t stream) { - dim3 grid(decoder_layers * batch_size * beam_width * step); - dim3 block(min(1024, hidden_dim)); - block.x = block.x / (4 / sizeof(T)); - int src_id = step & 0x1; int tgt_id = 1 - src_id; - update_KV_cache_kernel<<>>( - key_cache[src_id], key_cache[tgt_id], - value_cache[src_id], value_cache[tgt_id], - beam_ids, batch_size, beam_width, hidden_dim, cache_size, step, decoder_layers); + if (decoder_max_seq_len < 0) + { + int hidden_dim = head_num * size_per_head; + dim3 grid(decoder_layers * batch_size * beam_width * step); + dim3 block(min(1024, hidden_dim)); + block.x = block.x / (4 / sizeof(T)); + + update_KV_cache_kernel<<>>( + key_cache[src_id], key_cache[tgt_id], + value_cache[src_id], value_cache[tgt_id], + beam_ids, finished, + batch_size, beam_width, hidden_dim, cache_size, step, decoder_layers); + } + else + { + dim3 grid(batch_size * beam_width, head_num, decoder_layers); + constexpr int block_sz = 128; + + update_KV_batch_major_cache_kernel<<>>( + key_cache[src_id], key_cache[tgt_id], + value_cache[src_id], value_cache[tgt_id], + beam_ids, finished, + batch_size, beam_width, size_per_head, cache_size, step, + decoder_max_seq_len, decoder_layers); + } + } template @@ -488,10 +759,10 @@ namespace fastertransformer int* current_ids, int* previous_ids, int* parent_ids, - Gpt2Arguments args, + GptArguments args, cudaStream_t stream) { - int vocab_size = args.vocab_size_; + int vocab_size = args.vocab_size_padded_; int beam_width = 1; int batch_size = args.batch_size_; dim3 block(256); @@ -573,6 +844,36 @@ namespace fastertransformer transpose_kernel<<>>(out, in, height, width, tH, tW, stride); } + // TODO Add half2 implementation + template + __global__ void transpose_axis_01_kernel(DataType_ *out, DataType_ *in, const int dim0, const int dim1, const int dim2) + { + int index = threadIdx.x + blockIdx.x * blockDim.x; + if(index < dim0 * dim1 * dim2) + { + const int input_dim2_index = index % dim2; + index = (index - input_dim2_index) / dim2; + const int input_dim1_index = index % dim1; + index = (index - input_dim1_index) / dim1; + const int input_dim0_index = index % dim0; + + out[input_dim1_index * dim0 * dim2 + + input_dim0_index * dim2 + + input_dim2_index] = in[input_dim0_index * dim1 * dim2 + + input_dim1_index * dim2 + + input_dim2_index]; + } + } + + template + void transpose_axis_01_kernelLauncher(DataType_ *out, DataType_ *in, const int dim0, + const int dim1, const int dim2, cudaStream_t stream) + { + dim3 block(512); + dim3 grid((int)(ceil(dim0 * dim1 * dim2 / 512.))); + transpose_axis_01_kernel<<>>(out, in, dim0, dim1, dim2); + } + /* *************************** end of BeamSearch kernel *********************************** */ /* ********************************** Sampling kernel *********************************** */ @@ -611,6 +912,45 @@ namespace fastertransformer } } + __global__ void topp_initialization_kernel_v2(bool* finished, + int* sequence_length, + int* word_ids, + int* topp_id_val_buf, + int* topp_offset_buf, + int* begin_topp_offset_buf_, + const int batch_size, + const int n, + const int start_id) + { + int tid = threadIdx.x; + int bid = blockIdx.x; + + if(bid == 0) + { + for(int i = tid; i < batch_size + 1; i+= blockDim.x) + { + topp_offset_buf[i] = i * n; + begin_topp_offset_buf_[i] = topp_offset_buf[i]; + } + + for(int i = tid; i < batch_size; i+= blockDim.x) + { + if(finished != nullptr) finished[i] = false; + if(sequence_length != nullptr) sequence_length[i] = 0; + if(word_ids != nullptr) word_ids[i] = start_id; + } + } + + int index = tid + bid * blockDim.x; + while(index < batch_size * n) + { + topp_id_val_buf[index] = index % n; + index += blockDim.x * gridDim.x; + } + } + + + void topp_initialization_kernelLauncher(bool* finished, int* sequence_length, int* word_ids, @@ -631,6 +971,28 @@ namespace fastertransformer args.start_id_); } + void topp_initialization_kernelLauncher_v2(bool* finished, + int* sequence_length, + int* word_ids, + int* topp_id_val_buf, + int* topp_offset_buf, + int* begin_topp_offset_buf_, + const int n, + DecodingSamplingArguments args, + cudaStream_t stream) +{ + // n: the coloumn number of logits_buffer for top_p sampling + topp_initialization_kernel_v2<<<32, 512, 0, stream>>>(finished, + sequence_length, + word_ids, + topp_id_val_buf, + topp_offset_buf, + begin_topp_offset_buf_, + args.batch_size_, + n, + args.start_id_); +} + template size_t get_topp_sort_temp_storage_size(const T* log_probs, const int* id_vals, @@ -720,8 +1082,6 @@ namespace fastertransformer step_ids, parent_ids, max_sequence_lengths, beams); } - - /* ********************************** Instantiation *********************************** */ template void embedding_lookup_sine_position_encoding_kernel_launcher(float* from_tensor, @@ -761,25 +1121,73 @@ namespace fastertransformer int step, cudaStream_t stream); + template + void start_id_embedding_position_lookups_kernel_launcher(float* from_tensor, + int* output_ids, + const float* embedding_table, + const float* pos_table, + const int* word_ids, + const int start_step, + const int length, + const int max_length, + const int batch_size, + const int hidden_units, + cudaStream_t stream); + + template + void start_id_embedding_position_lookups_kernel_launcher(half* from_tensor, + int* output_ids, + const half* embedding_table, + const half* pos_table, + const int* word_ids, + const int start_step, + const int length, + const int max_length, + const int batch_size, + const int hidden_units, + cudaStream_t stream); + template void apply_temperature_penalty_kernelLauncher(float* logits, const float temperature, const int m, - const int n, + const int vocab_size, + const int vocab_size_padd, cudaStream_t stream); template void apply_temperature_penalty_kernelLauncher(half* logits, const half temperature, const int m, - const int n, + const int vocab_size, + const int vocab_size_padd, cudaStream_t stream); + template void kernel_padding_kernelLauncher(float *padded_kernel, const float *kernel, + const int row_dim, const int col_dim, + const int padded_col_dim, cudaStream_t stream); + + template void kernel_padding_kernelLauncher(half *padded_kernel, const half *kernel, + const int row_dim, const int col_dim, + const int padded_col_dim, cudaStream_t stream); + + template void bias_padding_kernelLauncher(float *padded_bias, const float *bias, const int col_dim, + const int padded_col_dim, cudaStream_t stream); + + template void bias_padding_kernelLauncher(float *padded_bias, const half *bias, const int col_dim, + const int padded_col_dim, cudaStream_t stream); + + template void bias_padding_kernelLauncher(half *padded_bias, const half *bias, const int col_dim, + const int padded_col_dim, cudaStream_t stream); + template void update_KV_cache_kernelLauncher(float** key_cache, float** value_cache, const int* beam_ids, + const bool* finished, const int batch_size, const int beam_width, - const int hidden_dim, + const int head_num, + const int size_per_head, const int step, + const int decoder_max_seq_len, const int cache_size, const int decoder_layers, cudaStream_t stream); @@ -787,10 +1195,13 @@ namespace fastertransformer template void update_KV_cache_kernelLauncher(half** key_cache, half** value_cache, const int* beam_ids, + const bool* finished, const int batch_size, const int beam_width, - const int hidden_dim, + const int head_num, + const int size_per_head, const int step, + const int decoder_max_seq_len, const int cache_size, const int decoder_layers, cudaStream_t stream); @@ -800,7 +1211,7 @@ namespace fastertransformer int* current_ids, int* previous_ids, int* parent_ids, - Gpt2Arguments args, + GptArguments args, cudaStream_t stream); template void apply_logit_penalties(int step, @@ -808,7 +1219,7 @@ namespace fastertransformer int* current_ids, int* previous_ids, int* parent_ids, - Gpt2Arguments args, + GptArguments args, cudaStream_t stream); template size_t get_topp_sort_temp_storage_size(const float* log_probs, @@ -838,6 +1249,20 @@ namespace fastertransformer int width,int stride, cudaStream_t stream); + template void transpose_axis_01_kernelLauncher(float *out, + float *in, + const int dim0, + const int dim1, + const int dim2, + cudaStream_t stream); + + template void transpose_axis_01_kernelLauncher(half *out, + half *in, + const int dim0, + const int dim1, + const int dim2, + cudaStream_t stream); + template void init_kernelLauncher(bool* finished, int* sequence_length, int* word_ids, @@ -855,6 +1280,7 @@ namespace fastertransformer const int batch_size, const int beam_width, cudaStream_t stream); + /* *************************** end of Instantiation *********************************** */ } // end of name space fastertransformer diff --git a/fastertransformer/cuda/masked_multihead_attention.cu b/fastertransformer/cuda/masked_multihead_attention.cu new file mode 100644 index 000000000..005928de9 --- /dev/null +++ b/fastertransformer/cuda/masked_multihead_attention.cu @@ -0,0 +1,866 @@ +/*************************************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are not permit- + * ted. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + **************************************************************************************************/ +#include "masked_multihead_attention.h" +#include "masked_multihead_attention_utils.h" +#include +#include + +//#define MMHA_USE_HMMA_FOR_REDUCTION + +// Below are knobs to extend FP32 accumulation for higher FP16 accuracy + +// Does not seem to affect the accuracy that much +//#define MMHA_USE_FP32_ACUM_FOR_FMA + +// Seems to slightly improve the accuracy +#define MMHA_USE_FP32_ACUM_FOR_OUT + +#if 0 && defined(MMHA_USE_FP32_ACUM_FOR_OUT) +// Does not seem to improve the accuracy +//#define MMHA_USE_FP32_ACUM_FOR_LOGITS +#endif + +namespace mmha { + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +// +// We use the following terminology to describe the different dimensions. +// +// B: Batch size (number of sequences), +// L: Sequence length, +// D: Hidden dimension, +// H: Number of heads, +// Dh: Hidden dimension per head - Dh = D / H. +// +// The different kernels assign a threadblock for B x H pair. The grid has size (1, B, H). We use +// 64, 128 and 256 threads per block. +// +// Each threadblock loads Dh values from Q and its associated bias. The kernels run a loop to +// compute Q * K^T where K is loaded from a cache buffer -- except for the current timestep. The +// cache buffer helps with memory accesses and contains keys with bias. +// +// The layout of the cache buffer for the keys is [B, H, Dh/x, L, x] where x == 8 for FP16 and +// x == 4 for FP32 where the fastest moving dimension (contiguous data) is the rightmost one. The +// values for x are chosen to create chunks of 16 bytes. +// +// The different kernels use 1, 2 or 4 threads per key (THREADS_PER_KEY). The size of the LDGs +// depends on the number of threads per key. Each thread sums Dh / THREADS_PER_KEY elements. At +// the end of each iteration of the Q * K^T loop, we perform a reduction between lanes using an +// HMMA instruction (Tensor Core). Each Q * K^T valuey is stored in shared memory in FP32. +// +// After that loop, a parallel softmax is computed accross the different Q * K^T values stored in +// shared memory. +// +// The kernel ends with a loop over the values in V. We use THREADS_PER_VALUE to control how many +// timesteps are computed by loop iteration. As with the keys, the values are read from a cache +// except for the current timestep. The layout of the cache buffer for the values is much simpler +// as it is [B, H, L, Dh]. +// + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T, int Dh > +struct Qk_vec_ {}; + +template<> struct Qk_vec_ { using Type = float; }; +template<> struct Qk_vec_ { using Type = float2; }; +template<> struct Qk_vec_ { using Type = float4; }; +template<> struct Qk_vec_ { using Type = uint32_t; }; +template<> struct Qk_vec_ { using Type = uint32_t; }; +template<> struct Qk_vec_ { using Type = uint2; }; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T, int THREADS_PER_KEY > +struct K_vec_ {}; + +template<> struct K_vec_ { using Type = float; }; +template<> struct K_vec_ { using Type = float2; }; +template<> struct K_vec_ { using Type = float4; }; +template<> struct K_vec_ { using Type = uint32_t; }; +template<> struct K_vec_ { using Type = uint2; }; +template<> struct K_vec_ { using Type = uint4; }; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T, int V_VEC_SIZE > +struct V_vec_ {}; + +template<> struct V_vec_ { using Type = float; }; +template<> struct V_vec_ { using Type = float2; }; +template<> struct V_vec_ { using Type = float4; }; +template<> struct V_vec_ { using Type = uint32_t; }; +template<> struct V_vec_ { using Type = uint2; }; +template<> struct V_vec_ { using Type = uint4; }; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifdef MMHA_USE_FP32_ACUM_FOR_FMA +template< typename T> +struct Qk_vec_acum_fp32_ {}; + +template<> struct Qk_vec_acum_fp32_ { using Type = float; }; +template<> struct Qk_vec_acum_fp32_ { using Type = float2; }; +template<> struct Qk_vec_acum_fp32_ { using Type = float4; }; +//template<> struct Qk_vec_acum_fp32_ { using Type = float; }; +template<> struct Qk_vec_acum_fp32_ { using Type = float2; }; +template<> struct Qk_vec_acum_fp32_ { using Type = Float4_; }; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T> +struct K_vec_acum_fp32_ {}; + +template<> struct K_vec_acum_fp32_ { using Type = float; }; +template<> struct K_vec_acum_fp32_ { using Type = float2; }; +template<> struct K_vec_acum_fp32_ { using Type = float4; }; +template<> struct K_vec_acum_fp32_ { using Type = float2; }; +template<> struct K_vec_acum_fp32_ { using Type = Float4_; }; +template<> struct K_vec_acum_fp32_ { using Type = Float8_; }; +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifdef MMHA_USE_FP32_ACUM_FOR_OUT +template< typename T > +struct V_vec_acum_fp32_ {}; + +template<> struct V_vec_acum_fp32_ { using Type = float; }; +template<> struct V_vec_acum_fp32_ { using Type = float2; }; +template<> struct V_vec_acum_fp32_ { using Type = float4; }; +template<> struct V_vec_acum_fp32_ { using Type = float2; }; +template<> struct V_vec_acum_fp32_ { using Type = Float4_; }; +template<> struct V_vec_acum_fp32_ { using Type = Float8_; }; +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< int THREADS_PER_KEY, typename K_vec, int N > +inline __device__ float qk_dot_(const K_vec (&q)[N], const K_vec (&k)[N]) { +#ifdef MMHA_USE_FP32_ACUM_FOR_FMA + using K_vec_acum = typename K_vec_acum_fp32_::Type; +#else + using K_vec_acum = K_vec; +#endif + // Compute the parallel products for Q*K^T (treat vector lanes separately). + K_vec_acum qk_vec = mul(q[0], k[0]); + #pragma unroll + for( int ii = 1; ii < N; ++ii ) { + qk_vec = fma(q[ii], k[ii], qk_vec); + } + + // Finalize the reduction across lanes. + float qk = sum(qk_vec); + #pragma unroll + for( int mask = THREADS_PER_KEY / 2; mask >= 1; mask /= 2 ) { + qk += __shfl_xor_sync(uint32_t(-1), qk, mask); + } + return qk; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T, int THREADS_PER_KEY > +struct Qk_dot { + template< typename K_vec, int N > + static inline __device__ float dot(const K_vec (&q)[N], const K_vec (&k)[N]) { + return qk_dot_(q, k); + } +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float4 hmma_fp32(const uint2 &a, uint32_t b) { + float4 c; float zero = 0.f; + asm volatile( \ + "mma.sync.aligned.m16n8k8.row.col.f32.f16.f16.f32 \n" \ + " {%0, %1, %2, %3}, \n" \ + " {%4, %5}, \n" \ + " {%6}, \n" \ + " {%7, %7, %7, %7}; \n" \ + \ + : "=f"(c.x), "=f"(c.y), "=f"(c.z), "=f"(c.w) + : "r"(a.x) "r"(a.y) + , "r"(b) + , "f"(zero)); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< int N > +inline __device__ float qk_hmma_dot_(const uint32_t (&q)[N], const uint32_t (&k)[N]) { +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 750 +#ifdef MMHA_USE_FP32_ACUM_FOR_FMA + using K_vec_acum = typename K_vec_acum_fp32_::Type; +#else + using K_vec_acum = uint32_t; +#endif + K_vec_acum qk_vec = mul(q[0], k[0]); + #pragma unroll + for( int ii = 1; ii < N; ++ii ) { + qk_vec = fma(q[ii], k[ii], qk_vec); + } +#ifdef MMHA_USE_FP32_ACUM_FOR_FMA + uint32_t qk_vec_ = float2_to_half2(qk_vec); + return hmma_fp32(make_uint2(qk_vec_, 0u), 0x3c003c00u).x; +#else + return hmma_fp32(make_uint2(qk_vec, 0u), 0x3c003c00u).x; +#endif +#else + return 0.f; +#endif +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +struct Qk_dot { + template< int N > + static inline __device__ float dot(const uint32_t (&q)[N], const uint32_t (&k)[N]) { +#if __CUDA_ARCH__ >= 750 && defined(MMHA_USE_HMMA_FOR_REDUCTION) + return qk_hmma_dot_(q, k); +#else + return qk_dot_<4>(q, k); +#endif // defined MMHA_USE_HMMA_FOR_REDUCTION + } +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< int WARPS_PER_BLOCK, int WARP_SIZE = 32 > +inline __device__ float block_sum(float *red_smem, float sum) { + + // Decompose the thread index into warp / lane. + int warp = threadIdx.x / WARP_SIZE; + int lane = threadIdx.x % WARP_SIZE; + + // Compute the sum per warp. + #pragma unroll + for( int mask = WARP_SIZE / 2; mask >= 1; mask /= 2 ) { + sum += __shfl_xor_sync(uint32_t(-1), sum, mask); + } + + // Warp leaders store the data to shared memory. + if( lane == 0 ) { + red_smem[warp] = sum; + } + + // Make sure the data is in shared memory. + __syncthreads(); + + // The warps compute the final sums. + if( lane < WARPS_PER_BLOCK ) { + sum = red_smem[lane]; + } + + // Parallel reduction inside the warp. + #pragma unroll + for( int mask = WARPS_PER_BLOCK / 2; mask >= 1; mask /= 2 ) { + sum += __shfl_xor_sync(uint32_t(-1), sum, mask); + } + + // Broadcast to other threads. + return __shfl_sync(uint32_t(-1), sum, 0); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(float &dst, float src) { + dst = src; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(uint16_t &dst, float src) { + dst = float_to_half(src); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(uint32_t &dst, float2 src) { + dst = float2_to_half2(src); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(uint2 &dst, Float4_ src) { + dst.x = float2_to_half2(src.x); + dst.y = float2_to_half2(src.y); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(uint4 &dst, Float8_ src) { + dst.x = float2_to_half2(src.x); + dst.y = float2_to_half2(src.y); + dst.z = float2_to_half2(src.z); + dst.w = float2_to_half2(src.w); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(float2 &dst, float2 src) { + dst = src; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void convert_from_float(float4 &dst, float4 src) { + dst = src; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float convert_to_float(float4 u) { + return u.x; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float convert_to_float(uint4 u) { + float2 tmp = half2_to_float2(u.x); + return tmp.x; +} + +#if defined(MMHA_USE_FP32_ACUM_FOR_LOGITS) + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float cast_to_float(float u) { + return u; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 cast_to_float(float2 u) { + return u; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float4 cast_to_float(float4 u) { + return u; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float4_ cast_to_float(Float4_ u) { + return u; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float8_ cast_to_float(Float8_ u) { + return u; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 cast_to_float(uint32_t u) { + return half2_to_float2(u); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float4_ cast_to_float(uint2 u) { + Float4_ tmp; + tmp.x = half2_to_float2(u.x); + tmp.y = half2_to_float2(u.y); + return tmp; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float8_ cast_to_float(uint4 u) { + Float8_ tmp; + tmp.x = half2_to_float2(u.x); + tmp.y = half2_to_float2(u.y); + tmp.z = half2_to_float2(u.z); + tmp.w = half2_to_float2(u.w); + return tmp; +} + +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T > +inline __device__ __host__ T div_up(T m, T n) { + return (m + n-1) / n; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T > +inline size_t smem_size_in_bytes(const Masked_multihead_attention_params ¶ms, + int threads_per_value, + int threads_per_block) { + // The amount of shared memory needed to store the Q*K^T values in float. + size_t qk_sz = div_up(params.timestep + 1, 4) * 16; + + // The extra memory needed if we are not using floats for the final logits. + size_t logits_sz = 0; +#ifndef MMHA_USE_FP32_ACUM_FOR_LOGITS + if( sizeof(T) != 4 ) { + logits_sz = div_up(params.seq_length, 4) * 4 * sizeof(T); + } +#endif + + // The total size needed during softmax. + size_t softmax_sz = qk_sz + logits_sz; + + // The number of partial rows to reduce in the final reduction. + int rows_per_red = threads_per_block / threads_per_value; + // The amount of storage needed to finalize the outputs. + size_t red_sz = rows_per_red * params.hidden_size_per_head * sizeof(T) / 2; + + // The max. + return max(softmax_sz, red_sz); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ constexpr uint32_t shfl_mask(int threads) { + return threads == 32 ? uint32_t(-1) : (1u << threads) - 1u; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< + // The type of the inputs. Supported types: float and half. + typename T, + // The hidden dimension per head. + int Dh, + // The number of threads per key. + int THREADS_PER_KEY, + // The number of threads per value. + int THREADS_PER_VALUE, + // The number of threads in a threadblock. + int THREADS_PER_BLOCK +> +__global__ void masked_multihead_attention_kernel(Masked_multihead_attention_params params) { + + // Make sure the hidden dimension per head is a multiple of the number of threads per key. + static_assert(Dh % THREADS_PER_KEY == 0, ""); + // Make sure the hidden dimension per head is a multiple of the number of threads per value. + static_assert(Dh % THREADS_PER_VALUE == 0, ""); + + // The size of a warp. + constexpr int WARP_SIZE = 32; + // The number of warps in a threadblock. + constexpr int WARPS_PER_BLOCK = THREADS_PER_BLOCK / WARP_SIZE; + + // Use smem_size_in_bytes (above) to determine the amount of shared memory. + extern __shared__ char smem_[]; + + // The shared memory for the Q*K^T values and partial logits in softmax. + float *qk_smem = reinterpret_cast(smem_); + + // The shared memory for the logits. For FP32, that's the same buffer as qk_smem. + char *logits_smem_ = smem_; +#ifndef MMHA_USE_FP32_ACUM_FOR_LOGITS + if( sizeof(T) != 4 ) { + logits_smem_ += div_up(params.timestep + 1, 4) * 16; //sizeof(float); + } + T *logits_smem = reinterpret_cast(logits_smem_); +#else + float *logits_smem = reinterpret_cast(logits_smem_); +#endif + + // The shared memory to do the final reduction for the output values. Reuse qk_smem. + T *out_smem = reinterpret_cast(smem_); + + // The shared memory buffers for the block-wide reductions. One for max, one for sum. + __shared__ float red_smem[WARPS_PER_BLOCK * 2]; + // Shared memory to store Q inputs. + __shared__ T q_smem[Dh]; + + // A vector of Q or K elements for the current timestep. + using Qk_vec = typename Qk_vec_::Type; + // The number of elements per vector. + constexpr int QK_VEC_SIZE = sizeof(Qk_vec) / sizeof(T); + // Make sure the hidden size per head is a multiple of the vector size. + static_assert(Dh % QK_VEC_SIZE == 0 && Dh / QK_VEC_SIZE <= WARP_SIZE, ""); + // The number of vectors per warp. + constexpr int QK_VECS_PER_WARP = Dh / QK_VEC_SIZE; + + // The layout of the cache is [B, H, Dh/x, L, x] with x == 4/8 for FP32/FP16. Since each thread + // owns x elements, we have to decompose the linear index into chunks of x values and the posi- + // tion of the thread in that chunk. + + // The number of elements in a chunk of 16B (that's the x in the above formula). + constexpr int QK_ELTS_IN_16B = 16 / sizeof(T); + // The number of K vectors in 16B. + constexpr int QK_VECS_IN_16B = 16 / sizeof(Qk_vec); + + // The batch. + const int bi = blockIdx.y; + if(params.finished != nullptr && params.finished[bi] == true) return; + // The head. + const int hi = blockIdx.x; + // Combine the batch and the head indices. + const int bhi = bi * params.num_heads + hi; + // The thread in the block. + const int tidx = threadIdx.x; + + // While doing the product Q*K^T for the different keys we track the max. + float qk_max = -FLT_MAX; + + int qkv_base_offset = (params.stride == 0)? bhi*Dh : bi*params.stride + hi*Dh; + + // First QK_VECS_PER_WARP load Q and K + the bias values for the current timestep. + if( tidx < QK_VECS_PER_WARP ) { + + // The offset in the Q and K buffer also accounts for the batch. + int qk_offset = qkv_base_offset + tidx*QK_VEC_SIZE; + // The offset in the bias buffer. + int qk_bias_offset = hi*Dh + tidx*QK_VEC_SIZE; + + // Trigger the loads from the Q and K buffers. + Qk_vec q = *reinterpret_cast(¶ms.q[qk_offset]); + Qk_vec k = *reinterpret_cast(¶ms.k[qk_offset]); + + // Trigger the loads from the Q and K bias buffers. + Qk_vec q_bias = *reinterpret_cast(¶ms.q_bias[qk_bias_offset]); + Qk_vec k_bias = *reinterpret_cast(¶ms.k_bias[qk_bias_offset]); + + // Computes the Q/K values with bias. + q = add(q, q_bias); + k = add(k, k_bias); + + // Store the Q values to shared memory. + *reinterpret_cast(&q_smem[tidx*QK_VEC_SIZE]) = q; + + // Write the K values to the global memory cache. + // + // NOTE: The stores are uncoalesced as we have multiple chunks of 16B spread across the memory + // system. We designed it this way as it allows much better memory loads (and there are many + // more loads) + the stores are really "write and forget" since we won't need the ack before + // the end of the kernel. There's plenty of time for the transactions to complete. + + // The 16B chunk written by the thread. + int co = tidx / QK_VECS_IN_16B; + // The position of the thread in that 16B chunk. + int ci = tidx % QK_VECS_IN_16B * QK_VEC_SIZE; + + // Two chunks are separated by L * x elements. A thread write QK_VEC_SIZE elements. + int offset = bhi*params.seq_length*Dh + + co*params.seq_length*QK_ELTS_IN_16B + + params.timestep*QK_ELTS_IN_16B + + ci; + + // Trigger the stores to global memory. + *reinterpret_cast(¶ms.k_cache[offset]) = k; + + // Compute \sum_i Q[i] * K^T[i] for the current timestep. +#ifdef MMHA_USE_FP32_ACUM_FOR_FMA + using Qk_vec_acum = typename Qk_vec_acum_fp32_::Type; +#else + using Qk_vec_acum = Qk_vec; +#endif + float qk = dot(q, k); + #pragma unroll + for( int mask = QK_VECS_PER_WARP / 2; mask >= 1; mask /= 2 ) { + qk += __shfl_xor_sync(shfl_mask(QK_VECS_PER_WARP), qk, mask); + } + + // Normalize qk. + qk *= params.inv_sqrt_dh; + + // Store that value in shared memory. Keep the Q*K^T value in register for softmax. + if( tidx == 0 ) { + qk_max = qk; + qk_smem[params.timestep] = qk; + } + } + + // Make sure the data is in shared memory. + __syncthreads(); + + // The type of queries and keys for the math in the Q*K^T product. + using K_vec = typename K_vec_::Type; + // The number of elements per vector. + constexpr int K_VEC_SIZE = sizeof(K_vec) / sizeof(T); + // Make sure the hidden size per head is a multiple of the vector size. + static_assert(Dh % K_VEC_SIZE == 0, ""); + // The number of elements per thread. + constexpr int K_ELTS_PER_THREAD = Dh / THREADS_PER_KEY; + // The number of vectors per thread. + constexpr int K_VECS_PER_THREAD = K_ELTS_PER_THREAD / K_VEC_SIZE; + + // The position the first key loaded by each thread from the cache buffer (for this B * H). + int ko = tidx / THREADS_PER_KEY; + // The position of the thread in the chunk of keys. + int ki = tidx % THREADS_PER_KEY * K_VEC_SIZE; + + // Load the Q values from shared memory. The values are reused during the loop on K. + K_vec q[K_VECS_PER_THREAD]; + #pragma unroll + for( int ii = 0; ii < K_VECS_PER_THREAD; ++ii ) { + q[ii] = *reinterpret_cast(&q_smem[ki + ii*THREADS_PER_KEY*K_VEC_SIZE]); + } + + // The number of timesteps loaded per iteration. + constexpr int K_PER_ITER = THREADS_PER_BLOCK / THREADS_PER_KEY; + // The number of keys per warp. + constexpr int K_PER_WARP = WARP_SIZE / THREADS_PER_KEY; + + // The base pointer for the key in the cache buffer. + T *k_cache = ¶ms.k_cache[bhi*params.seq_length*Dh + ki]; + + // Pick a number of keys to make sure all the threads of a warp enter (due to shfl_sync). + int ti_end = div_up(params.timestep, K_PER_WARP) * K_PER_WARP; + + // Iterate over the keys/timesteps to compute the various (Q*K^T)_{ti} values. + for( int ti = ko; ti < ti_end; ti += K_PER_ITER ) { + + // The keys loaded from the key cache. + K_vec k[K_VECS_PER_THREAD]; + #pragma unroll + for( int ii = 0; ii < K_VECS_PER_THREAD; ++ii ) { + int jj = ii * params.seq_length + ti; + if( ti < params.timestep ) { + k[ii] = *reinterpret_cast(&k_cache[jj*QK_ELTS_IN_16B]); + } + } + + // Perform the dot product and normalize qk. + // + // WARNING: ALL THE THREADS OF A WARP MUST ENTER!!! + float qk = Qk_dot::dot(q, k) * params.inv_sqrt_dh; + + // Store the product to shared memory. There's one qk value per timestep. Update the max. + if( ti < params.timestep && tidx % THREADS_PER_KEY == 0 ) { + qk_max = fmaxf(qk_max, qk); + qk_smem[ti] = qk; + } + } + + // Perform the final reduction to compute the max inside each warp. + // + // NOTE: In a group of THREADS_PER_KEY threads, the leader already has the max value for the + // group so it's not needed to run the reduction inside the group (again). + #pragma unroll + for( int mask = WARP_SIZE / 2; mask >= THREADS_PER_KEY; mask /= 2 ) { + qk_max = fmaxf(qk_max, __shfl_xor_sync(uint32_t(-1), qk_max, mask)); + } + + // Decompose the thread index into warp and lane. + const int warp = tidx / WARP_SIZE; + const int lane = tidx % WARP_SIZE; + + // The warp leader writes the max to shared memory. + if( lane == 0 ) { + red_smem[warp] = qk_max; + } + + // Make sure the products are in shared memory. + __syncthreads(); + + // The warps finalize the reduction. + qk_max = lane < WARPS_PER_BLOCK ? red_smem[lane] : -FLT_MAX; + #pragma unroll + for( int mask = WARPS_PER_BLOCK / 2; mask >= 1; mask /= 2 ) { + qk_max = fmaxf(qk_max, __shfl_xor_sync(uint32_t(-1), qk_max, mask)); + } + + // Broadcast to all the threads in the warp. + qk_max = __shfl_sync(uint32_t(-1), qk_max, 0); + + // Compute the logits and start the sum. + float sum = 0.f; + for( int ti = tidx; ti <= params.timestep; ti += THREADS_PER_BLOCK ) { + float logit = __expf(qk_smem[ti] - qk_max); + sum += logit; + qk_smem[ti] = logit; + } + + // Compute the sum. + sum = block_sum(&red_smem[WARPS_PER_BLOCK], sum); + + // Normalize the logits. + float inv_sum = __fdividef(1.f, sum + 1.e-6f); + for( int ti = tidx; ti <= params.timestep; ti += THREADS_PER_BLOCK ) { + convert_from_float(logits_smem[ti], qk_smem[ti] * inv_sum); + } + + // Make sure the logits are in shared memory. + __syncthreads(); + + // The number of elements per vector. + constexpr int V_VEC_SIZE = Dh / THREADS_PER_VALUE; + // A vector of V elements for the current timestep. + using V_vec = typename V_vec_::Type; + + // The value computed by this thread. + int vo = tidx / THREADS_PER_VALUE; + // The hidden dimensions computed by this particular thread. + int vi = tidx % THREADS_PER_VALUE * V_VEC_SIZE; + + // The base pointer for the value in the cache buffer. + T *v_cache = ¶ms.v_cache[bhi*params.seq_length*Dh + vi]; + +#ifdef MMHA_USE_FP32_ACUM_FOR_OUT + using V_vec_acum = typename V_vec_acum_fp32_::Type; +#else + using V_vec_acum = V_vec; +#endif + // The partial outputs computed by each thread. + V_vec_acum out; zero(out); + + // The number of values processed per iteration of the loop. + constexpr int V_PER_ITER = THREADS_PER_BLOCK / THREADS_PER_VALUE; + + // Loop over the timesteps to compute the partial outputs. + for( int ti = vo; ti < params.timestep; ti += V_PER_ITER ) { + + // Load the values from the cache. + V_vec v = *reinterpret_cast(&v_cache[ti*Dh]); + // Load the logits from shared memory. +#if defined(MMHA_USE_FP32_ACUM_FOR_LOGITS) + float logit = logits_smem[ti]; + out = fma(logit, cast_to_float(v), out); +#else + T logit = logits_smem[ti]; + + // Update the partial sums. + out = fma(logit, v, out); +#endif + } + + // One group of threads computes the product(s) for the current timestep. + if( vo == params.timestep % V_PER_ITER ) { + + // Trigger the loads from the V buffer. + V_vec v = *reinterpret_cast(¶ms.v[qkv_base_offset + vi]); + // Trigger the loads from the V bias buffer. + V_vec v_bias = *reinterpret_cast(¶ms.v_bias[hi*Dh + vi]); + + // Compute the V values with bias. + v = add(v, v_bias); + + // Store the values with bias back to global memory in the cache for V. + *reinterpret_cast(&v_cache[params.timestep*Dh]) = v; + + // Initialize the output value with the current timestep. +#if defined(MMHA_USE_FP32_ACUM_FOR_LOGITS) + out = fma(logits_smem[params.timestep], cast_to_float(v), out); +#else + out = fma(logits_smem[params.timestep], v, out); +#endif + } + + // Make sure we can start writing to shared memory. + __syncthreads(); + + // Run the final reduction amongst the different groups computing different partial outputs. + #pragma unroll + for( int active_groups = V_PER_ITER; active_groups >= 2; active_groups /= 2 ) { + + // The midpoint in the number of active groups. + int midpoint = active_groups / 2; + + // The upper part of active threads store to shared memory. + if( vo >= midpoint && vo < active_groups ) { +#ifdef MMHA_USE_FP32_ACUM_FOR_OUT + convert_from_float(*reinterpret_cast(&out_smem[(vo - midpoint)*Dh + vi]), out); +#else + *reinterpret_cast(&out_smem[(vo - midpoint)*Dh + vi]) = out; +#endif + } + __syncthreads(); + + // The bottom warps update their values. + if( vo < midpoint ) { + out = add(*reinterpret_cast(&out_smem[vo*Dh + vi]), out); + } + __syncthreads(); + } + + // Output the final values. + if( vo == 0 ) { +#ifdef MMHA_USE_FP32_ACUM_FOR_OUT + convert_from_float(*reinterpret_cast(¶ms.out[bhi*Dh + vi]), out); +#else + *reinterpret_cast(¶ms.out[bhi*Dh + vi]) = out; +#endif + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +} // namespace mmha + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#define MMHA_LAUNCH_KERNEL(T, Dh, THDS_PER_KEY, THDS_PER_VALUE, THDS_PER_BLOCK, stream) \ + size_t smem_sz = mmha::smem_size_in_bytes(params, THDS_PER_VALUE, THDS_PER_BLOCK); \ + dim3 grid(params.num_heads, params.batch_size); \ + mmha::masked_multihead_attention_kernel \ + <<>>(params) + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template < typename T, int Dh > +void mmha_launch_kernel(const Masked_multihead_attention_params ¶ms, const cudaStream_t &stream) { + constexpr int THREADS_PER_VALUE = Dh * sizeof(T) / 16; + if( params.timestep < 32 ) { + MMHA_LAUNCH_KERNEL(T, Dh, 4, THREADS_PER_VALUE, 64, stream); + } else if( params.timestep < 2048 ) { + MMHA_LAUNCH_KERNEL(T, Dh, 2, THREADS_PER_VALUE, 128, stream); + } else { + MMHA_LAUNCH_KERNEL(T, Dh, 1, THREADS_PER_VALUE, 256, stream); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T > +void masked_multihead_attention_(const Masked_multihead_attention_params ¶ms, const cudaStream_t &stream) { + switch ( params.hidden_size_per_head ) { + case 32: + mmha_launch_kernel(params, stream); + break; + case 64: + mmha_launch_kernel(params, stream); + break; + case 128: + mmha_launch_kernel(params, stream); + break; + default: + assert(false); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +void masked_multihead_attention(const Masked_multihead_attention_params ¶ms, const cudaStream_t &stream) { + masked_multihead_attention_(params, stream); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +void masked_multihead_attention(const Masked_multihead_attention_params ¶ms, const cudaStream_t &stream) { + masked_multihead_attention_(params, stream); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#undef MMHA_LAUNCH_KERNEL + diff --git a/fastertransformer/cuda/masked_multihead_attention.h b/fastertransformer/cuda/masked_multihead_attention.h new file mode 100644 index 000000000..c7a0dd1b3 --- /dev/null +++ b/fastertransformer/cuda/masked_multihead_attention.h @@ -0,0 +1,92 @@ +/*************************************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are not permit- + * ted. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + **************************************************************************************************/ +#pragma once + +#include +#include +#include +#include +#include + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#define CHECK_CUDA(call) do { \ + cudaError_t status_ = call; \ + if( status_ != cudaSuccess ) { \ + fprintf(stderr, "CUDA error (%s:%d): %s\n", __FILE__, __LINE__, cudaGetErrorString(status_)); \ + exit(1); \ + } \ +} while(0) + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +// The structure of parameters for the masked multihead attention kernel. +// +// We use the following terminology to describe the different dimensions. +// +// B: Batch size (number of sequences), +// L: Sequence length, +// D: Hidden dimension, +// H: Number of heads, +// Dh: Hidden dimension per head - Dh = D / H. + +template< typename T > +struct Masked_multihead_attention_params { + + // The output buffer. Dimensions B x D. + T *out; + + // The input Qs and the associated bias. Dimensions B x D and D, resp. + const T *q, *q_bias; + // The input Ks and the associated bias. Dimensions B x D and D, resp. + const T *k, *k_bias; + // The input Vs and the associated bias. Dimensions B x D and D, resp. + const T *v, *v_bias; + + // The cache for the Ks. The size must be at least B x L x D. + T *k_cache; + // The cache for the Vs. The size must be at least B x L x D. + T *v_cache; + + // allows to exist attention eary + bool *finished; + + // Stride to handle the case when KQV is a single buffer + int stride; + + // The batch size. + int batch_size; + // The sequence length. + int seq_length; + // The number of heads (H). + int num_heads; + // The hidden dimension per head (Dh). + int hidden_size_per_head; + // The current timestep. + int timestep; + + // The 1.f / sqrt(Dh). Computed on the host. + float inv_sqrt_dh; +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +void masked_multihead_attention (const Masked_multihead_attention_params ¶ms, const cudaStream_t &stream); +void masked_multihead_attention (const Masked_multihead_attention_params ¶ms, const cudaStream_t &stream); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + diff --git a/fastertransformer/cuda/masked_multihead_attention_utils.h b/fastertransformer/cuda/masked_multihead_attention_utils.h new file mode 100644 index 000000000..e6a833b7e --- /dev/null +++ b/fastertransformer/cuda/masked_multihead_attention_utils.h @@ -0,0 +1,665 @@ +/*************************************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are not permit- + * ted. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + **************************************************************************************************/ +#pragma once + +#include + +namespace mmha { + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +struct Float8_ { + float2 x; + float2 y; + float2 z; + float2 w; +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +struct Float4_ { + float2 x; + float2 y; +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float add(float a, float b) { + return a + b; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 add(float2 a, float2 b) { + float2 c; + c.x = add(a.x, b.x); + c.y = add(a.y, b.y); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float4 add(float4 a, float4 b) { + float4 c; + c.x = add(a.x, b.x); + c.y = add(a.y, b.y); + c.z = add(a.z, b.z); + c.w = add(a.w, b.w); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint16_t add(uint16_t a, uint16_t b) { + uint16_t c; + asm volatile("add.f16 %0, %1, %2;\n" : "=h"(c) : "h"(a), "h"(b)); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + + +inline __device__ uint32_t add(uint32_t a, uint32_t b) { + uint32_t c; + asm volatile("add.f16x2 %0, %1, %2;\n" : "=r"(c) : "r"(a), "r"(b)); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint2 add(uint2 a, uint2 b) { + uint2 c; + c.x = add(a.x, b.x); + c.y = add(a.y, b.y); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint4 add(uint4 a, uint4 b) { + uint4 c; + c.x = add(a.x, b.x); + c.y = add(a.y, b.y); + c.z = add(a.z, b.z); + c.w = add(a.w, b.w); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint16_t float_to_half(float f) { + union { uint32_t u32; uint16_t u16[2]; } tmp; +#if 0 && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 // Is it better? + float zero = 0.f; + asm volatile("cvt.rn.f16x2.f32 %0, %1, %2;\n" : "=r"(tmp.u32) : "f"(zero), "f"(f)); +#else + asm volatile("cvt.rn.f16.f32 %0, %1;\n" : "=h"(tmp.u16[0]) : "f"(f)); +#endif + return tmp.u16[0]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint32_t float2_to_half2(float2 f) { + union { uint32_t u32; uint16_t u16[2]; } tmp; +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 + asm volatile("cvt.rn.f16x2.f32 %0, %1, %2;\n" : "=r"(tmp.u32) : "f"(f.y), "f"(f.x)); +#else + asm volatile("cvt.rn.f16.f32 %0, %1;\n" : "=h"(tmp.u16[0]) : "f"(f.x)); + asm volatile("cvt.rn.f16.f32 %0, %1;\n" : "=h"(tmp.u16[1]) : "f"(f.y)); +#endif + return tmp.u32; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float half_to_float(uint16_t h) { + float f; + asm volatile("cvt.f32.f16 %0, %1;\n" : "=f"(f) : "h"(h)); + return f; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 half2_to_float2(uint32_t v) { + uint16_t lo, hi; + asm volatile("mov.b32 {%0, %1}, %2;\n" : "=h"(lo), "=h"(hi) : "r"(v)); + return make_float2(half_to_float(lo), half_to_float(hi)); +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 add(uint32_t a, float2 fb) { + float2 fa = half2_to_float2(a); + return add(fa, fb); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float4_ add(uint2 a, Float4_ fb) { + Float4_ fc; + fc.x = add(a.x, fb.x); + fc.y = add(a.y, fb.y); + return fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float8_ add(uint4 a, Float8_ fb) { + Float8_ fc; + fc.x = add(a.x, fb.x); + fc.y = add(a.y, fb.y); + fc.z = add(a.z, fb.z); + fc.w = add(a.w, fb.w); + return fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint32_t h0_h0(uint16_t a) { + uint32_t b; + asm volatile("mov.b32 %0, {%1, %1};" : "=r"(b) : "h"(a)); + return b; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float fma(float a, float b, float c) { + return a * b + c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 fma(float2 a, float2 b, float2 c) { + float2 d; + d.x = fma(a.x, b.x, c.x); + d.y = fma(a.y, b.y, c.y); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 fma(float a, float2 b, float2 c) { + float2 d; + d.x = fma(a, b.x, c.x); + d.y = fma(a, b.y, c.y); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float4 fma(float4 a, float4 b, float4 c) { + float4 d; + d.x = fma(a.x, b.x, c.x); + d.y = fma(a.y, b.y, c.y); + d.z = fma(a.z, b.z, c.z); + d.w = fma(a.w, b.w, c.w); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float4 fma(float a, float4 b, float4 c) { + float4 d; + d.x = fma(a, b.x, c.x); + d.y = fma(a, b.y, c.y); + d.z = fma(a, b.z, c.z); + d.w = fma(a, b.w, c.w); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float4_ fma(float a, Float4_ b, Float4_ c) { + Float4_ d; + d.x = fma(a, b.x, c.x); + d.y = fma(a, b.y, c.y); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float8_ fma(float a, Float8_ b, Float8_ c) { + Float8_ d; + d.x = fma(a, b.x, c.x); + d.y = fma(a, b.y, c.y); + d.z = fma(a, b.z, c.z); + d.w = fma(a, b.w, c.w); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint32_t fma(uint32_t a, uint32_t b, uint32_t c) { + uint32_t d; + asm volatile("fma.rn.f16x2 %0, %1, %2, %3;\n" : "=r"(d) : "r"(a), "r"(b), "r"(c)); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint32_t fma(uint16_t a, uint32_t b, uint32_t c) { + return fma(h0_h0(a), b, c); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint2 fma(uint2 a, uint2 b, uint2 c) { + uint2 d; + d.x = fma(a.x, b.x, c.x); + d.y = fma(a.y, b.y, c.y); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint2 fma(uint16_t a, uint2 b, uint2 c) { + uint32_t s = h0_h0(a); + uint2 d; + d.x = fma(s, b.x, c.x); + d.y = fma(s, b.y, c.y); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint4 fma(uint4 a, uint4 b, uint4 c) { + uint4 d; + d.x = fma(a.x, b.x, c.x); + d.y = fma(a.y, b.y, c.y); + d.z = fma(a.z, b.z, c.z); + d.w = fma(a.w, b.w, c.w); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ uint4 fma(uint16_t a, uint4 b, uint4 c) { + uint32_t s = h0_h0(a); + uint4 d; + d.x = fma(s, b.x, c.x); + d.y = fma(s, b.y, c.y); + d.z = fma(s, b.z, c.z); + d.w = fma(s, b.w, c.w); + return d; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float fma(uint16_t a, uint16_t b, float fc) { + float fa = half_to_float(a); + float fb = half_to_float(b); + return fa * fb + fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 fma(uint32_t a, uint32_t b, float2 fc) { + float2 fa = half2_to_float2(a); + float2 fb = half2_to_float2(b); + return fma(fa,fb,fc); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float2 fma(uint16_t a, uint32_t b, float2 fc) { + return fma(h0_h0(a), b, fc); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float4_ fma(uint2 a, uint2 b, Float4_ fc) { + Float4_ fd; + fd.x = fma(a.x, b.x, fc.x); + fd.y = fma(a.y, b.y, fc.y); + return fd; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float4_ fma(uint16_t a, uint2 b, Float4_ fc) { + uint32_t s = h0_h0(a); + Float4_ fd; + fd.x = fma(s, b.x, fc.x); + fd.y = fma(s, b.y, fc.y); + return fd; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float8_ fma(uint4 a, uint4 b, Float8_ fc) { + Float8_ fd; + fd.x = fma(a.x, b.x, fc.x); + fd.y = fma(a.y, b.y, fc.y); + fd.z = fma(a.z, b.z, fc.z); + fd.w = fma(a.w, b.w, fc.w); + return fd; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ Float8_ fma(uint16_t a, uint4 b, Float8_ fc) { + uint32_t s = h0_h0(a); + Float8_ fd; + fd.x = fma(s, b.x, fc.x); + fd.y = fma(s, b.y, fc.y); + fd.z = fma(s, b.z, fc.z); + fd.w = fma(s, b.w, fc.w); + return fd; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template +inline __device__ Acc mul(A a, B b); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float mul(float a, float b) { + return a * b; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float2 mul(float2 a, float2 b) { + float2 c; + c.x = a.x * b.x; + c.y = a.y * b.y; + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float2 mul(float a, float2 b) { + float2 c; + c.x = a * b.x; + c.y = a * b.y; + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float4 mul(float4 a, float4 b) { + float4 c; + c.x = a.x * b.x; + c.y = a.y * b.y; + c.z = a.z * b.z; + c.w = a.w * b.w; + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float4 mul(float a, float4 b) { + float4 c; + c.x = a * b.x; + c.y = a * b.y; + c.z = a * b.z; + c.w = a * b.w; + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint16_t mul(uint16_t a, uint16_t b) { + uint16_t c; + asm volatile("mul.f16 %0, %1, %2;\n" : "=h"(c) : "h"(a), "h"(b)); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint32_t mul(uint32_t a, uint32_t b) { + uint32_t c; + asm volatile("mul.f16x2 %0, %1, %2;\n" : "=r"(c) : "r"(a), "r"(b)); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint32_t mul(uint16_t a, uint32_t b) { + return mul(h0_h0(a), b); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint2 mul(uint2 a, uint2 b) { + uint2 c; + c.x = mul(a.x, b.x); + c.y = mul(a.y, b.y); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint2 mul(uint16_t a, uint2 b) { + uint32_t s = h0_h0(a); + uint2 c; + c.x = mul(s, b.x); + c.y = mul(s, b.y); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint4 mul(uint4 a, uint4 b) { + uint4 c; + c.x = mul(a.x, b.x); + c.y = mul(a.y, b.y); + c.z = mul(a.z, b.z); + c.w = mul(a.w, b.w); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ uint4 mul(uint16_t a, uint4 b) { + uint32_t s = h0_h0(a); + uint4 c; + c.x = mul(s, b.x); + c.y = mul(s, b.y); + c.z = mul(s, b.z); + c.w = mul(s, b.w); + return c; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template <> +inline __device__ float mul(uint16_t a, uint16_t b) { + float fa = half_to_float(a); + float fb = half_to_float(b); + return fa * fb; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float2 mul(uint32_t a, uint32_t b) { + float2 fa = half2_to_float2(a); + float2 fb = half2_to_float2(b); + return mul(fa, fb); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ float2 mul(uint16_t a, uint32_t b) { + return mul(h0_h0(a), b); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ Float4_ mul(uint2 a, uint2 b) { + Float4_ fc; + fc.x = mul(a.x, b.x); + fc.y = mul(a.y, b.y); + return fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ Float4_ mul(uint16_t a, uint2 b) { + uint32_t s = h0_h0(a); + Float4_ fc; + fc.x = mul(s, b.x); + fc.y = mul(s, b.y); + return fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ Float8_ mul(uint4 a, uint4 b) { + Float8_ fc; + fc.x = mul(a.x, b.x); + fc.y = mul(a.y, b.y); + fc.z = mul(a.z, b.z); + fc.w = mul(a.w, b.w); + return fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template<> +inline __device__ Float8_ mul(uint16_t a, uint4 b) { + uint32_t s = h0_h0(a); + Float8_ fc; + fc.x = mul(s, b.x); + fc.y = mul(s, b.y); + fc.z = mul(s, b.z); + fc.w = mul(s, b.w); + return fc; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(float v) { + return v; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(float2 v) { + return v.x + v.y; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(float4 v) { + return v.x + v.y + v.z + v.w; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(uint16_t v) { + return half_to_float(v); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(uint32_t v) { + float2 tmp = half2_to_float2(v); + return tmp.x + tmp.y; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(uint2 v) { + uint32_t c = add(v.x, v.y); + return sum(c); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(uint4 v) { +#if 1 + uint32_t c = add(v.x, v.y); + c = add(c, v.z); + c = add(c, v.w); +#else + uint32_t c = add(v.x, v.y); + uint32_t d = add(v.z, v.w); + c = add(c, d); +#endif + return sum(c); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(Float4_ v) { + return v.x.x + v.x.y + v.y.x + v.y.y; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ float sum(Float8_ v) { + return v.x.x + v.x.y + v.y.x + v.y.y + v.z.x + v.z.y + v.w.x+ v.w.y; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T > +inline __device__ float dot(T a, T b) { + return sum(mul(a, b)); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename A, typename T > +inline __device__ float dot(T a, T b) { + return sum(mul(a, b)); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +inline __device__ void zero(uint16_t &dst) { + dst = uint16_t(0); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +template< typename T > +inline __device__ void zero(T &dst) { + constexpr int WORDS = sizeof(T) / 4; + union { T raw; uint32_t words[WORDS]; } tmp; + #pragma unroll + for( int ii = 0; ii < WORDS; ++ii ) { + tmp.words[ii] = 0u; + } + dst = tmp.raw; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +} // namespace mmha + diff --git a/fastertransformer/cuda/multi_head_attention.h b/fastertransformer/cuda/multi_head_attention.h index 4474e5afd..2e420a38d 100644 --- a/fastertransformer/cuda/multi_head_attention.h +++ b/fastertransformer/cuda/multi_head_attention.h @@ -19,8 +19,8 @@ #pragma once -#include "fastertransformer/common.h" -#include "fastertransformer/common_structure.h" +#include "fastertransformer/utils/common.h" +#include "fastertransformer/utils/common_structure.h" namespace fastertransformer{ namespace cuda{ @@ -41,12 +41,9 @@ class MultiHeadInitParam{ cublasLtHandle_t cublaslt_handle; cudaStream_t stream; - //First 80 are for activation amaxs. - //For each activation amax, there are 4 values: amax, amax/127.0f, amax/127.0f/127.0f, 127.0f/amax -- input_amax 0-3 , Q_aftergemm_amax 4-7, Qbias_amax 8-11, K_aftergemm_amax 12-15, Kbias_amax 16-19, V_aftergemm_amax 20-23, Vbias_amax 24-27, bmm1_amax 28-31, Softmax_amax 32-35, bmm2_amax 36-39, Proj_aftergemm_scale 40-43, ProjBiasNorm_amax 44-47, FC1_aftergemm_amax 48-51, F1Bias_amax 52-55, FC2_aftergemm_amax 56-59, F2BiasNorm_amax 60-63, reserve 64-79 - //following by kernel amaxs : query_weight_amax_list, key_weight_amax_list, value_weight_amax_list, proj_weight_amax_list, FC1_weight_amax_list, FC2_weight_amax_list - //following by int8 gemm deQ scale list: Q_deQ_scale, K_deQ_scale, V_deQ_scale, bmm1_deQ_scale, bmm2_deQ_scale, proj_deQ_scale, FC1_deQ_scale, FC2_deQ_scale const float *amaxList; const float *int8O_gemm_deQ_scale_list; + const float *trt_fused_mha_amax_list; const int *trt_seqlen_offset; int trt_seqlen_size; @@ -61,6 +58,7 @@ class MultiHeadInitParam{ int8_from_tensor = nullptr; amaxList = nullptr; int8O_gemm_deQ_scale_list = nullptr; + trt_fused_mha_amax_list = nullptr; stream = 0; trt_seqlen_offset = nullptr; diff --git a/fastertransformer/cuda/online_softmax_beamsearch_kernels.cu b/fastertransformer/cuda/online_softmax_beamsearch_kernels.cu index f8326e4a3..3d84ccb9f 100644 --- a/fastertransformer/cuda/online_softmax_beamsearch_kernels.cu +++ b/fastertransformer/cuda/online_softmax_beamsearch_kernels.cu @@ -136,7 +136,7 @@ __global__ void batch_topk_kernel( const int * __restrict x, const T * __restrict y, int * __restrict z, - T * __restrict v, + float * __restrict v, int V, int K, T diversity_rate) @@ -178,7 +178,7 @@ __global__ void batch_topk_kernel( if (i < K) { z[i] = x[total.p[i]]; - v[i] = y[total.p[i]]; + v[i] = (float)y[total.p[i]]; } } } @@ -221,8 +221,8 @@ template __launch_bounds__(THREADBLOCK_SIZE) __global__ void beam_online_softmax_topk_kernel( const T * __restrict x, - const float * __restrict b, - const T * __restrict c, + const T * __restrict b, + const float * __restrict c, const bool * __restrict finished, int * __restrict z, T * __restrict v, @@ -301,7 +301,7 @@ template __launch_bounds__(THREADBLOCK_SIZE, 1) __global__ void beam_online_softmax_topk_stage1_kernel( const T * __restrict x, - const float * __restrict b, + const T * __restrict b, const bool * __restrict finished, float * __restrict t, int V, @@ -362,7 +362,7 @@ __global__ void beam_online_softmax_topk_stage1_kernel( #pragma unroll 1 for(int elem_id = section_start + thread_id; elem_id < section_end; elem_id += THREADBLOCK_SIZE) { - T bias = (T)(b == nullptr ? 0.0f : b[elem_id]); // gpt-2 does not use bias + T bias = b == nullptr ? (T)0.0f : b[elem_id]; // gpt-2 does not use bias T elem = x[elem_id] + bias; MD new_elem{elem, 1.0F}; partial.md = reduce_md_op(partial.md, new_elem); @@ -397,7 +397,7 @@ template __launch_bounds__(THREADBLOCK_SIZE) __global__ void beam_online_softmax_topk_stage2_kernel( const float * __restrict x, - const T * __restrict c, + const float * __restrict c, int * __restrict z, T * __restrict v, int K, @@ -479,7 +479,7 @@ void topK_kernelLauncher(T* log_probs, { const int batch_size = args.batch_size_; const int beam_width = args.beam_width_; - const int vocab_size = args.vocab_size_; + const int vocab_size = args.vocab_size_padded_; const int diversity_rate = args.beam_search_diversity_rate_; const int block_size = SMALL_TOP_K_SOFTMAX_THREADBLOCK_SIZE; @@ -530,7 +530,7 @@ void topK_kernelLauncher(T* log_probs, template void beam_online_softmax_topk_stage2_kernelLauncher( const float * temp_storage, - const T * cum_log_probs, + const float * cum_log_probs, int * ids, T * vals, int batch_size, @@ -571,18 +571,18 @@ void beam_online_softmax_topk_stage2_kernelLauncher( template void topK_softMax_kernelLauncher(const T* log_probs, - const float* bias, - const bool* finished, - T* cum_log_probs, - int* ids, - void* temp_storage, - const int temp_storage_size, - const int batch_size, - const int beam_width, - const int vocab_size, - const int end_id, - T diversity_rate, - cudaStream_t stream) + const T* bias, + const bool* finished, + float* cum_log_probs, + int* ids, + void* temp_storage, + const int temp_storage_size, + const int batch_size, + const int beam_width, + const int vocab_size, + const int end_id, + T diversity_rate, + cudaStream_t stream) { const int items_per_thread = 1; const int block_sz = (MAX_K < 16)? (MAX_K < 8)? SMALL_TOP_K_SOFTMAX_THREADBLOCK_SIZE:128:64; @@ -591,9 +591,10 @@ void topK_softMax_kernelLauncher(const T* log_probs, assert(temp_storage_size % 2 == 0); assert(temp_storage_size >= 2 * batch_size * beam_width * beam_width); + const int topk_buf_offset = ceil(batch_size * beam_width * beam_width / 4.) * 4; int* topk_tmp_id_buf = reinterpret_cast(temp_storage); - T* topk_tmp_val_buf = reinterpret_cast(topk_tmp_id_buf + batch_size * beam_width * beam_width); - float* tmp_buffer = reinterpret_cast(topk_tmp_val_buf + batch_size * beam_width * beam_width); + T* topk_tmp_val_buf = reinterpret_cast(topk_tmp_id_buf + topk_buf_offset); + float* tmp_buffer = reinterpret_cast(topk_tmp_val_buf + topk_buf_offset); #ifdef DO_SPLIT_SMALL_TOP_K_SOFTMAX int voc_parts = 4; @@ -638,7 +639,7 @@ void topK_softMax_kernelLauncher(const T* log_probs, else { #ifdef DO_SPLIT_SMALL_TOP_K_SOFTMAX - beam_online_softmax_topk_stage2_kernelLauncher + beam_online_softmax_topk_stage2_kernelLauncher (tmp_buffer, cum_log_probs, ids, cum_log_probs, batch_size, beam_width, voc_parts, stream); #else @@ -652,18 +653,18 @@ void topK_softMax_kernelLauncher(const T* log_probs, template void topK_softMax(const T* log_probs, - const float* bias, - const bool* finished, - T* cum_log_probs, - int* ids, - void* temp_storage, - DecodingBeamsearchArguments args, - cudaStream_t stream) + const T* bias, + const bool* finished, + float* cum_log_probs, + int* ids, + void* temp_storage, + DecodingBeamsearchArguments args, + cudaStream_t stream) { const int temp_storage_size = args.temp_storage_size_; const int batch_size = args.batch_size_; const int beam_width = args.beam_width_; - const int vocab_size = args.vocab_size_; + const int vocab_size = args.vocab_size_padded_; const int end_id = args.end_id_; const T diversity_rate = args.beam_search_diversity_rate_; @@ -699,6 +700,11 @@ void topK_softMax(const T* log_probs, (log_probs, bias, finished, cum_log_probs, ids, temp_storage, temp_storage_size, batch_size, beam_width, vocab_size, end_id, diversity_rate, stream); break; + case 32 : + topK_softMax_kernelLauncher + (log_probs, bias, finished, cum_log_probs, ids, temp_storage, temp_storage_size, + batch_size, beam_width, vocab_size, end_id, diversity_rate, stream); + break; default : printf("[ERROR] Topk kernel does not support beamwidth = %d \n", beam_width); exit(0); @@ -730,9 +736,9 @@ template void topK_softMax(const float* log_probs, cudaStream_t stream); template void topK_softMax(const half* log_probs, - const float* bias, - const bool* finished, - half* cum_log_probs, + const half* bias, + const bool* finished, + float* cum_log_probs, int* ids, void * tmp_storage, DecodingBeamsearchArguments args, diff --git a/fastertransformer/cuda/open_attention.cu b/fastertransformer/cuda/open_attention.cu index 25c03ccff..7e089209a 100644 --- a/fastertransformer/cuda/open_attention.cu +++ b/fastertransformer/cuda/open_attention.cu @@ -17,12 +17,14 @@ * Open sourced multi-head attention **/ -#include "fastertransformer/allocator.h" +#include "fastertransformer/utils/allocator.h" #include "fastertransformer/cuda/multi_head_attention.h" #include "fastertransformer/cuda/open_attention.h" +#include "fastertransformer/cuda/attention_kernels.cuh" #include #include #include + namespace fastertransformer{ namespace cuda{ @@ -111,6 +113,14 @@ __global__ void mappingRemovePaddingData(int *mapping, const int* sequence_id_of mapping[idx + __ldg(sequence_id_offset + idx)] = idx; } +void mappingRemovePaddingData_kernelLauncher(const int batch_size, const int seq_len, + const int valid_word_num, int *mapping, + const int* sequence_id_offset, cudaStream_t stream) +{ + cudaMemsetAsync(mapping, -1, batch_size * seq_len * sizeof(int), stream); + mappingRemovePaddingData<<>>(mapping, sequence_id_offset, valid_word_num); +} + //add_QK_bias_transform for batch int8 cublasLtMatmul & per axis quantization for weight //1.add QK bias //2.transform each Q K CUBLASLT_ORDER_COL32 matrixes into a series of sub-matrix (with CUBLASLT_ORDER_COL32/CUBLASLT_ORDER_COL4_4R2_8C layout) @@ -225,6 +235,153 @@ void add_QK_bias_transform(int8_t *q_buf_, int8_t *k_buf_, const int32_t* Q, con buf_ptr4[(((batch_id*head_num + head_id) * stride + (new_col << 5)*seq_len + new_row) >> 2)] = tmp4; } +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int32_t* Q, const T* bias_Q, + const int32_t* K, const T* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float * q_weight_amax, const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + add_QK_bias_transform<<>>( + q_buf, k_buf, Q, bias_Q, K, bias_K, + batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, seq_len*size_per_head, + q_weight_amax, q_input_deQFactor_div127_ptr, k_weight_amax, k_input_deQFactor_div127_ptr, + q_output_scale_ptr, k_output_scale_ptr, use_ORDER_COL32_2R_4R4); +} + +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int32_t* Q, const float* bias_Q, + const int32_t* K, const float* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float * q_weight_amax, const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int32_t* Q, const half* bias_Q, + const int32_t* K, const half* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float * q_weight_amax, const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +//add_QK_bias_padding_transform for batch int8 cublasLtMatmul & per tensor quantization for weight +//1.add QK bias +//2.padding seq_len in k_buf_ to a multiple of 32 named seq_len_padded +//3.transform each Q K CUBLASLT_ORDER_COL32 matrixes into a series of sub-matrix (with CUBLASLT_ORDER_COL32/CUBLASLT_ORDER_COL4_4R2_8C layout) +// Q, K are CUBLASLT_ORDER_COL32 matrixes of m = batch_size * seq_len, n = head_num * size_per_head +// q_buf_ is of batchCount = batch_size * head_num, m = seq_len, n = size_per_head, CUBLASLT_ORDER_COL32 +// k_buf_ is of batchCount = batch_size * head_num, m = seq_len_padded, n = size_per_head, CUBLASLT_ORDER_COL4_4R2_8C +//only for int8 IO +//size_per_head must be a multiple of 32 +//grid.x = batch_size * seq_len * 2; +//block.x = head_num * size_per_head / 4; +//using char4 +template +__global__ +void add_QK_bias_transform_varlen(int8_t *q_buf_, int8_t *k_buf_, const int8_t* Q, const T* bias_Q, + const int8_t* K, const T* bias_K, const int m, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const int seq_len_padded, const int stride_q, const int stride_k, + const float *q_input_deQFactor_ptr, const float *k_input_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4) +{ + const char4* data_ptr; + char4* buf_ptr4; + const T* bias_ptr; + int qk_id = blockIdx.x / m; + + data_ptr = qk_id == 0 ? (const char4*)Q : (const char4*)K; + buf_ptr4 = qk_id == 0 ? (char4*)q_buf_ : (char4*)k_buf_; + bias_ptr = qk_id == 0 ? bias_Q : bias_K; + const float input_deQFactor = qk_id == 0 ? __ldg(q_input_deQFactor_ptr) : __ldg(k_input_deQFactor_ptr); + const float output_scale = qk_id == 0 ? __ldg(q_output_scale_ptr) : __ldg(k_output_scale_ptr); + + int threadIdx4 = threadIdx.x << 2; + int batch_id = (blockIdx.x % m) / seq_len; + int head_id = threadIdx4 / size_per_head; + int id_in_head = threadIdx4 % size_per_head; + int word_id = blockIdx.x % seq_len; + + int data_id = (((threadIdx4 >> 5) << 5)*m + ((blockIdx.x%m) << 5) + (threadIdx4&31)) >> 2; + + float scale; + float tmp; + char4 tmp4 = __ldg(data_ptr+data_id); + scale = static_cast(tmp4.x) * input_deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.x = float_to_int8_rn(tmp*output_scale); + + threadIdx4 = threadIdx4+1; + scale = static_cast(tmp4.y) * input_deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.y = float_to_int8_rn(tmp*output_scale); + + threadIdx4 = threadIdx4+1; + scale = static_cast(tmp4.z) * input_deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.z = float_to_int8_rn(tmp*output_scale); + + threadIdx4 = threadIdx4+1; + scale = static_cast(tmp4.w) * input_deQFactor;; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.w = float_to_int8_rn(tmp*output_scale); + + + //row_id, col_id of sub-matrix (m = seq_len/seq_len_padded, n = size_per_head), column-major + + int row_id = word_id; + int col_id = id_in_head; + //new (row, rol) of LtTrans COL32/COL4 sub-matrix, leading dim = (COL32_ * seq_len / COL32_ * seq_len_padded) + int new_col = col_id >> 5; + int new_row; + if (use_ORDER_COL32_2R_4R4) + { + int row_in_tile = row_id & 31; + int col_in_tile = col_id & 31; + new_row = (qk_id != 1) ? + //COL32 + ((row_id << 5) + (col_id&31)) + : + //COL32_2R_4R4 + ( + ((row_id >> 5) << 10) + + //(((row%8)/2*4+row/8)*2+row%2)*32+col + (((((((row_in_tile&7)>>1)<<2)+(row_in_tile>>3))<<1)+(row_in_tile&1))<<5)+col_in_tile + ) + ; + } + else + { + new_row = (qk_id != 1) ? + //COL32 + ((row_id << 5) + (col_id&31)) + : + //COL4 + ////row_id/8 is the number of tile of (8 rows 32 columns) -- column-major + ////row_id%2 is even row, otherwise odd row + ////col_id%COL32_/8 is the number tile of (8 rows 8 columns) + ( + ((((row_id >> 3) << 3) + ((row_id&1) << 2) + ((col_id&31) >> 3)) << 5) + + ////col_id%8 >= 4 is the right half of (8 rows 8 columns) tile + ////(row_id%8/2) is (the row id of alternating 4 rows) - 1 + (((((col_id&7) >= 4)?4:0) + ((row_id&7) >> 1)) << 2) + + ////col_id%4 is the id of 4 cols + (col_id&3) + ) + ; + } + + const int act_seq_len = (qk_id == 0) ? seq_len : seq_len_padded; + const int stride = (qk_id == 0) ? stride_q : stride_k; + buf_ptr4[(((batch_id*head_num + head_id) * stride + (new_col << 5)*act_seq_len + new_row) >> 2)] = tmp4; +} + //add_QK_bias_transform for batch int8 cublasLtMatmul & per axis quantization for weight //1.add QK bias //2.transform each Q K CUBLASLT_ORDER_COL32 matrixes into a series of sub-matrix (with CUBLASLT_ORDER_COL32/CUBLASLT_ORDER_COL4_4R2_8C layout) @@ -331,8 +488,57 @@ void add_QK_bias_transform(int8_t *q_buf_, int8_t *k_buf_, const int8_t* Q, cons } buf_ptr4[(((batch_id*head_num + head_id) * stride + (new_col << 5)*seq_len + new_row) >> 2)] = tmp4; +} + + +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int8_t* Q, const T* bias_Q, + const int8_t* K, const T* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *q_input_deQFactor_ptr, const float *k_input_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + assert(size_per_head % 32 == 0); + if (seq_len % 32 == 0) + { + add_QK_bias_transform_varlen<<>>( + q_buf, k_buf, Q, bias_Q, K, bias_K, + batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, + seq_len, seq_len*size_per_head, seq_len*size_per_head, + q_input_deQFactor_ptr, k_input_deQFactor_ptr, q_output_scale_ptr, k_output_scale_ptr, + use_ORDER_COL32_2R_4R4); + } + else + { + int seq_len_padded = (seq_len + 31)/32*32; + //The padding words will not be considered in softmax, so we don't need memset for k_buf_ + //cudaMemsetAsync(k_buf, 0, batch_size * head_num * seq_len_padded * size_per_head * sizeof(int8_t), stream); + add_QK_bias_transform_varlen<<>>( + q_buf, k_buf, Q, bias_Q, K, bias_K, + batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, + seq_len_padded, seq_len*size_per_head, seq_len_padded*size_per_head, + q_input_deQFactor_ptr, k_input_deQFactor_ptr, q_output_scale_ptr, k_output_scale_ptr, + use_ORDER_COL32_2R_4R4); + } } +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int8_t* Q, const float* bias_Q, + const int8_t* K, const float* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *q_input_deQFactor_ptr, const float *k_input_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int8_t* Q, const half* bias_Q, + const int8_t* K, const half* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *q_input_deQFactor_ptr, const float *k_input_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + //add_QK_bias_transform & rebuild padding for batch int8 cublasLtMatmul & per axis quantization for weight //1.add QK bias //2.transform each Q K CUBLASLT_ORDER_COL32 matrixes into a series of sub-matrix (with CUBLASLT_ORDER_COL32/CUBLASLT_ORDER_COL4_4R2_8C layout) @@ -449,6 +655,59 @@ void add_QK_bias_transform_rebuild_padding(int8_t *q_buf_, int8_t *k_buf_, const buf_ptr4[(((batch_id*head_num + head_id) * stride + (new_col << 5)*seq_len + new_row) >> 2)] = tmp4; } +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, + const int32_t* Q, const T* bias_Q, + const int32_t* K, const T* bias_K, + const int* sequence_id_offset, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float * q_weight_amax, + const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, + const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + add_QK_bias_transform_rebuild_padding<<>>( + q_buf, k_buf, Q, bias_Q, K, bias_K, + sequence_id_offset, valid_word_num, + batch_size*seq_len, batch_size, seq_len, + head_num, size_per_head, seq_len*size_per_head, + q_weight_amax, q_input_deQFactor_div127_ptr, + k_weight_amax, k_input_deQFactor_div127_ptr, + q_output_scale_ptr, k_output_scale_ptr, + use_ORDER_COL32_2R_4R4); +} + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, + const int32_t* Q, const float* bias_Q, + const int32_t* K, const float* bias_K, + const int* sequence_id_offset, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float * q_weight_amax, + const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, + const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, + const int32_t* Q, const half* bias_Q, + const int32_t* K, const half* bias_K, + const int* sequence_id_offset, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float * q_weight_amax, + const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, + const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + //add_QK_bias_transform & rebuild padding for batch int8 cublasLtMatmul & per tensor quantization for weight //1.add QK bias //2.transform each Q K CUBLASLT_ORDER_COL32 matrixes into a series of sub-matrix (with CUBLASLT_ORDER_COL32/CUBLASLT_ORDER_COL4_4R2_8C layout) @@ -563,6 +822,169 @@ void add_QK_bias_transform_rebuild_padding(int8_t *q_buf_, int8_t *k_buf_, const buf_ptr4[(((batch_id*head_num + head_id) * stride + (new_col << 5)*seq_len + new_row) >> 2)] = tmp4; } + +//add_QK_bias_transform & rebuild padding for batch int8 cublasLtMatmul & per tensor quantization for weight +//1.add QK bias +//2.transform each Q K CUBLASLT_ORDER_COL32 matrixes into a series of sub-matrix (with CUBLASLT_ORDER_COL32/CUBLASLT_ORDER_COL4_4R2_8C layout) +// Q, K are CUBLASLT_ORDER_COL32 matrixes of m = valid_word_num, n = head_num * size_per_head +// q_buf_ is of batchCount = batch_size * head_num, m = seq_len, n = size_per_head, CUBLASLT_ORDER_COL32 +// seq_len_padded = (seq_len + 31)/32*32; +// k_buf_ is of batchCount = batch_size * head_num, m = seq_len_padded, n = size_per_head, CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 +//only for int8 IO +//seq_len, size_per_head must be a multiple of 32 +//grid.x = valid_word_num * 2; +//block.x = head_num * size_per_head / 4; +//using char4 +template +__global__ +void add_QK_bias_transform_rebuild_padding_varlen(int8_t *q_buf_, int8_t *k_buf_, const int8_t* Q, const T* bias_Q, + const int8_t* K, const T* bias_K, const int* sequence_id_offset, + const int valid_word_num, const int m, const int batch_size, + const int seq_len, const int seq_len_padded, const int head_num, + const int size_per_head, int stride_q, int stride_k, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4) +{ + const char4* data_ptr; + char4* buf_ptr4; + const T* bias_ptr; + int qk_id = blockIdx.x / valid_word_num; + + data_ptr = qk_id == 0 ? (const char4*)Q : (const char4*)K; + buf_ptr4 = qk_id == 0 ? (char4*)q_buf_ : (char4*)k_buf_; + bias_ptr = qk_id == 0 ? bias_Q : bias_K; + + int threadIdx4 = threadIdx.x << 2; + int m_full_idx = blockIdx.x % valid_word_num; + m_full_idx = (valid_word_num != m) ? (m_full_idx + __ldg(sequence_id_offset+m_full_idx)) : m_full_idx; + int batch_id = m_full_idx / seq_len; + int head_id = threadIdx4 / size_per_head; + int id_in_head = threadIdx4 % size_per_head; + int word_id = m_full_idx % seq_len; + + const float deQFactor = qk_id == 0 ? __ldg(q_deQFactor_ptr) : __ldg(k_deQFactor_ptr); + const float output_scale = qk_id == 0 ? __ldg(q_output_scale_ptr) : __ldg(k_output_scale_ptr); + + int data_id = (((threadIdx4 >> 5) << 5)*valid_word_num + ((blockIdx.x%valid_word_num) << 5) + (threadIdx4&31)) >> 2; + + float scale; + float tmp; + char4 tmp4; + + tmp4 = __ldg(data_ptr+data_id); + + scale = static_cast(tmp4.x) * deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.x = float_to_int8_rn(tmp*output_scale); + + threadIdx4 = threadIdx4+1; + scale = static_cast(tmp4.y) * deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.y = float_to_int8_rn(tmp*output_scale); + + threadIdx4 = threadIdx4+1; + scale = static_cast(tmp4.z) * deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.z = float_to_int8_rn(tmp*output_scale); + + threadIdx4 = threadIdx4+1; + scale = static_cast(tmp4.w) * deQFactor; + tmp = static_cast(__ldg(bias_ptr+threadIdx4)) + scale; + tmp4.w = float_to_int8_rn(tmp*output_scale); + + //row_id, col_id of sub-matrix (m = seq_len or seq_len_padded, n = size_per_head), column-major + int row_id = word_id; + int col_id = id_in_head; + //new (row, rol) of LtTrans COL32/COL4 sub-matrix, leading dim = (COL32_ * seq_len) or (COL32_ * seq_len_padded) + int new_col = col_id >> 5; + int new_row; + if (use_ORDER_COL32_2R_4R4) + { + int row_in_tile = row_id & 31; + int col_in_tile = col_id & 31; + new_row = (qk_id != 1) ? + //COL32 + ((row_id << 5) + (col_id&31)) + : + //COL32_2R_4R4 + ( + ((row_id >> 5) << 10) + + //(((row%8)/2*4+row/8)*2+row%2)*32+col + (((((((row_in_tile&7)>>1)<<2)+(row_in_tile>>3))<<1)+(row_in_tile&1))<<5)+col_in_tile + ) + ; + } + else + { + new_row = (qk_id != 1) ? + //COL32 + ((row_id << 5) + (col_id&31)) + : + //COL4 + ////row_id/8 is the number of tile of (8 rows 32 columns) -- column-major + ////row_id%2 is even row, otherwise odd row + ////col_id%COL32_/8 is the number tile of (8 rows 8 columns) + ( + ((((row_id >> 3) << 3) + ((row_id&1) << 2) + ((col_id&31) >> 3)) << 5) + + ////col_id%8 >= 4 is the right half of (8 rows 8 columns) tile + ////(row_id%8/2) is (the row id of alternating 4 rows) - 1 + (((((col_id&7) >= 4)?4:0) + ((row_id&7) >> 1)) << 2) + + ////col_id%4 is the id of 4 cols + (col_id&3) + ) + ; + } + + const int stride = (qk_id != 1) ? stride_q : stride_k; + const int len = (qk_id != 1) ? seq_len : seq_len_padded; + buf_ptr4[(((batch_id*head_num + head_id) * stride + (new_col << 5)*len + new_row) >> 2)] = tmp4; +} + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int8_t* Q, const T* bias_Q, + const int8_t* K, const T* bias_K, const int* sequence_id_offset, + const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + int seq_len_padded = (seq_len + 31)/32*32; + add_QK_bias_transform_rebuild_padding_varlen<<>>( + q_buf, k_buf, Q, bias_Q, K, bias_K, + sequence_id_offset, valid_word_num, + batch_size * seq_len, batch_size, + seq_len, seq_len_padded, head_num, size_per_head, + seq_len*size_per_head, seq_len_padded*size_per_head, + q_deQFactor_ptr, k_deQFactor_ptr, + q_output_scale_ptr, k_output_scale_ptr, + use_ORDER_COL32_2R_4R4); +} + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, + const int8_t* Q, const float* bias_Q, + const int8_t* K, const float* bias_K, + const int* sequence_id_offset, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, + const int8_t* Q, const half* bias_Q, + const int8_t* K, const half* bias_K, + const int* sequence_id_offset, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + //input matrix a matrix of m = batch_size*seq_len , n = head_num*size_per_head, CUBLASLT_ORDER_COL32 //output matrixes are a series of sub-matrixes with size of m = size_per_head, n = seq_len , CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 //only for int32_t Input int8_t Output @@ -669,78 +1091,68 @@ void add_V_bias_transform(int8_t *v_buf_, const int32_t *V, const T *V_bias, con buf_ptr4[(blockIdx.z*stride + (col << 5)*size_per_head + row) >> 2] = dataTmp; } - - -//input matrix a matrix of m = batch_size*seq_len , n = head_num*size_per_head, CUBLASLT_ORDER_COL32 -//output matrixes are a series of sub-matrixes with size of m = size_per_head, n = seq_len , CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 -//only for int8_t IO -//seq_len, size_per_head must be a multiple of 32 -//grid = (size_per_head/32, seq_len/32, batch_size*head_num) -//block = (8, 32); -//using char4 -//per tensor quantization for weight -template +template <> __global__ -void add_V_bias_transform(int8_t *v_buf_, const int8_t *V, const T *V_bias, const int batch_size, const int seq_len, - const int head_num, const int size_per_head, int stride, - const float *input_deQFactor_ptr, const float *out_scale_ptr, bool use_ORDER_COL32_2R_4R4) +void add_V_bias_transform(int8_t *v_buf_, const int32_t *V, const half *V_bias, const int batch_size, const int seq_len, + const int head_num, const int size_per_head, int stride, const float* weight_amax, + const float *input_deQFactor_div127_ptr, const float *out_scale_ptr, bool use_ORDER_COL32_2R_4R4) { - const float input_deQFactor = __ldg(input_deQFactor_ptr); + const float input_deQFactor_div127 = __ldg(input_deQFactor_div127_ptr); const float out_scale = __ldg(out_scale_ptr); __shared__ int8_t shm[32][33]; - const char4* data_ptr = (const char4*)V; + const int32_t* data_ptr = V; char4* buf_ptr4 = (char4*) v_buf_; - const T* bias_ptr = V_bias; int threadIdx4 = threadIdx.x << 2; //for src of (seq_len, size_per_head) int batch_id = blockIdx.z/head_num; int head_id = blockIdx.z%head_num; - int word_id = (blockIdx.y << 5) + threadIdx.y; - int id_in_size = (blockIdx.x << 5) + threadIdx4; + + int blockIdy32 = (blockIdx.y << 5); + int blockIdx32 = (blockIdx.x << 5); + int word_id = blockIdy32 + threadIdx.y; + int id_in_size = blockIdx32 + threadIdx4; //for V layout (batch_size*seq_len, head_num*size_per_head) int col = head_id*size_per_head + id_in_size; int row = batch_id*seq_len + word_id; - int inIdx = (((col >> 5) << 5)*batch_size*seq_len + ((row << 5) + (col&31))) >> 2; + int inIdx = ((col & 0xffffffe0)*batch_size*seq_len + ((row << 5) + (col&31))); //for shm row-major int sh_col = threadIdx4; int sh_row = threadIdx.y; - float tmp; + int col_2 = col >> 1; float scale; - //const half2* bias_ptr2 = (const half2*)bias_ptr; - //half2 tmp2; + const half2* bias_ptr2 = (const half2*)V_bias; + half2 tmp2; - //tmp2 = __ldg(&bias_ptr2[col >> 1]); - - char4 dataTmp = __ldg(data_ptr + inIdx); + tmp2 = __ldg(bias_ptr2+col_2); - scale = dataTmp.x * input_deQFactor; - tmp = scale + static_cast(__ldg(bias_ptr + col));//(tmp2.x); - shm[sh_row][sh_col] = float_to_int8_rn(tmp*out_scale); + scale = __ldg(data_ptr+inIdx) * __ldg(weight_amax+col) * input_deQFactor_div127; + scale = scale + static_cast(tmp2.x); + shm[sh_row][sh_col] = float_to_int8_rn(scale*out_scale); - scale = dataTmp.y * input_deQFactor; - tmp = scale + static_cast(__ldg(bias_ptr+col+1));//(tmp2.y); - shm[sh_row][sh_col+1] = float_to_int8_rn(tmp*out_scale); + scale = __ldg(data_ptr+inIdx+1) * __ldg(weight_amax+col+1) * input_deQFactor_div127; + scale = scale + static_cast(tmp2.y); + shm[sh_row][sh_col+1] = float_to_int8_rn(scale*out_scale); - //tmp2 = __ldg(&bias_ptr2[(col >> 1) + 1]); + tmp2 = __ldg(bias_ptr2 + col_2 + 1); - scale = dataTmp.z * input_deQFactor; - tmp = scale + static_cast(__ldg(bias_ptr+col+2));//(tmp2.x); - shm[sh_row][sh_col+2] = float_to_int8_rn(tmp*out_scale); + scale = __ldg(data_ptr + inIdx + 2) * __ldg(weight_amax + col + 2) * input_deQFactor_div127; + scale = scale + static_cast(tmp2.x); + shm[sh_row][sh_col+2] = float_to_int8_rn(scale*out_scale); - scale = dataTmp.w * input_deQFactor; - tmp = scale + static_cast(__ldg(bias_ptr+col+3));//(tmp2.y); - shm[sh_row][sh_col+3] = float_to_int8_rn(tmp*out_scale); + scale = __ldg(data_ptr + inIdx + 3) * __ldg(weight_amax + col + 3) * input_deQFactor_div127; + scale = scale + static_cast(tmp2.y); + shm[sh_row][sh_col+3] = float_to_int8_rn(scale*out_scale); __syncthreads(); //for dst of (size_per_head, seq_len) - word_id = (blockIdx.y << 5) + threadIdx4; - id_in_size = (blockIdx.x << 5) + threadIdx.y; + word_id = blockIdy32 + threadIdx4; + id_in_size = blockIdx32 + threadIdx.y; col = (word_id >> 5); if (use_ORDER_COL32_2R_4R4) @@ -761,7 +1173,7 @@ void add_V_bias_transform(int8_t *v_buf_, const int8_t *V, const T *V_bias, cons ////id_in_size/8 is the number of tile of (8 rows 32 columns) -- column-major ////id_in_size%2 is even row, otherwise odd row ////word_id%COL32_/8 is the number tile of (8 rows 8 columns) - ((((id_in_size >> 3) << 3) + ((id_in_size&1) << 2) + ((word_id&31) >> 3)) << 5) + + (((id_in_size & 0xfffffff8) + ((id_in_size&1) << 2) + ((word_id&31) >> 3)) << 5) + ////word_id%8 >= 4 is the right half of (8 rows 8 columns) tile ////(id_in_size%8/2) is (the row id of alternating 4 rows) - 1 (((((word_id&7) >= 4)?4:0) + ((id_in_size&7) >> 1)) << 2) + @@ -769,7 +1181,8 @@ void add_V_bias_transform(int8_t *v_buf_, const int8_t *V, const T *V_bias, cons (word_id&3) ); } - + + char4 dataTmp; dataTmp.x = shm[sh_col][sh_row]; dataTmp.y = shm[sh_col+1][sh_row]; dataTmp.z = shm[sh_col+2][sh_row]; @@ -777,68 +1190,106 @@ void add_V_bias_transform(int8_t *v_buf_, const int8_t *V, const T *V_bias, cons buf_ptr4[(blockIdx.z*stride + (col << 5)*size_per_head + row) >> 2] = dataTmp; } -template <> +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int32_t *V, const T *V_bias, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + add_V_bias_transform<<>>(v_buf, V, V_bias, batch_size, seq_len, head_num, size_per_head, seq_len*size_per_head, weight_amax, input_deQFactor_div127_ptr, out_scale_ptr, use_ORDER_COL32_2R_4R4); +} + +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int32_t *V, const float *V_bias, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int32_t *V, const half *V_bias, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +//input matrix a matrix of m = batch_size*seq_len , n = head_num*size_per_head, CUBLASLT_ORDER_COL32 +//seq_len_padded = (seq_len+31)/32*32 +//output matrixes are a series of sub-matrixes with size of m = size_per_head, n = seq_len_padded , CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 +//only for int8_t IO +//size_per_head must be a multiple of 32 +//grid = (size_per_head/32, seq_len_padded/32, batch_size*head_num) +//block = (8, 32); +//using char4 +//per tensor quantization for weight +template __global__ -void add_V_bias_transform(int8_t *v_buf_, const int32_t *V, const half *V_bias, const int batch_size, const int seq_len, - const int head_num, const int size_per_head, int stride, const float* weight_amax, - const float *input_deQFactor_div127_ptr, const float *out_scale_ptr, bool use_ORDER_COL32_2R_4R4) +void add_V_bias_transform_varlen(int8_t *v_buf_, const int8_t *V, const T *V_bias, const int batch_size, const int seq_len, + const int head_num, const int size_per_head, const int seq_len_padded, int stride, + const float *input_deQFactor_ptr, const float *out_scale_ptr, bool use_ORDER_COL32_2R_4R4) { - const float input_deQFactor_div127 = __ldg(input_deQFactor_div127_ptr); + const float input_deQFactor = __ldg(input_deQFactor_ptr); const float out_scale = __ldg(out_scale_ptr); __shared__ int8_t shm[32][33]; - const int32_t* data_ptr = V; + const char4* data_ptr = (const char4*)V; char4* buf_ptr4 = (char4*) v_buf_; + const T* bias_ptr = V_bias; int threadIdx4 = threadIdx.x << 2; //for src of (seq_len, size_per_head) int batch_id = blockIdx.z/head_num; int head_id = blockIdx.z%head_num; - - int blockIdy32 = (blockIdx.y << 5); - int blockIdx32 = (blockIdx.x << 5); - int word_id = blockIdy32 + threadIdx.y; - int id_in_size = blockIdx32 + threadIdx4; + int word_id = (blockIdx.y << 5) + threadIdx.y; + int id_in_size = (blockIdx.x << 5) + threadIdx4; - //for V layout (batch_size*seq_len, head_num*size_per_head) - int col = head_id*size_per_head + id_in_size; - int row = batch_id*seq_len + word_id; - int inIdx = ((col & 0xffffffe0)*batch_size*seq_len + ((row << 5) + (col&31))); + int col, row; //for shm row-major int sh_col = threadIdx4; int sh_row = threadIdx.y; + char4 dataTmp; + if (word_id < seq_len) + { + //for V layout (batch_size*seq_len, head_num*size_per_head) + col = head_id*size_per_head + id_in_size; + row = batch_id*seq_len + word_id; + int inIdx = (((col >> 5) << 5)*batch_size*seq_len + ((row << 5) + (col&31))) >> 2; - int col_2 = col >> 1; - float scale; - - const half2* bias_ptr2 = (const half2*)V_bias; - half2 tmp2; - - tmp2 = __ldg(bias_ptr2+col_2); + float tmp; + float scale; - scale = __ldg(data_ptr+inIdx) * __ldg(weight_amax+col) * input_deQFactor_div127; - scale = scale + static_cast(tmp2.x); - shm[sh_row][sh_col] = float_to_int8_rn(scale*out_scale); + dataTmp = __ldg(data_ptr + inIdx); - scale = __ldg(data_ptr+inIdx+1) * __ldg(weight_amax+col+1) * input_deQFactor_div127; - scale = scale + static_cast(tmp2.y); - shm[sh_row][sh_col+1] = float_to_int8_rn(scale*out_scale); + scale = dataTmp.x * input_deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr + col));//(tmp2.x); + shm[sh_row][sh_col] = float_to_int8_rn(tmp*out_scale); - tmp2 = __ldg(bias_ptr2 + col_2 + 1); + scale = dataTmp.y * input_deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr+col+1));//(tmp2.y); + shm[sh_row][sh_col+1] = float_to_int8_rn(tmp*out_scale); - scale = __ldg(data_ptr + inIdx + 2) * __ldg(weight_amax + col + 2) * input_deQFactor_div127; - scale = scale + static_cast(tmp2.x); - shm[sh_row][sh_col+2] = float_to_int8_rn(scale*out_scale); + scale = dataTmp.z * input_deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr+col+2));//(tmp2.x); + shm[sh_row][sh_col+2] = float_to_int8_rn(tmp*out_scale); - scale = __ldg(data_ptr + inIdx + 3) * __ldg(weight_amax + col + 3) * input_deQFactor_div127; - scale = scale + static_cast(tmp2.y); - shm[sh_row][sh_col+3] = float_to_int8_rn(scale*out_scale); + scale = dataTmp.w * input_deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr+col+3));//(tmp2.y); + shm[sh_row][sh_col+3] = float_to_int8_rn(tmp*out_scale); + } + else + { + shm[sh_row][sh_col] = shm[sh_row][sh_col+1] = shm[sh_row][sh_col+2] = shm[sh_row][sh_col+3] = 0; + } __syncthreads(); - //for dst of (size_per_head, seq_len) - word_id = blockIdy32 + threadIdx4; - id_in_size = blockIdx32 + threadIdx.y; + //for dst of (size_per_head, seq_len_padded) + word_id = (blockIdx.y << 5) + threadIdx4; + id_in_size = (blockIdx.x << 5) + threadIdx.y; col = (word_id >> 5); if (use_ORDER_COL32_2R_4R4) @@ -859,7 +1310,7 @@ void add_V_bias_transform(int8_t *v_buf_, const int32_t *V, const half *V_bias, ////id_in_size/8 is the number of tile of (8 rows 32 columns) -- column-major ////id_in_size%2 is even row, otherwise odd row ////word_id%COL32_/8 is the number tile of (8 rows 8 columns) - (((id_in_size & 0xfffffff8) + ((id_in_size&1) << 2) + ((word_id&31) >> 3)) << 5) + + ((((id_in_size >> 3) << 3) + ((id_in_size&1) << 2) + ((word_id&31) >> 3)) << 5) + ////word_id%8 >= 4 is the right half of (8 rows 8 columns) tile ////(id_in_size%8/2) is (the row id of alternating 4 rows) - 1 (((((word_id&7) >= 4)?4:0) + ((id_in_size&7) >> 1)) << 2) + @@ -867,8 +1318,7 @@ void add_V_bias_transform(int8_t *v_buf_, const int32_t *V, const half *V_bias, (word_id&3) ); } - - char4 dataTmp; + dataTmp.x = shm[sh_col][sh_row]; dataTmp.y = shm[sh_col+1][sh_row]; dataTmp.z = shm[sh_col+2][sh_row]; @@ -876,6 +1326,44 @@ void add_V_bias_transform(int8_t *v_buf_, const int32_t *V, const half *V_bias, buf_ptr4[(blockIdx.z*stride + (col << 5)*size_per_head + row) >> 2] = dataTmp; } +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int8_t *V, const T *V_bias, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *input_deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + assert(size_per_head % 32 == 0); + if (seq_len % 32 == 0) + { + add_V_bias_transform_varlen<<>>( + v_buf, V, V_bias, + batch_size, seq_len, head_num, size_per_head, + seq_len, seq_len*size_per_head, + input_deQFactor_ptr, out_scale_ptr, use_ORDER_COL32_2R_4R4); + } + else + { + const int seq_len_padded = (seq_len + 31)/32*32; + add_V_bias_transform_varlen<<>>( + v_buf, V, V_bias, + batch_size, seq_len, head_num, size_per_head, + seq_len_padded, seq_len_padded*size_per_head, + input_deQFactor_ptr, out_scale_ptr, use_ORDER_COL32_2R_4R4); + } +} + +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int8_t *V, const float *V_bias, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *input_deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int8_t *V, const half *V_bias, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *input_deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + //add bias into V & rebuild padding //input matrix a matrix of m = valid_word_num, n = head_num*size_per_head, CUBLASLT_ORDER_COL32 //output matrixes are a series of sub-matrixes with size of m = size_per_head, n = seq_len , CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 @@ -1091,6 +1579,46 @@ void add_V_bias_transform_rebuild_padding(int8_t *v_buf_, const int32_t *V, cons buf_ptr4[(blockIdx.z*stride + (col << 5)*size_per_head + row) >> 2] = dataTmp; } +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int32_t *V, const T *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, + const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + add_V_bias_transform_rebuild_padding<<>>( + v_buf, V, V_bias, + sequence_id_map, valid_word_num, + batch_size, seq_len, + head_num, size_per_head, + seq_len*size_per_head, + weight_amax, input_deQFactor_div127_ptr, + out_scale_ptr, use_ORDER_COL32_2R_4R4); +} + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int32_t *V, const float *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, + const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int32_t *V, const half *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, + const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + //add bias into V & rebuild padding //input matrix a matrix of m = valid_word_num, n = head_num*size_per_head, CUBLASLT_ORDER_COL32 //output matrixes are a series of sub-matrixes with size of m = size_per_head, n = seq_len , CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 @@ -1201,6 +1729,149 @@ void add_V_bias_transform_rebuild_padding(int8_t *v_buf_, const int8_t *V, const buf_ptr4[(blockIdx.z*stride + (col << 5)*size_per_head + row) >> 2] = dataTmp; } +//add bias into V & rebuild padding +//input matrix a matrix of m = valid_word_num, n = head_num*size_per_head, CUBLASLT_ORDER_COL32 +//output matrixes are a series of sub-matrixes with size of m = size_per_head, n = seq_len_padded , CUBLASLT_ORDER_COL4_4R2_8C or CUBLASLT_ORDER_COL32_2R_4R4 +//only for int8_t IO +//seq_len, size_per_head must be a multiple of 32 +//grid = (size_per_head/32, seq_len_padded/32, batch_size*head_num) +//block = (8, 32); +//using char4 +//per tensor quantization for weight +template +__global__ +void add_V_bias_transform_rebuild_padding_varlen(int8_t *v_buf_, const int8_t *V, const T *V_bias, const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, const int seq_len_padded, + const int head_num, const int size_per_head, int stride, + const float *deQFactor_ptr, const float *out_scale_ptr, bool use_ORDER_COL32_2R_4R4) +{ + __shared__ int8_t shm[32][33]; + const char4* data_ptr = (const char4*)V; + char4* buf_ptr4 = (char4*) v_buf_; + const T* bias_ptr = V_bias; + + int threadIdx4 = threadIdx.x << 2; + + //for src of (seq_len, size_per_head) + int batch_id = blockIdx.z/head_num; + int head_id = blockIdx.z%head_num; + int word_id = (blockIdx.y << 5) + threadIdx.y; + int id_in_size = (blockIdx.x << 5) + threadIdx4; + + //for shm row-major + int sh_col = threadIdx4; + int sh_row = threadIdx.y; + + //for V layout (batch_size*seq_len, head_num*size_per_head) + int col; + int row = word_id < seq_len ? __ldg(sequence_id_map + batch_id*seq_len + word_id) : -1; + + if (row != -1){ + col = head_id*size_per_head + id_in_size; + int inIdx = ((col & 0xffffffe0)*valid_word_num + ((row << 5) + (col&31))) >> 2; + + float tmp; + float scale; + + const float deQFactor = __ldg(deQFactor_ptr); + const float out_scale = __ldg(out_scale_ptr); + + char4 dataTmp = __ldg(data_ptr + inIdx); + + scale = dataTmp.x * deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr + col)); + shm[sh_row][sh_col] = float_to_int8_rn(tmp*out_scale); + + scale = dataTmp.y * deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr+col+1)); + shm[sh_row][sh_col+1] = float_to_int8_rn(tmp*out_scale); + + scale = dataTmp.z * deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr+col+2)); + shm[sh_row][sh_col+2] = float_to_int8_rn(tmp*out_scale); + + scale = dataTmp.w * deQFactor; + tmp = scale + static_cast(__ldg(bias_ptr+col+3)); + shm[sh_row][sh_col+3] = float_to_int8_rn(tmp*out_scale); + } + else{ + shm[sh_row][sh_col] = shm[sh_row][sh_col + 1] = shm[sh_row][sh_col + 2] = shm[sh_row][sh_col + 3] = 0; + } + __syncthreads(); + + char4 dataTmp; + dataTmp.x = shm[sh_col][sh_row]; + dataTmp.y = shm[sh_col+1][sh_row]; + dataTmp.z = shm[sh_col+2][sh_row]; + dataTmp.w = shm[sh_col+3][sh_row]; + + //for dst of (size_per_head, seq_len_padded) + word_id = (blockIdx.y << 5) + threadIdx4; + id_in_size = (blockIdx.x << 5) + threadIdx.y; + col = (word_id >> 5); + + if (use_ORDER_COL32_2R_4R4) + { + int row_in_tile = id_in_size & 31; + int col_in_tile = word_id & 31; + row = ( + //COL32_2R_4R4 + ((id_in_size >> 5) << 10) + + //(((row%8)/2*4+row/8)*2+row%2)*32+col + (((((((row_in_tile&7)>>1)<<2)+(row_in_tile>>3))<<1)+(row_in_tile&1))<<5)+col_in_tile + ); + } + else + { + row = ( + //COL4 + ////id_in_size/8 is the number of tile of (8 rows 32 columns) -- column-major + ////id_in_size%2 is even row, otherwise odd row + ////word_id%COL32_/8 is the number tile of (8 rows 8 columns) + (((id_in_size & 0xfffffff8) + ((id_in_size&1) << 2) + ((word_id&31) >> 3)) << 5) + + ////word_id%8 >= 4 is the right half of (8 rows 8 columns) tile + ////(id_in_size%8/2) is (the row id of alternating 4 rows) - 1 + (((((word_id&7) >= 4)?4:0) + ((id_in_size&7) >> 1)) << 2) + + ////word_id%4 is the id of 4 cols + (word_id&3) + ); + } + + buf_ptr4[(blockIdx.z*stride + (col << 5)*size_per_head + row) >> 2] = dataTmp; +} + + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int8_t *V, const T *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream) +{ + int seq_len_padded = (seq_len + 31)/32*32; + add_V_bias_transform_rebuild_padding_varlen<<>>( + v_buf, V, V_bias, sequence_id_map, valid_word_num, + batch_size, seq_len, seq_len_padded, head_num, size_per_head, seq_len_padded*size_per_head, + deQFactor_ptr, out_scale_ptr, use_ORDER_COL32_2R_4R4); +} + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int8_t *V, const float *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int8_t *V, const half *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + __global__ void trt_add_QKV_bias(half2* Q, const half2* bias_Q, half2* K, const half2* bias_K, half2* V, const half2* bias_V, half2* q_buf_, half2* k_buf_, half2* v_buf_, @@ -1252,33 +1923,213 @@ void OpenMultiHeadAttention::trt_add_QKV_bias_kernelLauncher( head_num_, size_per_head_ / 2); } -template -void OpenMultiHeadAttention::fused_multiHeadAttr_kernelLauncher() +// add bias and then transform from +// 3 * ([valid_word_num, head*size] + CUBLASLT_ORDER_COL32) -> [valid_word_num, head, 3, size] + row-major +// input is INT32 && per axis quantization for weight +// output is INT8 && per tensor quantization +// grid((head*size + 31)/32, (valid_word_num + 31)/32, 3) +// block(8, 32) +// size should be a multiple of 4 +//using char4 as output, int4 as input +template +__global__ +void trt_add_QKV_bias_COL32_int32IInt8O(char4* output, const int4* QKV, + const T* bias_Q, const T* bias_K, const T* bias_V, + const float *input_deQFactor_div127_ptr, + const float *q_weight_amax, + const float *k_weight_amax, + const float *v_weight_amax, + const float qkv_output_scale, const int valid_word_num, const int head_num, + const int size_per_head, const int head_num_x_size_per_head) { - trt_add_QKV_bias_kernelLauncher(param_.self_attention.query_weight.bias, - param_.self_attention.key_weight.bias, - param_.self_attention.value_weight.bias); - - - const int B = param_.trt_seqlen_size - 1; - const int maxS = from_seq_len_; - int S = 384; - if (maxS <= 64) + const int qkv_id = blockIdx.z; + const int seq_id = (blockIdx.y << 5) + threadIdx.y; + const int threadIdx4 = threadIdx.x << 2; + int hidden_id = (blockIdx.x << 5) + threadIdx4; + const int size_id = hidden_id % size_per_head; + const int head_id = hidden_id / size_per_head; + + const bool qual = (seq_id < valid_word_num) && (hidden_id < head_num_x_size_per_head); + if (qual) { - S = 64; + const float* weight_amax = qkv_id == 0 ? q_weight_amax : (qkv_id == 1 ? k_weight_amax : v_weight_amax); + const float input_deQFactor_div127 = __ldg(input_deQFactor_div127_ptr); + + const T* bias_ptr = (qkv_id == 0) ? bias_Q : ((qkv_id == 1) ? bias_K : bias_V); + + const int input_id = (qkv_id * valid_word_num * head_num_x_size_per_head + ((hidden_id & 0xffffffe0)*valid_word_num + (seq_id << 5) + (hidden_id&31))) >> 2; + + char4 tmp; + const int4 tmp_int4 = __ldg(QKV+input_id); + + tmp.x = float_to_int8_rn((static_cast(tmp_int4.x) * __ldg(weight_amax+hidden_id) * input_deQFactor_div127 + static_cast(__ldg(bias_ptr + hidden_id))) * qkv_output_scale); + + hidden_id += 1; + tmp.y = float_to_int8_rn((static_cast(tmp_int4.y) * __ldg(weight_amax+hidden_id) * input_deQFactor_div127 + static_cast(__ldg(bias_ptr + hidden_id))) * qkv_output_scale); + + hidden_id += 1; + tmp.z = float_to_int8_rn((static_cast(tmp_int4.z) * __ldg(weight_amax+hidden_id) * input_deQFactor_div127 + static_cast(__ldg(bias_ptr + hidden_id))) * qkv_output_scale); + + hidden_id += 1; + tmp.w = float_to_int8_rn((static_cast(tmp_int4.w) * __ldg(weight_amax+hidden_id) * input_deQFactor_div127 + static_cast(__ldg(bias_ptr + hidden_id))) * qkv_output_scale); + + //const int output_id = (seq_id * 3 * head_num_x_size_per_head + head_id * 3 * size_per_head + qkv_id * size_per_head + size_id) >> 2; + const int output_id = ((seq_id * head_num_x_size_per_head + head_id * size_per_head) * 3 + qkv_id * size_per_head + size_id) >> 2; + + output[output_id] = tmp; } - else if (maxS <= 96) +} + +template +void OpenMultiHeadAttention::trt_add_QKV_bias_COL32_int32Iint8O_kernelLauncher( + int8_t* output, + const int32_t* Q, + const DataType_* bias_Q, + const DataType_* bias_K, + const DataType_* bias_V, + const float *input_deQFactor_div127_ptr, + const float * q_weight_amax, + const float * k_weight_amax, + const float * v_weight_amax, + const float qkv_output_scale) +{ + int head_num_x_size_per_head = head_num_*size_per_head_; + dim3 grid((head_num_x_size_per_head + 31)/32, (param_.valid_word_num + 31)/32, 3); + dim3 block(8, 32); + + assert(size_per_head_ % 4 == 0); + + trt_add_QKV_bias_COL32_int32IInt8O<<>>((char4*)output, (const int4*)Q, + bias_Q, bias_K, bias_V, + input_deQFactor_div127_ptr, + q_weight_amax, + k_weight_amax, + v_weight_amax, + qkv_output_scale, param_.valid_word_num, + head_num_, size_per_head_, head_num_x_size_per_head); +} + +// Add bias, and then transform from +// 3 * ([valid_word_num, head*size] + CUBLASLT_ORDER_COL32) -> [valid_word_num, head, 3, size] + row-major +// grid((head*size + 31)/32, (valid_word_num + 31)/32, 3) +// block(8, 32) +// size should be a multiple of 4 +template +__global__ +void trt_add_QKV_bias_COL32_int8IO(char4* output, const char4* QKV, + const T* bias_Q, const T* bias_K, const T* bias_V, + const float *q_input_deQFactor_ptr, const float *k_input_deQFactor_ptr, + const float *v_input_deQFactor_ptr, const float qkv_output_scale, + const int valid_word_num, const int head_num, const int size_per_head, + const int head_num_x_size_per_head) +{ + const int qkv_id = blockIdx.z; + const int seq_id = (blockIdx.y << 5) + threadIdx.y; + const int threadIdx4 = threadIdx.x << 2; + const int hidden_id = (blockIdx.x << 5) + threadIdx4; + const int size_id = hidden_id % size_per_head; + const int head_id = hidden_id / size_per_head; + + const bool qual = (seq_id < valid_word_num) && (hidden_id < head_num_x_size_per_head); + if (qual) { - S = 96; + const float *input_deQFactor_ptr = (qkv_id == 0) ? q_input_deQFactor_ptr : ((qkv_id == 1) ? k_input_deQFactor_ptr : v_input_deQFactor_ptr); + const float input_deQFactor = __ldg(input_deQFactor_ptr); + + const T* bias_ptr = (qkv_id == 0) ? bias_Q : ((qkv_id == 1) ? bias_K : bias_V); + + const int input_id = (qkv_id * valid_word_num * head_num_x_size_per_head + ((hidden_id & 0xffffffe0)*valid_word_num + (seq_id << 5) + (hidden_id&31))) >> 2; + + char4 tmp = __ldg(QKV+input_id); + + tmp.x = float_to_int8_rn((static_cast(tmp.x) * input_deQFactor + static_cast(__ldg(bias_ptr + hidden_id))) * qkv_output_scale); + + tmp.y = float_to_int8_rn((static_cast(tmp.y) * input_deQFactor + static_cast(__ldg(bias_ptr + hidden_id + 1))) * qkv_output_scale); + + tmp.z = float_to_int8_rn((static_cast(tmp.z) * input_deQFactor + static_cast(__ldg(bias_ptr + hidden_id + 2))) * qkv_output_scale); + + tmp.w = float_to_int8_rn((static_cast(tmp.w) * input_deQFactor + static_cast(__ldg(bias_ptr + hidden_id + 3))) * qkv_output_scale); + + //const int output_id = (seq_id * 3 * head_num_x_size_per_head + head_id * 3 * size_per_head + qkv_id * size_per_head + size_id) >> 2; + const int output_id = ((seq_id * head_num_x_size_per_head + head_id * size_per_head) * 3 + qkv_id * size_per_head + size_id) >> 2; + + output[output_id] = tmp; } - else if (maxS <= 128) +} + +template +void OpenMultiHeadAttention::trt_add_QKV_bias_COL32_int8IO_kernelLauncher( + int8_t* output, + const int8_t* Q, + const DataType_* bias_Q, + const DataType_* bias_K, + const DataType_* bias_V, + const float *q_input_deQFactor_ptr, + const float *k_input_deQFactor_ptr, + const float *v_input_deQFactor_ptr, + const float qkv_output_scale) +{ + int head_num_x_size_per_head = head_num_*size_per_head_; + dim3 grid((head_num_x_size_per_head + 31)/32, (param_.valid_word_num + 31)/32, 3); + dim3 block(8, 32); + + assert(size_per_head_ % 4 == 0); + + trt_add_QKV_bias_COL32_int8IO<<>>((char4*)output, (const char4*)Q, + bias_Q, bias_K, bias_V, + q_input_deQFactor_ptr, k_input_deQFactor_ptr, v_input_deQFactor_ptr, + qkv_output_scale, param_.valid_word_num, + head_num_, size_per_head_, head_num_x_size_per_head); +} + +template +void OpenMultiHeadAttention::int8_fused_multiHeadAttr_kernelLauncher(const void* Q, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, const float *v_deQFactor_ptr, + const float mScaleQkv, const int S) +{ + + if (int8_mode_ == 1) { - S = 128; + trt_add_QKV_bias_COL32_int32Iint8O_kernelLauncher((int8_t*)q_buf_, + (const int32_t*)Q, + param_.self_attention.query_weight.bias, + param_.self_attention.key_weight.bias, + param_.self_attention.value_weight.bias, + param_.amaxList+2, query_weight_amax_list, + key_weight_amax_list, value_weight_amax_list, + 1.0f/mScaleQkv); } - else if (maxS <= 256) + else if (int8_mode_ == 2) { - S = 256; + trt_add_QKV_bias_COL32_int8IO_kernelLauncher((int8_t*)q_buf_, + (const int8_t*)Q, + param_.self_attention.query_weight.bias, + param_.self_attention.key_weight.bias, + param_.self_attention.value_weight.bias, + q_deQFactor_ptr, k_deQFactor_ptr, v_deQFactor_ptr, + 1.0f/mScaleQkv + ); } + + const int B = param_.trt_seqlen_size - 1; + dispatcher_int8->setup(S, B); + dispatcher_int8->run((int8_t*)q_buf_, nullptr, param_.trt_seqlen_offset, trt_attn_workspace_, (int8_t*)transpose_dst_int_buf_, param_.stream); + + //transpose_dst_int_buf_ is [batch*seqlen, hidden_dim] row-major + rowMajorToCOL32_kernelLauncher((int8_t*)(param_.attr_out), (const int8_t*)transpose_dst_int_buf_, param_.valid_word_num, head_num_*size_per_head_, param_.stream); +} + + +template +void OpenMultiHeadAttention::fused_multiHeadAttr_kernelLauncher(const int S) +{ + + trt_add_QKV_bias_kernelLauncher(param_.self_attention.query_weight.bias, + param_.self_attention.key_weight.bias, + param_.self_attention.value_weight.bias); + + + const int B = param_.trt_seqlen_size - 1; dispatcher_fp16->setup(S, B); dispatcher_fp16->run(q_buf_, nullptr, param_.trt_seqlen_offset, trt_attn_workspace_, param_.attr_out, param_.stream); } @@ -1394,6 +2245,34 @@ void add_QKV_bias_rebuild_padding(T* Q, const T* bias_Q, T* K, const T* bias_K, v_buf_[tgt_id] = V[src_id] + bias_V[tid]; } +template +void add_QKV_bias_rebuild_padding_kernelLauncher(T* Q, const T* bias_Q, T* K, const T* bias_K, T* V, const T* bias_V, T* q_buf, T* k_buf, T* v_buf, + const int batch_size, const int seq_len, const int head_num, const int size_per_head, const int valid_word_num, + const int* mask_offset, cudaStream_t stream) +{ + const int k = head_num*size_per_head; + + if(std::is_same::value) + { + add_QKV_bias_rebuild_padding<<>>(Q, bias_Q, K, bias_K, + V, bias_V, q_buf, k_buf, v_buf, + batch_size, seq_len, head_num, size_per_head, mask_offset); + } + else + { + add_QKV_bias_rebuild_padding<<>>((half2*)Q, (const half2*)bias_Q, + (half2*)K, (const half2*)bias_K, (half2*)V, (const half2*)bias_V, + (half2*)q_buf, (half2*)k_buf, (half2*)v_buf, + batch_size, seq_len, head_num, size_per_head / 2, mask_offset); + } +} + +template +void add_QKV_bias_rebuild_padding_kernelLauncher(float* Q, const float* bias_Q, float* K, const float* bias_K, float* V, const float* bias_V, float* q_buf, float* k_buf, float* v_buf, const int batch_size, const int seq_len, const int head_num, const int size_per_head, const int valid_word_num, const int* mask_offset, cudaStream_t stream); + +template +void add_QKV_bias_rebuild_padding_kernelLauncher(half* Q, const half* bias_Q, half* K, const half* bias_K, half* V, const half* bias_V, half* q_buf, half* k_buf, half* v_buf, const int batch_size, const int seq_len, const int head_num, const int size_per_head, const int valid_word_num, const int* mask_offset, cudaStream_t stream); + template __global__ void softmax_kernel(T* qk_buf_, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, @@ -1619,13 +2498,13 @@ void softmax_kernel_v3_LE32(T* qk_buf_, const T* attr_mask, const int batch_size } } -//int_buf are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 +//input are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 //grid = (seq_len, batch_size, head_num) //block.x = max(32, (seq_len/4 + 31)/32*32) //for int32_t I; int8 O; template __global__ -void softmax_COL32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_mask, const int batch_size, +void softmax_COL32(int8_t* output, const int32_t* input, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, const float scalar1a, const float *scalar1b, const float *scalar1c, const float *amax_ptr, const int head_num_x_seq_len, const int seq_len_x_seq_len) { @@ -1634,7 +2513,7 @@ void softmax_COL32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_mask, int mask_id; int threadIdx4 = threadIdx.x << 2; - char4* buf4Ptr = (char4 *)qk_buf_; + char4* buf4Ptr = (char4 *)output; bool qual = threadIdx4 < seq_len; for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ @@ -1654,10 +2533,10 @@ void softmax_COL32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_mask, float4 floatTmp4 = {0.0f, 0.0f, 0.0f, 0.0f}; if (qual){ - floatTmp4.x = static_cast(__ldg(int_buf + inIdx)) * scalar1; - floatTmp4.y = static_cast(__ldg(int_buf+inIdx+1)) * scalar1; - floatTmp4.z = static_cast(__ldg(int_buf+inIdx+2)) * scalar1; - floatTmp4.w = static_cast(__ldg(int_buf+inIdx+3)) * scalar1; + floatTmp4.x = static_cast(__ldg(input + inIdx)) * scalar1; + floatTmp4.y = static_cast(__ldg(input+inIdx+1)) * scalar1; + floatTmp4.z = static_cast(__ldg(input+inIdx+2)) * scalar1; + floatTmp4.w = static_cast(__ldg(input+inIdx+3)) * scalar1; } float mask_val, max_val; @@ -1728,42 +2607,45 @@ void softmax_COL32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_mask, } } -//int_buf are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 +//input are a series of sub-matrixes of m = seq_len, n = seq_len_padded, CUBLASLT_ORDER_COL32 +//seq_len_padded = (seq_len+31)/32*32 //grid = (seq_len, batch_size, head_num) -//block.x = max(32, (seq_len/4 + 31)/32*32) +//block.x = max(32, (seq_len_padded/4 + 31)/32*32) //for int8_t IO; template __global__ -void softmax_COL32(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_mask, const int batch_size, - const int head_num, const int seq_len, const float scalar1a, const float *scalar1b, - const float *amax_ptr, const int head_num_x_seq_len, const int seq_len_x_seq_len) +void softmax_COL32_varlen(int8_t* output, const int8_t* input, const T* attr_mask, const int batch_size, + const int head_num, const int seq_len, const int seq_len_padded, + const float scalar1a, const float *scalar1b, const float *amax_ptr, + const int seq_len_x_seq_len, const int seq_len_x_seq_len_padded) { const float amax = __ldg(amax_ptr); const float scalar1 = scalar1a * __ldg(scalar1b); int mask_id; int threadIdx4 = threadIdx.x << 2; - char4* buf4Ptr = (char4 *)qk_buf_; - const char4* inBuf4Ptr = (const char4*)int_buf; + char4* buf4Ptr = (char4 *)output; + const char4* inBuf4Ptr = (const char4*)input; - bool qual = threadIdx4 < seq_len; + const bool qual = threadIdx4 < seq_len; + const bool qual_padded = threadIdx4 < seq_len_padded; for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ char4 tmp4 = {0, 0, 0, 0}; - int inIdx = ((blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len) + + int inIdx = ((blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len_padded) + (threadIdx4 & 0xffffffe0) * seq_len + (seq_id << 5) + (threadIdx4 & 31)) >> 2; - //set softmax of padding word to 0 + //set softmax of padding word in rows to 0 const float mask_in_seq = static_cast(__ldg(attr_mask+(blockIdx.y*seq_len_x_seq_len + seq_id))); if (mask_in_seq < 0.1f){ - if (qual) + if (qual_padded) buf4Ptr[inIdx] = tmp4; continue; } + //set softmax of padding word in cols to 0 float4 floatTmp4 = {0.0f, 0.0f, 0.0f, 0.0f}; - if (qual){ tmp4 = __ldg(inBuf4Ptr + inIdx); floatTmp4.x = static_cast(tmp4.x) * scalar1; @@ -1828,26 +2710,101 @@ void softmax_COL32(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_mask, c } __syncthreads(); - if (qual){ + if (qual_padded){ - tmp4.x = float_to_int8_rn(floatTmp4.x*s_sum); - tmp4.y = float_to_int8_rn(floatTmp4.y*s_sum); - tmp4.z = float_to_int8_rn(floatTmp4.z*s_sum); - tmp4.w = float_to_int8_rn(floatTmp4.w*s_sum); + tmp4.x = qual ? float_to_int8_rn(floatTmp4.x*s_sum) : static_cast(0); + tmp4.y = qual ? float_to_int8_rn(floatTmp4.y*s_sum) : static_cast(0); + tmp4.z = qual ? float_to_int8_rn(floatTmp4.z*s_sum) : static_cast(0); + tmp4.w = qual ? float_to_int8_rn(floatTmp4.w*s_sum) : static_cast(0); buf4Ptr[inIdx] = tmp4; } } } -//int_buf are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 +//input are a series of sub-matrixes of m = seq_len, n = seq_len_padded, CUBLASLT_ORDER_COL32 +//seq_len_padded = (seq_len+31)/32*32 +//grid = (seq_len, batch_size, head_num) +//block.x = max(32, (seq_len_padded + 31)/32*32) +//for int8_t IO, I/O with int8_t element; +template +__global__ +void softmax_COL32_perElement_varlen(int8_t* output, const int8_t* input, const T* attr_mask, const int batch_size, + const int head_num, const int seq_len, const int seq_len_padded, + const float scalar1a, const float *scalar1b, const float *amax_ptr, + const int seq_len_x_seq_len, const int seq_len_x_seq_len_padded) +{ + const float amax = __ldg(amax_ptr); + const float scalar1 = scalar1a * __ldg(scalar1b); + int mask_id; + const int tidx = threadIdx.x; + + const bool qual = tidx < seq_len; + const bool qual_padded = tidx < seq_len_padded; + for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ + + int8_t tmp = 0; + int inIdx = ((blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len_padded) + + (tidx & 0xffffffe0) * seq_len + + (seq_id << 5) + (tidx & 31)); + + //set softmax of padding word in rows to 0 + const float mask_in_seq = static_cast(__ldg(attr_mask+(blockIdx.y*seq_len_x_seq_len + seq_id))); + if (mask_in_seq < 0.1f){ + if (qual_padded) + output[inIdx] = tmp; + continue; + } + + //set softmax of padding word in cols to 0 + float floatTmp = qual ? (static_cast(__ldg(input + inIdx)) * scalar1) : 0.0f; + + float mask_val, max_val; + max_val = -1e20f; + + __shared__ float s_max, s_sum; + + if (qual){ + mask_id = tidx + blockIdx.y * seq_len_x_seq_len + seq_id * seq_len; + mask_val = (1.0f - static_cast(__ldg(attr_mask+mask_id))) * -10000.0f; + floatTmp = floatTmp + mask_val; + } + + max_val = blockDim.x <= 32 ? warpReduceMax(floatTmp) : blockReduceMax(floatTmp); + + if (threadIdx.x == 0){ + s_max = max_val; + } + __syncthreads(); + + float sum_val = 0.0f; + + floatTmp = qual ? __expf(floatTmp - s_max) : floatTmp; + + sum_val = blockDim.x <= 32 ? warpReduceSum(floatTmp) : blockReduceSum(floatTmp); + + if (threadIdx.x == 0){ + s_sum = __fdividef(127.0f, (sum_val + 1e-6f)); + s_sum = __fdividef(s_sum, amax); + } + __syncthreads(); + + if (qual_padded){ + tmp = qual ? float_to_int8_rn(floatTmp*s_sum) : static_cast(0); + output[inIdx] = tmp; + } + } +} + + +//input are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 //grid = (seq_len, batch_size, head_num) //block.x = (seq_len + 31)/32 //for int32_t I; int8 O; //for seq_len <= 32 template __global__ -void softmax_COL32_LE32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_mask, const int batch_size, +void softmax_COL32_LE32(int8_t* output, const int32_t* input, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, const float scalar1a, const float *scalar1b, const float *scalar1c, const float *amax_ptr, const int head_num_x_seq_len, const int seq_len_x_seq_len) { @@ -1865,11 +2822,11 @@ void softmax_COL32_LE32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_m float mask_in_seq = static_cast(__ldg(attr_mask+(blockIdx.y*seq_len_x_seq_len + seq_id))); if (mask_in_seq < 0.1f){ if (qual) - qk_buf_[inIdx] = 0; + output[inIdx] = 0; continue; } - float floatTmp = qual ? static_cast(__ldg(int_buf + inIdx)) * scalar1 : 0.0f; + float floatTmp = qual ? static_cast(__ldg(input + inIdx)) * scalar1 : 0.0f; float mask_val, max_val; @@ -1899,53 +2856,55 @@ void softmax_COL32_LE32(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_m if (qual){ - qk_buf_[inIdx] = float_to_int8_rn(floatTmp*s_sum); + output[inIdx] = float_to_int8_rn(floatTmp*s_sum); } } } -//int_buf are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 +//input are a series of sub-matrixes of m = seq_len, n = seq_len_padded, CUBLASLT_ORDER_COL32 +//seq_len_padded = (seq_len+31)/32*32 +//attr_mask is [batch_size, seq_len, seq_len] //grid = (seq_len, batch_size, head_num) -//block.x = (seq_len + 31)/32 +//block.x = seq_len_padded //for int8_t IO; -//for seq_len <= 32 +//for seq_len_padded == 32 template __global__ -void softmax_COL32_LE32(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_mask, const int batch_size, - const int head_num, const int seq_len, const float scalar1a, const float *scalar1b, - const float *amax_ptr, const int head_num_x_seq_len, const int seq_len_x_seq_len) +void softmax_COL32_LE32_varlen(int8_t* output, const int8_t* input, const T* attr_mask, const int batch_size, + const int head_num, const int seq_len, const int seq_len_padded, + const float scalar1a, const float *scalar1b, const float *amax_ptr, + const int seq_len_x_seq_len, const int seq_len_x_seq_len_padded) { const float amax = __ldg(amax_ptr); const float scalar1 = scalar1a * __ldg(scalar1b); int mask_id; int threadIdxx = threadIdx.x; - bool qual = threadIdxx < seq_len; + const bool qual = threadIdxx < seq_len; + const bool qual_padded = threadIdxx < seq_len_padded; for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ - int inIdx = (blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len) + + int inIdx = (blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len_padded) + (threadIdxx & 0xffffffe0) * seq_len + (seq_id << 5) + (threadIdxx & 31); - //set softmax of padding word to 0 + //set softmax of padding word in rows to 0 float mask_in_seq = static_cast(__ldg(attr_mask+(blockIdx.y*seq_len_x_seq_len + seq_id))); if (mask_in_seq < 0.1f){ - if (qual) - qk_buf_[inIdx] = 0; + if (qual_padded) + output[inIdx] = 0; continue; } - - float floatTmp = qual ? static_cast(__ldg(int_buf + inIdx)) * scalar1 : 0.0f; - float mask_val, max_val; - __shared__ float s_max, s_sum; + //set softmax of padding word in cols to 0 + float floatTmp = qual ? static_cast(__ldg(input + inIdx)) * scalar1 : 0.0f; mask_id = qual ? threadIdxx + blockIdx.y * seq_len_x_seq_len + seq_id * seq_len : 0; mask_val = qual ? (1.0f - static_cast(__ldg(attr_mask+mask_id))) * -10000.0f : 0.0f; floatTmp = qual ? floatTmp + mask_val : 0.0f; max_val = qual ? floatTmp : -1e20f; - max_val = blockDim.x <= 32 ? warpReduceMax(max_val) : blockReduceMax(max_val); + max_val = warpReduceMax(max_val); if (threadIdx.x == 0){ s_max = max_val; @@ -1963,20 +2922,20 @@ void softmax_COL32_LE32(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_ma __syncthreads(); - if (qual){ - qk_buf_[inIdx] = float_to_int8_rn(floatTmp*s_sum); + if (qual_padded){ + output[inIdx] = qual ? float_to_int8_rn(floatTmp*s_sum) : static_cast(0); } } } -//int_buf are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 +//input are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 //grid = (seq_len, batch_size, head_num) //block.x = max(32, (seq_len/2 + 31)/32*32) //for int32_t I; int8 O; //for seq_len in (32, 64] template __global__ -void softmax_COL32_LE64(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_mask, const int batch_size, +void softmax_COL32_LE64(int8_t* output, const int32_t* input, const T* attr_mask, const int batch_size, const int head_num, const int seq_len, const float scalar1a, const float *scalar1b, const float *scalar1c, const float *amax_ptr, const int head_num_x_seq_len, const int seq_len_x_seq_len) { @@ -1985,7 +2944,7 @@ void softmax_COL32_LE64(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_m int mask_id; int threadIdx2 = threadIdx.x << 1; - char2* buf2Ptr = (char2 *)qk_buf_; + char2* buf2Ptr = (char2 *)output; bool qual = threadIdx2 < seq_len; for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ @@ -2004,8 +2963,8 @@ void softmax_COL32_LE64(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_m float2 floatTmp2 = {0.0f, 0.0f}; if (qual){ - floatTmp2.x = static_cast(__ldg(int_buf + inIdx)) * scalar1; - floatTmp2.y = static_cast(__ldg(int_buf + inIdx + 1)) * scalar1; + floatTmp2.x = static_cast(__ldg(input + inIdx)) * scalar1; + floatTmp2.y = static_cast(__ldg(input + inIdx + 1)) * scalar1; } float mask_val, max_val; @@ -2058,40 +3017,44 @@ void softmax_COL32_LE64(int8_t* qk_buf_, const int32_t* int_buf, const T* attr_m } } -//int_buf are a series of sub-matrixes of m = seq_len, n = seq_len, CUBLASLT_ORDER_COL32 +//input are a series of sub-matrixes of m = seq_len, n = seq_len_padded, CUBLASLT_ORDER_COL32 +//seq_len_padded = (seq_len+31)/32*32 //grid = (seq_len, batch_size, head_num) -//block.x = max(32, (seq_len/2 + 31)/32*32) +//block.x = 32 //for int8_t IO //for seq_len in (32, 64] template __global__ -void softmax_COL32_LE64(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_mask, const int batch_size, - const int head_num, const int seq_len, const float scalar1a, const float *scalar1b, - const float *amax_ptr, const int head_num_x_seq_len, const int seq_len_x_seq_len) +void softmax_COL32_LE64_varlen(int8_t* output, const int8_t* input, const T* attr_mask, const int batch_size, + const int head_num, const int seq_len, const int seq_len_padded, + const float scalar1a, const float *scalar1b, const float *amax_ptr, + const int seq_len_x_seq_len, const int seq_len_x_seq_len_padded) { const float amax = __ldg(amax_ptr); const float scalar1 = scalar1a * __ldg(scalar1b); int mask_id; int threadIdx2 = threadIdx.x << 1; - char2* buf2Ptr = (char2 *)qk_buf_; - const char2* inBuf2Ptr = (const char2 *)int_buf; + char2* buf2Ptr = (char2 *)output; + const char2* inBuf2Ptr = (const char2 *)input; - bool qual = threadIdx2 < seq_len; + const bool qual = threadIdx2 < seq_len; + const bool qual_padded = threadIdx2 < seq_len_padded; for (int seq_id = blockIdx.x ; seq_id < seq_len ; seq_id += gridDim.x){ char2 tmp2 = {0, 0}; - int inIdx = ((blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len) + + int inIdx = ((blockIdx.y * head_num + blockIdx.z) * (seq_len_x_seq_len_padded) + (threadIdx2 & 0xffffffe0) * seq_len + (seq_id << 5) + (threadIdx2 & 31)) >> 1; - //set softmax of padding word to 0 + //set softmax of padding word in rows to 0 float mask_in_seq = static_cast(__ldg(attr_mask+(blockIdx.y*seq_len_x_seq_len + seq_id))); if (mask_in_seq < 0.1f){ - if (qual) + if (qual_padded) buf2Ptr[inIdx] = tmp2; continue; } + //set softmax of padding word in cols to 0 float2 floatTmp2 = {0.0f, 0.0f}; if (qual){ tmp2 = __ldg(inBuf2Ptr + inIdx); @@ -2117,7 +3080,7 @@ void softmax_COL32_LE64(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_ma max_val = fmaxf(floatTmp2.x, floatTmp2.y); } - max_val = blockDim.x <= 32 ? warpReduceMax(max_val) : blockReduceMax(max_val); + max_val = warpReduceMax(max_val); if (threadIdx.x == 0){ s_max = max_val; @@ -2133,7 +3096,7 @@ void softmax_COL32_LE64(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_ma sum_val += floatTmp2.y; } - sum_val = blockDim.x <= 32 ? warpReduceSum(sum_val) : blockReduceSum(sum_val); + sum_val = warpReduceSum(sum_val); if (threadIdx.x == 0){ s_sum = __fdividef(127.0f, (sum_val + 1e-6f)); @@ -2141,15 +3104,121 @@ void softmax_COL32_LE64(int8_t* qk_buf_, const int8_t* int_buf, const T* attr_ma } __syncthreads(); - if (qual){ - tmp2.x = float_to_int8_rn(floatTmp2.x*s_sum); - tmp2.y = float_to_int8_rn(floatTmp2.y*s_sum); + if (qual_padded){ + tmp2.x = qual ? float_to_int8_rn(floatTmp2.x*s_sum) : static_cast(0); + tmp2.y = qual ? float_to_int8_rn(floatTmp2.y*s_sum) : static_cast(0); buf2Ptr[inIdx] = tmp2; } } } +template +void softmax_COL32_kernelLauncher(int8_t* output, const int32_t* input, const T* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, const float *scalar1c, + const float *amax_ptr, cudaStream_t stream) +{ + dim3 grid, block; + grid.x = seq_len; + grid.y = batch_size; + grid.z = head_num; + + if (seq_len <= 32){ + if (batch_size * head_num > 960) + grid.x = ceil(float(seq_len)/32.0f); + block.x = (seq_len + 31)/32*32; + softmax_COL32_LE32<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, scalar1a, scalar1b, scalar1c, + amax_ptr, seq_len*head_num, seq_len*seq_len); + } + else if (seq_len <= 64){ + assert(seq_len % 2 == 0); + block.x = (seq_len/2 + 31)/32*32; + if (batch_size * head_num > 960) + grid.x = ceil(float(seq_len)/32.0f); + softmax_COL32_LE64<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, scalar1a, scalar1b, scalar1c, + amax_ptr, seq_len*head_num, seq_len*seq_len); + } + else + { + assert(seq_len % 4 == 0); + block.x = (seq_len/4 + 31)/32*32; + softmax_COL32<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, scalar1a, scalar1b, scalar1c, + amax_ptr, seq_len*head_num, seq_len*seq_len); + } +} + +template +void softmax_COL32_kernelLauncher(int8_t* output, const int32_t* input, const float* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, const float *scalar1c, + const float *amax_ptr, cudaStream_t stream); + +template +void softmax_COL32_kernelLauncher(int8_t* output, const int32_t* input, const half* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, const float *scalar1c, + const float *amax_ptr, cudaStream_t stream); + +template +void softmax_COL32_kernelLauncher(int8_t* output, const int8_t* input, const T* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, const float *amax_ptr, + cudaStream_t stream) +{ + dim3 grid, block; + grid.x = seq_len; + grid.y = batch_size; + grid.z = head_num; + const int seq_len_padded = (seq_len + 31)/32*32; + + if (seq_len <= 32){ + if (batch_size * head_num > 960) + grid.x = ceil(float(seq_len)/32.0f); + block.x = seq_len_padded; + softmax_COL32_LE32_varlen<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, seq_len_padded, scalar1a, scalar1b, amax_ptr, + seq_len*seq_len, seq_len*seq_len_padded); + } + else if (seq_len <= 64 && (seq_len % 2 == 0)){ + block.x = 32; + if (batch_size * head_num > 960) + grid.x = ceil(float(seq_len)/32.0f); + softmax_COL32_LE64_varlen<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, seq_len_padded, scalar1a, scalar1b, amax_ptr, + seq_len*seq_len, seq_len*seq_len_padded); + } + else if (seq_len > 64 && (seq_len % 4 == 0)) + { + block.x = (seq_len_padded/4 + 31)/32*32; + softmax_COL32_varlen<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, seq_len_padded, scalar1a, scalar1b, amax_ptr, + seq_len*seq_len, seq_len*seq_len_padded); + } + else + { + block.x = (seq_len_padded + 31)/32*32; + softmax_COL32_perElement_varlen<<>>(output, input, attr_mask, batch_size, head_num, + seq_len, seq_len_padded, scalar1a, scalar1b, amax_ptr, + seq_len*seq_len, seq_len*seq_len_padded); + } +} + +template +void softmax_COL32_kernelLauncher(int8_t* output, const int8_t* input, const float* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, + const float *amax_ptr, cudaStream_t stream); + +template +void softmax_COL32_kernelLauncher(int8_t* output, const int8_t* input, const half* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, + const float *amax_ptr, cudaStream_t stream); + template __global__ @@ -2181,6 +3250,32 @@ void transpose(half* src, half* dst, dst_ptr[target_id] = src_ptr[tid]; } +template +void transpose_kernelLauncher(T* src, T* dst, const int batch_size, const int seq_len, const int head_num, const int size_per_head, cudaStream_t stream) +{ + dim3 grid, block; + if (std::is_same::value) + { + const int seq_per_block = 1; + grid.x = batch_size * head_num * seq_len / seq_per_block; + block.x = seq_per_block * size_per_head; + transpose<<>>(src, dst, batch_size, seq_len, head_num, size_per_head); + } + else + { + const int seq_per_block = 4; + grid.x = batch_size * head_num * seq_len / seq_per_block; + block.x = seq_per_block * size_per_head / 2; + assert(grid.x * seq_per_block == batch_size * head_num * seq_len); + transpose<<>>(src, dst, batch_size, seq_len, head_num, size_per_head / 2); + } +} + +template +void transpose_kernelLauncher(float* src, float* dst, const int batch_size, const int seq_len, const int head_num, const int size_per_head, cudaStream_t stream); + +template +void transpose_kernelLauncher(half* src, half* dst, const int batch_size, const int seq_len, const int head_num, const int size_per_head, cudaStream_t stream); template __global__ @@ -2203,6 +3298,38 @@ void transpose_rebuild_padding(T* src, T* dst, const int batch_size, const int s head_id * seq_len * size_per_head + src_seq_id * size_per_head + hidden_id]; } +template +void transpose_rebuild_padding_kernelLauncher(T* src, T* dst, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const int* mask_offset, cudaStream_t stream) +{ + int k = head_num * size_per_head; + if (std::is_same::value) + { + transpose_rebuild_padding<<>>(src, dst, + batch_size, seq_len, head_num, size_per_head, mask_offset); + } + else + { + transpose_rebuild_padding<<>>( + (half2*)src, (half2*)dst, + batch_size, seq_len, head_num, size_per_head / 2, mask_offset); + } +} + +template +void transpose_rebuild_padding_kernelLauncher(float* src, float* dst, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const int* mask_offset, cudaStream_t stream); + +template +void transpose_rebuild_padding_kernelLauncher(half* src, half* dst, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const int* mask_offset, cudaStream_t stream); + template __global__ void rebuild_sequence_length_padding(const T* src, T* tgt, const int* mask_offset, @@ -2219,405 +3346,6 @@ __global__ void rebuild_sequence_length_padding(const T* src, T* tgt, } } -template -void OpenMultiHeadAttention::multiHeadAttr_nofuse_kernelLauncher( - cudaStream_t stream, - cublasHandle_t cublas_handle, - cublasLtHandle_t cublaslt_handle, - DataType_* Q, - const DataType_* bias_Q, - DataType_* K, - const DataType_* bias_K, - DataType_* V, - const DataType_* bias_V, - const DataType_* attr_mask, - DataType_* dst, - const int batch_size, - const int seq_len, - const int head_num, - const int size_per_head, - const int int8_mode_, - const DataType_ scalar) -{ - const int k = head_num * size_per_head; - - dim3 grid; - dim3 block; - - - if (int8_mode_ != 0) - { - //var for int8 - const float*Qbias_amax_ptr, *Kbias_amax_ptr, *Vbias_amax_ptr, *bmm1_amax_ptr, *Softmax_amax_ptr, *bmm2_amax_ptr, *in_amax_ptr, *Q_aftergemm_amax_ptr, *K_aftergemm_amax_ptr, *V_aftergemm_amax_ptr; - Qbias_amax_ptr = param_.amaxList + 8; - Kbias_amax_ptr = param_.amaxList + 16; - Vbias_amax_ptr = param_.amaxList + 24; - Softmax_amax_ptr = param_.amaxList + 32; - bmm2_amax_ptr = param_.amaxList + 36; - Q_aftergemm_amax_ptr = param_.amaxList + 4; - K_aftergemm_amax_ptr = param_.amaxList + 12; - V_aftergemm_amax_ptr = param_.amaxList + 20; - bmm1_amax_ptr = param_.amaxList + 28; - in_amax_ptr = param_.amaxList; - - assert(seq_len % COL32_ == 0 && size_per_head%COL32_ == 0); - - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len){ - if (int8_mode_ == 1) - { - add_QK_bias_transform<<>>((int8_t*)q_buf_, (int8_t*)k_buf_, (const int32_t*) Q, bias_Q, (const int32_t*) K, - bias_K, batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, - seq_len*size_per_head, query_weight_amax_list, in_amax_ptr+2, key_weight_amax_list, - in_amax_ptr+2, Qbias_amax_ptr+3, Kbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - add_V_bias_transform<<>>((int8_t*)v_buf_, (const int32_t *)V, bias_V, batch_size, seq_len, - head_num, size_per_head, seq_len*size_per_head, value_weight_amax_list, - in_amax_ptr+2, Vbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - } - else - { - add_QK_bias_transform<<>>((int8_t*)q_buf_, (int8_t*)k_buf_, (const int8_t*) Q, bias_Q, (const int8_t*) K, - bias_K, batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, - seq_len*size_per_head, Q_aftergemm_amax_ptr+1, K_aftergemm_amax_ptr+1, - Qbias_amax_ptr+3, Kbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - add_V_bias_transform<<>>((int8_t*)v_buf_, (const int8_t *)V, bias_V, batch_size, seq_len, - head_num, size_per_head, seq_len*size_per_head, - V_aftergemm_amax_ptr+1, Vbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - } - } - else{ - cudaMemset(sequence_id_map_, -1, batch_size * seq_len * sizeof(int)); - mappingRemovePaddingData<<>>(sequence_id_map_, param_.sequence_id_offset, param_.valid_word_num); - if (int8_mode_ == 1) - { - add_QK_bias_transform_rebuild_padding<<>>((int8_t*)q_buf_, (int8_t*)k_buf_, (const int32_t*) Q, bias_Q, - (const int32_t*) K, bias_K, param_.sequence_id_offset, param_.valid_word_num, - batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, seq_len*size_per_head, - query_weight_amax_list, in_amax_ptr+2, key_weight_amax_list, in_amax_ptr+2, - Qbias_amax_ptr+3, Kbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - - add_V_bias_transform_rebuild_padding<<>>((int8_t*)v_buf_, (const int32_t *)V, bias_V, sequence_id_map_, - param_.valid_word_num, batch_size, seq_len, head_num, - size_per_head, seq_len*size_per_head, value_weight_amax_list, - in_amax_ptr+2, Vbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - } - else - { - add_QK_bias_transform_rebuild_padding<<>>((int8_t*)q_buf_, (int8_t*)k_buf_, (const int8_t*) Q, bias_Q, - (const int8_t*) K, bias_K, param_.sequence_id_offset, param_.valid_word_num, - batch_size * seq_len, batch_size, seq_len, head_num, size_per_head, seq_len*size_per_head, - Q_aftergemm_amax_ptr+1, K_aftergemm_amax_ptr+1, - Qbias_amax_ptr+3, Kbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - - add_V_bias_transform_rebuild_padding<<>>((int8_t*)v_buf_, (const int8_t *)V, bias_V, sequence_id_map_, - param_.valid_word_num, batch_size, seq_len, head_num, - size_per_head, seq_len*size_per_head, - V_aftergemm_amax_ptr+1, Vbias_amax_ptr+3, use_ORDER_COL32_2R_4R4_); - } - } - - int batchCount = batch_size * head_num; - grid.x = seq_len; - grid.y = batch_size; - grid.z = head_num; - - if (int8_mode_ == 1) - { - cublasLtMM_withAlgo(qk_int_buf_, batchCount, seq_len, seq_len, size_per_head, - size_per_head*seq_len, size_per_head*seq_len, seq_len*seq_len, - (int8_t*)q_buf_, (int8_t*)k_buf_, cublaslt_handle, stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_, true); - - if (seq_len <= 32){ - if (batch_size * head_num > 960) - grid.x = ceil(float(seq_len)/32.0f); - block.x = (seq_len + 31)/32*32; - softmax_COL32_LE32<<>>((int8_t*)qk_buf_, qk_int_buf_, attr_mask, batch_size, head_num, - seq_len, float(scalar), Qbias_amax_ptr + 1, Kbias_amax_ptr + 1, - Softmax_amax_ptr, seq_len*head_num, seq_len*seq_len); - } - else if (seq_len <= 64){ - assert(seq_len % 2 == 0); - block.x = (seq_len/2 + 31)/32*32; - if (batch_size * head_num > 960) - grid.x = ceil(float(seq_len)/32.0f); - softmax_COL32_LE64<<>>((int8_t*)qk_buf_, qk_int_buf_, attr_mask, batch_size, head_num, - seq_len, float(scalar), Qbias_amax_ptr + 1, Kbias_amax_ptr + 1, - Softmax_amax_ptr, seq_len*head_num, seq_len*seq_len); - } - else - { - assert(seq_len % 4 == 0); - block.x = (seq_len/4 + 31)/32*32; - softmax_COL32<<>>((int8_t*)qk_buf_, qk_int_buf_, attr_mask, batch_size, head_num, - seq_len, float(scalar), Qbias_amax_ptr + 1, Kbias_amax_ptr + 1, - Softmax_amax_ptr, seq_len*head_num, seq_len*seq_len); - } - - cublasLtMM_withAlgo(transpose_dst_int_buf_, batchCount, seq_len, size_per_head, seq_len, - seq_len*seq_len, size_per_head*seq_len, size_per_head*seq_len, (int8_t*)qk_buf_, - (int8_t*)v_buf_, cublaslt_handle, stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_, true); - - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) - { - transpose_COL32_kernelLauncher((int8_t*)dst, (const int*)transpose_dst_int_buf_, batch_size, seq_len, head_num, - size_per_head, Vbias_amax_ptr+1, Softmax_amax_ptr+1, bmm2_amax_ptr+3, stream); - } - else - { - transpose_COL32_rebuild_padding_kernelLauncher((int8_t*)dst, (const int*)transpose_dst_int_buf_, sequence_id_map_, - param_.valid_word_num, batch_size, seq_len, head_num, size_per_head, - Vbias_amax_ptr+1, Softmax_amax_ptr+1, bmm2_amax_ptr+3, stream); - } - - } - else - { - cublasLtMM_withAlgo_int8IO((int8_t*)qk_int_buf_, batchCount, seq_len, seq_len, size_per_head, - size_per_head*seq_len, size_per_head*seq_len, seq_len*seq_len, - param_.int8O_gemm_deQ_scale_list[3], - (int8_t*)q_buf_, (int8_t*)k_buf_, cublaslt_handle, stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_, true); - - if (seq_len <= 32){ - if (batch_size * head_num > 960) - grid.x = ceil(float(seq_len)/32.0f); - block.x = (seq_len + 31)/32*32; - softmax_COL32_LE32<<>>((int8_t*)qk_buf_, (int8_t*)qk_int_buf_, attr_mask, batch_size, head_num, - seq_len, float(scalar), bmm1_amax_ptr + 1, - Softmax_amax_ptr, seq_len*head_num, seq_len*seq_len); - } - else if (seq_len <= 64){ - assert(seq_len % 2 == 0); - block.x = (seq_len/2 + 31)/32*32; - if (batch_size * head_num > 960) - grid.x = ceil(float(seq_len)/32.0f); - softmax_COL32_LE64<<>>((int8_t*)qk_buf_, (int8_t*)qk_int_buf_, attr_mask, batch_size, head_num, - seq_len, float(scalar), bmm1_amax_ptr + 1, - Softmax_amax_ptr, seq_len*head_num, seq_len*seq_len); - } - else - { - assert(seq_len % 4 == 0); - block.x = (seq_len/4 + 31)/32*32; - softmax_COL32<<>>((int8_t*)qk_buf_, (int8_t*)qk_int_buf_, attr_mask, batch_size, head_num, - seq_len, float(scalar), bmm1_amax_ptr + 1, - Softmax_amax_ptr, seq_len*head_num, seq_len*seq_len); - } - - cublasLtMM_withAlgo_int8IO((int8_t*)transpose_dst_int_buf_, batchCount, seq_len, size_per_head, seq_len, - seq_len*seq_len, size_per_head*seq_len, size_per_head*seq_len, param_.int8O_gemm_deQ_scale_list[4], (int8_t*)qk_buf_, - (int8_t*)v_buf_, cublaslt_handle, stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_, true); - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) - { - transpose_COL32_kernelLauncher((int8_t*)dst, (const int8_t*)transpose_dst_int_buf_, batch_size, seq_len, head_num, - size_per_head, bmm2_amax_ptr+1, bmm2_amax_ptr+3, stream); - } - else - { - transpose_COL32_rebuild_padding_kernelLauncher((int8_t*)dst, (const int8_t*)transpose_dst_int_buf_, sequence_id_map_, - param_.valid_word_num, batch_size, seq_len, head_num, size_per_head, - bmm2_amax_ptr+1, - bmm2_amax_ptr+3, stream); - } - } - } - //FP32/FP16 - else{ - if(OpType_ == OperationType::FP32) - { - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) - { - const int m = batch_size * seq_len; - const int word_per_block = 1; - assert(k <= 1024); - assert(m / word_per_block * 3 <= 65536); - - dim3 grid(m / word_per_block * 3); - dim3 block(k); - add_QKV_bias<<>>(Q, bias_Q, K, bias_K, V, bias_V, q_buf_, k_buf_, v_buf_, - batch_size, seq_len, head_num, size_per_head, word_per_block); - } - else - { - add_QKV_bias_rebuild_padding<<>>(Q, bias_Q, K, bias_K, - V, bias_V, q_buf_, k_buf_, v_buf_, - batch_size, seq_len, head_num, size_per_head, param_.sequence_id_offset); - } - } - else - { - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) - { - const int word_per_block = 1; - grid.x = batch_size * seq_len / word_per_block; - block.x = head_num * size_per_head * word_per_block / 2; - - assert(block.x <= 1024); - - add_QKV_bias<<>>(Q, bias_Q, K, bias_K, V, bias_V, q_buf_, k_buf_, - v_buf_, batch_size, seq_len, head_num, size_per_head / 2, word_per_block); - } - else - { - add_QKV_bias_rebuild_padding<<>>((half2*)Q, (const half2*)bias_Q, - (half2*)K, (const half2*)bias_K, (half2*)V, (const half2*)bias_V, - (half2*)q_buf_, (half2*)k_buf_, (half2*)v_buf_, - batch_size, seq_len, head_num, size_per_head / 2, param_.sequence_id_offset); - } - } - - DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; - - check_cuda_error(cublasGemmStridedBatchedEx(cublas_handle, - CUBLAS_OP_T, CUBLAS_OP_N, - seq_len, seq_len, size_per_head, - &alpha, - k_buf_, AType_, size_per_head, seq_len * size_per_head, - q_buf_, BType_, size_per_head, seq_len * size_per_head, - &beta, - qk_buf_, CType_, seq_len, seq_len * seq_len, - batch_size * head_num, - computeType_, - static_cast(cublasAlgo_[1]))); - - //deal with odd seq_len - if (seq_len % 2 != 0){ - if(seq_len <= 32) - block.x = 32; - else if(seq_len > 32 && seq_len <= 64) - block.x = 64; - else if(seq_len > 64 && seq_len <= 128) - block.x = 128; - else if(seq_len > 128 && seq_len <= 256) - block.x = 256; - else if(seq_len > 256 && seq_len <= 512) - block.x = 512; - else - block.x = 1024; - - if(batch_size * head_num <= 120) - { - grid.x = batch_size * head_num * seq_len; - softmax_kernel_v2<<>>(qk_buf_, attr_mask, batch_size, head_num, seq_len, scalar); - } - else - { - grid.x = batch_size * head_num; - softmax_kernel<<>>(qk_buf_, attr_mask, batch_size, head_num, seq_len, scalar); - } - } - //deal with even seq_len - else{ - grid.x = seq_len; - if (batch_size * head_num > 360) - grid.x = ceil(float(seq_len)/32.0f); - grid.y = batch_size; - grid.z = head_num; - if (seq_len <= 32){ - block.x = 32; - softmax_kernel_v3_LE32<<>>(qk_buf_, attr_mask, batch_size, head_num, seq_len, scalar); - } - else{ - if (OpType_ == OperationType::FP16){ - block.x = (seq_len/2 + 31)/32*32; - softmax_kernel_v3<<>>(qk_buf_, attr_mask, batch_size, head_num, seq_len, scalar); - } - else{ - block.x = (seq_len + 31)/32*32; - softmax_kernel_v3<<>>(qk_buf_, attr_mask, batch_size, head_num, seq_len, scalar); - } - } - grid.x = grid.y = grid.z = 1; - } - - check_cuda_error(cublasGemmStridedBatchedEx(cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - size_per_head, seq_len, seq_len, - &alpha, - v_buf_, AType_, size_per_head, seq_len * size_per_head, - qk_buf_, BType_, seq_len, seq_len * seq_len, - &beta, - transpose_dst_, CType_, size_per_head, seq_len * size_per_head, - batch_size * head_num, - computeType_, - static_cast(cublasAlgo_[2]))); - - /* for half2 only */ - if(OpType_ == OperationType::FP16) - { - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) - { - const int seq_per_block = 4; - grid.x = batch_size * head_num * seq_len / seq_per_block; - block.x = seq_per_block * size_per_head / 2; - - assert(grid.x * seq_per_block == batch_size * head_num * seq_len); - - transpose<<>>(transpose_dst_, dst, - batch_size, seq_len, head_num, size_per_head / 2); - } - else - { - transpose_rebuild_padding<<>>( - (half2*)transpose_dst_, (half2*)dst, - batch_size, seq_len, head_num, size_per_head / 2, param_.sequence_id_offset); - } - } - else - { - if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) - { - const int seq_per_block = 1; - grid.x = batch_size * head_num * seq_len / seq_per_block; - block.x = seq_per_block * size_per_head; - transpose<<>>(transpose_dst_, dst, - batch_size, seq_len, head_num, size_per_head); - } - else - { - transpose_rebuild_padding<<>>(transpose_dst_, dst, - batch_size, seq_len, head_num, size_per_head, param_.sequence_id_offset); - } - } - } -} - -template void OpenMultiHeadAttention::multiHeadAttr_nofuse_kernelLauncher( - cudaStream_t stream, - cublasHandle_t handle, - cublasLtHandle_t cublaslt_handle, - float* Q, - const float* bias_Q, - float* K, - const float* bias_K, - float* V, - const float* bias_V, - const float* attr_mask, - float* dst, - const int batch_size, - const int seq_len, - const int head_num, - const int size_per_head, - const int int8_mode_, - const float scalar); - -template void OpenMultiHeadAttention::multiHeadAttr_nofuse_kernelLauncher( - cudaStream_t stream, - cublasHandle_t handle, - cublasLtHandle_t cublaslt_handle, - half* Q, - const half* bias_Q, - half* K, - const half* bias_K, - half* V, - const half* bias_V, - const half* attr_mask, - half* dst, - const int batch_size, - const int seq_len, - const int head_num, - const int size_per_head, - const int int8_mode_, - const half scalar); - template void OpenMultiHeadAttention::trt_add_QKV_bias_kernelLauncher( const float* bias_Q, const float* bias_K, @@ -2628,8 +3356,63 @@ template void OpenMultiHeadAttention::trt_add_QKV_bias_kern const half* bias_K, const half* bias_V); -template void OpenMultiHeadAttention::fused_multiHeadAttr_kernelLauncher(); -template void OpenMultiHeadAttention::fused_multiHeadAttr_kernelLauncher(); +template void OpenMultiHeadAttention::trt_add_QKV_bias_COL32_int8IO_kernelLauncher( + int8_t* output, + const int8_t* Q, + const float* bias_Q, + const float* bias_K, + const float* bias_V, + const float *q_input_deQFactor_ptr, + const float *k_input_deQFactor_ptr, + const float *v_input_deQFactor_ptr, + const float qkv_output_scale); + +template void OpenMultiHeadAttention::trt_add_QKV_bias_COL32_int8IO_kernelLauncher( + int8_t* output, + const int8_t* Q, + const half* bias_Q, + const half* bias_K, + const half* bias_V, + const float *q_input_deQFactor_ptr, + const float *k_input_deQFactor_ptr, + const float *v_input_deQFactor_ptr, + const float qkv_output_scale); + +template void OpenMultiHeadAttention::trt_add_QKV_bias_COL32_int32Iint8O_kernelLauncher( + int8_t* output, + const int32_t* Q, + const float* bias_Q, + const float* bias_K, + const float* bias_V, + const float *input_deQFactor_div127_ptr, + const float * q_weight_amax, + const float * k_weight_amax, + const float * v_weight_amax, + const float qkv_output_scale); + +template void OpenMultiHeadAttention::trt_add_QKV_bias_COL32_int32Iint8O_kernelLauncher( + int8_t* output, + const int32_t* Q, + const half* bias_Q, + const half* bias_K, + const half* bias_V, + const float *input_deQFactor_div127_ptr, + const float * q_weight_amax, + const float * k_weight_amax, + const float * v_weight_amax, + const float qkv_output_scale); + +template void OpenMultiHeadAttention::fused_multiHeadAttr_kernelLauncher(const int S); +template void OpenMultiHeadAttention::fused_multiHeadAttr_kernelLauncher(const int S); + +template void OpenMultiHeadAttention::int8_fused_multiHeadAttr_kernelLauncher( + const void* Q, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, const float *v_deQFactor_ptr, + const float mScaleQkv, const int S); +template void OpenMultiHeadAttention::int8_fused_multiHeadAttr_kernelLauncher( + const void* Q, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, const float *v_deQFactor_ptr, + const float mScaleQkv, const int S); __global__ void trt_add_QKV_bias_2(const half2* Q, const half2* bias_Q, @@ -2661,7 +3444,7 @@ void trt_add_QKV_bias_2(const half2* Q, const half2* bias_Q, size_id] = V[ seq_id * blockDim.x + threadIdx.x] + bias_V[threadIdx.x]; } -void add_QKV_bias_transpose_kernelLauncher( +void trt_add_QKV_bias_transpose_debug_kernelLauncher( const half* query_buf, const half* bias_Q, const half* key_buf, const half* bias_K, const half* value_buf, const half* bias_V, diff --git a/fastertransformer/cuda/open_attention.h b/fastertransformer/cuda/open_attention.h index 9b3e356bd..89a393e50 100644 --- a/fastertransformer/cuda/open_attention.h +++ b/fastertransformer/cuda/open_attention.h @@ -19,12 +19,15 @@ #pragma once -#include "fastertransformer/allocator.h" +#include "fastertransformer/utils/allocator.h" #include "fastertransformer/cuda/multi_head_attention.h" +#include "fastertransformer/cuda/attention_kernels.cuh" +#include "fastertransformer/cuda/transformer_kernels.cuh" #include "fastertransformer/cuda/cuda_kernels.h" #include "fastertransformer/cuda/cuda_int8_kernels.h" #include "fastertransformer/gemm_test/encoder_gemm_func.h" #include "fastertransformer/gemm_test/encoder_igemm_func.h" +#include "fastertransformer/utils/functions.h" #include #include #include @@ -33,6 +36,120 @@ namespace fastertransformer{ namespace cuda{ +void trt_add_QKV_bias_transpose_debug_kernelLauncher( + const half* query_buf, const half* bias_Q, + const half* key_buf, const half* bias_K, + const half* value_buf, const half* bias_V, + half* context_buf, + const int valid_word_num, + const int head_num, const int size_per_head, + cudaStream_t stream); // Used to debug the trt_add_QKV_bias kernel + +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int32_t* Q, const T* bias_Q, + const int32_t* K, const T* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float * q_weight_amax, const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_QK_bias_transform_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int8_t* Q, const T* bias_Q, + const int8_t* K, const T* bias_K, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *q_input_deQFactor_ptr, const float *k_input_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int32_t *V, const T *V_bias, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_kernelLauncher(int8_t *v_buf, const int8_t *V, const T *V_bias, const int batch_size, + const int seq_len, const int head_num, const int size_per_head, + const float *input_deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +void mappingRemovePaddingData_kernelLauncher(const int batch_size, const int seq_len, + const int valid_word_num, int *mapping, + const int* sequence_id_offset, cudaStream_t stream); + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, + const int32_t* Q, const T* bias_Q, + const int32_t* K, const T* bias_K, + const int* sequence_id_offset, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float * q_weight_amax, + const float *q_input_deQFactor_div127_ptr, + const float * k_weight_amax, + const float *k_input_deQFactor_div127_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_QK_bias_transform_rebuild_padding_kernelLauncher(int8_t *q_buf, int8_t *k_buf, const int8_t* Q, const T* bias_Q, + const int8_t* K, const T* bias_K, const int* sequence_id_offset, + const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, + const float *q_output_scale_ptr, const float *k_output_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int32_t *V, const T *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float* weight_amax, + const float *input_deQFactor_div127_ptr, + const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void add_V_bias_transform_rebuild_padding_kernelLauncher(int8_t *v_buf, const int8_t *V, const T *V_bias, + const int* sequence_id_map, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const float *deQFactor_ptr, const float *out_scale_ptr, + bool use_ORDER_COL32_2R_4R4, cudaStream_t stream); + +template +void softmax_COL32_kernelLauncher(int8_t* qk_buf, const int32_t* qk_int_buf, const T* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, const float *scalar1c, + const float *amax_ptr, cudaStream_t stream); + +template +void softmax_COL32_kernelLauncher(int8_t* qk_buf, const int8_t* qk_int_buf, const T* attr_mask, + const int batch_size, const int head_num, const int seq_len, + const float scalar1a, const float *scalar1b, const float *amax_ptr, + cudaStream_t stream); + +template +void add_QKV_bias_rebuild_padding_kernelLauncher(T* Q, const T* bias_Q, T* K, const T* bias_K, + T* V, const T* bias_V, T* q_buf, T* k_buf, T* v_buf, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, const int valid_word_num, + const int* mask_offset, cudaStream_t stream); + +template +void transpose_kernelLauncher(T* src, T* dst, const int batch_size, const int seq_len, const int head_num, const int size_per_head, cudaStream_t stream); + +template +void transpose_rebuild_padding_kernelLauncher(T* src, T* dst, const int valid_word_num, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const int* mask_offset, cudaStream_t stream); + template class OpenMultiHeadAttentionTraits; @@ -42,6 +159,7 @@ class OpenMultiHeadAttentionTraits public: typedef float DataType; static cudaDataType_t const computeType = CUDA_R_32F; + static cudaDataType_t const scaleType = CUDA_R_32F; static cudaDataType_t const AType = CUDA_R_32F; static cudaDataType_t const BType = CUDA_R_32F; static cudaDataType_t const CType = CUDA_R_32F; @@ -54,6 +172,7 @@ class OpenMultiHeadAttentionTraits public: typedef half DataType; static cudaDataType_t const computeType = CUDA_R_16F; + static cudaDataType_t const scaleType = CUDA_R_16F; static cudaDataType_t const AType = CUDA_R_16F; static cudaDataType_t const BType = CUDA_R_16F; static cudaDataType_t const CType = CUDA_R_16F; @@ -76,10 +195,10 @@ class OpenMultiHeadAttention: IMultiHeadAttention IAllocator* allocator_ = NULL; MultiHeadInitParam param_; - int cublasAlgo_[4]; - std::map cublasLtAlgoMap_; - std::map cublasAlgoMap_; - std::map isFuseQKVMap_; + //algo for batch matrix multiplication in unfused mha + int cublasBmmAlgo_[2]; + std::map cublasAlgoMap_; + std::map parameterMap_; bool is_fuse_QKV_; DataType_* buf_ = NULL; @@ -96,19 +215,22 @@ class OpenMultiHeadAttention: IMultiHeadAttention DataType_** qkv_input_; DataType_** qkv_buf_; + void* cublas_workspace_; + void* trt_attn_workspace_; const float *query_weight_amax_list, *key_weight_amax_list, *value_weight_amax_list; + int sm_; int batch_size_; int from_seq_len_; int to_seq_len_; int head_num_; int size_per_head_; - int mSM_; //int8_mode == 0 -- not use int8 - //int8_mode == 1 -- use int8 without quantized residual - //int8_mode == 2 -- use int8 with quantized residual + //int8_mode == 1 -- use int8; without quantized residual; when (batch*seqLen >= 512) or (seqLen % 32 !=0 ), using trt fused mha + //int8_mode == 2 -- use int8; with quantized residual; with trt fused mha + //int8_mode == 3 -- use int8; with quantized residual; without trt fused mha int int8_mode_ = 0; int* sequence_id_map_; int* Q_int_buf_; @@ -119,140 +241,70 @@ class OpenMultiHeadAttention: IMultiHeadAttention bool allow_gemm_test_ = false; bool use_ORDER_COL32_2R_4R4_ = false; - std::unique_ptr dispatcher_fp16; + std::unique_ptr dispatcher_fp16, dispatcher_int8; public: - void readAlgoFromConfig(int int8_mode, int batch_size, int seq_len, int head_num, int size_per_head) + void getCublasBmmAlgoFromMap() { - if (int8_mode != 0) - { - cublasLtAlgoMap_.clear(); - FILE* fd = fopen(IGEMM_CONFIG, "r"); - if (fd == NULL) - return; - int batchCount2, m2, n2, k2, algoId, customOption, tile, splitK_val, swizzle, reductionScheme, workspaceSize, stages; - int batch_size, seq_len, head_num, size_per_head; - while(fscanf(fd,"%d %d %d %d ### %d %d %d %d %d %d %d %d %d %d %d %d\n", &batch_size, &seq_len, &head_num, &size_per_head, &batchCount2, &m2, &n2, &k2, &algoId, &customOption, &tile, &splitK_val, &swizzle, &reductionScheme, &workspaceSize, &stages)!=EOF) - { - char mark[256]; - sprintf(mark, "%d_%d_%d_%d", batchCount2, m2, n2, k2); - std::string markStr(mark); - //workspaceSize should be zero - if (cublasLtAlgoMap_.find(markStr) == cublasLtAlgoMap_.end() && workspaceSize == 0) - { - cublasLtAlgoMap_[markStr].algoId = algoId; - cublasLtAlgoMap_[markStr].customOption = customOption; - cublasLtAlgoMap_[markStr].tile = tile; - cublasLtAlgoMap_[markStr].splitK_val = splitK_val; - cublasLtAlgoMap_[markStr].swizzle = swizzle; - cublasLtAlgoMap_[markStr].reductionScheme = reductionScheme; - cublasLtAlgoMap_[markStr].workspaceSize = workspaceSize; - cublasLtAlgoMap_[markStr].stages = stages; - } - } - fclose(fd); - } + int batchCount, m, n, k, dataType; + if (std::is_same::value) + dataType = HALF_DATATYPE; else + dataType = FLOAT_DATATYPE; + //bmm1 + batchCount = batch_size_*head_num_; + m = from_seq_len_; + n = from_seq_len_; + k = size_per_head_; + char mark[256]; + sprintf(mark, "%d_%d_%d_%d_%d", batchCount, n, m, k, dataType); + if (cublasAlgoMap_.find(mark) != cublasAlgoMap_.end()) { - cublasAlgoMap_.clear(); - isFuseQKVMap_.clear(); - FILE* fd = fopen(GEMM_CONFIG, "r"); - if (fd == NULL) - return; - int batchCount2, m2, n2, k2, is_fp16, algoId; - int batch_size, seq_len, head_num, size_per_head; - float runtime; - while(fscanf(fd,"%d %d %d %d ### %d %d %d %d %d %d %f\n", &batch_size, &seq_len, &head_num, &size_per_head, &batchCount2, &m2, &n2, &k2, &is_fp16, &algoId, &runtime)!=EOF){ - char mark[256]; - sprintf(mark, "%d_%d_%d_%d_%d", batchCount2, m2, n2, k2, is_fp16); - std::string markStr(mark); - cublasAlgoMap_[markStr] = algoId; - if (batchCount2 == 1 || batchCount2 == 3) - isFuseQKVMap_[markStr] = runtime; - } - fclose(fd); + cublasBmmAlgo_[0] = cublasAlgoMap_[mark].algoId; } - } - - void getBestAlgoFromMap(int batch_size, int seq_len, int head_num, int size_per_head, int is_fp16) - { - int m = batch_size * seq_len; - int n = head_num * size_per_head; - int k = n; - char mark[256]; - int foundAlgo = 0; - float split_time = -1.0, fuse_time = -1.0; - sprintf(mark, "1_%d_%d_%d_%d", m, n, k, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) + else { - cublasAlgo_[0] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - if (isFuseQKVMap_.find(markStr) != isFuseQKVMap_.end()) - split_time = isFuseQKVMap_[markStr]; + cublasBmmAlgo_[0] = dataType == FLOAT_DATATYPE ? CUBLAS_GEMM_DEFAULT : CUBLAS_GEMM_DEFAULT_TENSOR_OP; } - if (foundAlgo == 1) + //bmm2 + batchCount = batch_size_*head_num_; + m = from_seq_len_; + n = size_per_head_; + k = from_seq_len_; + sprintf(mark, "%d_%d_%d_%d_%d", batchCount, n, m, k, dataType); + if (cublasAlgoMap_.find(mark) != cublasAlgoMap_.end()) { - sprintf(mark, "%d_%d_%d_%d_%d", batch_size_*head_num_, from_seq_len_, from_seq_len_, size_per_head_, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) - { - cublasAlgo_[1] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - } - if (foundAlgo == 2) - { - sprintf(mark, "%d_%d_%d_%d_%d", batch_size_*head_num_, from_seq_len_, size_per_head_, from_seq_len_, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) - { - cublasAlgo_[2] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - } - if (foundAlgo == 3) - { - sprintf(mark, "3_%d_%d_%d_%d", m, n, k, is_fp16); - std::string markStr(mark); - if (cublasAlgoMap_.find(markStr) != cublasAlgoMap_.end()) - { - cublasAlgo_[3] = cublasAlgoMap_[markStr]; - foundAlgo += 1; - if (isFuseQKVMap_.find(markStr) != isFuseQKVMap_.end()) - fuse_time = isFuseQKVMap_[markStr]; - } - } - } + cublasBmmAlgo_[1] = cublasAlgoMap_[mark].algoId; } - if(foundAlgo != 4) + else { - printf("[WARNING][OpenMultiHeadAttention] Loading GEMM algorithms error, using default GEMM algorithms!\n"); - if(is_fp16 == 0) - { - cublasAlgo_[0] = -1; - cublasAlgo_[1] = -1; - cublasAlgo_[2] = -1; - cublasAlgo_[3] = -1; - } - else - { - cublasAlgo_[0] = 99; - cublasAlgo_[1] = 99; - cublasAlgo_[2] = 99; - cublasAlgo_[3] = 99; - } - is_fuse_QKV_ = false; + cublasBmmAlgo_[1] = dataType == FLOAT_DATATYPE ? CUBLAS_GEMM_DEFAULT : CUBLAS_GEMM_DEFAULT_TENSOR_OP; } + } + + void judgeFusedQKV() + { + is_fuse_QKV_ = false; + int m, n, k, dataType; + if (std::is_same::value) + dataType = HALF_DATATYPE; else + dataType = FLOAT_DATATYPE; + + m = batch_size_*from_seq_len_; + n = head_num_*size_per_head_; + k = head_num_*size_per_head_; + char mark[256], mark2[256]; + sprintf(mark, "1_%d_%d_%d_%d", n, m, k, dataType); + sprintf(mark2, "3_%d_%d_%d_%d", n, m, k, dataType); + if ( + cublasAlgoMap_.find(mark) != cublasAlgoMap_.end() && + cublasAlgoMap_.find(mark2) != cublasAlgoMap_.end() && + 3*cublasAlgoMap_[mark].exec_time > cublasAlgoMap_[mark2].exec_time + ) { - is_fuse_QKV_ = false; - if ((split_time > 0) && - (fuse_time > 0) && - (3*split_time > fuse_time) - ) - { is_fuse_QKV_ = true; - } } } @@ -274,9 +326,39 @@ class OpenMultiHeadAttention: IMultiHeadAttention } } + size_t get_workspace_size() + { + size_t size = 0; + + const int buf_size = batch_size_ * head_num_ * from_seq_len_ * size_per_head_; + const int qk_buf_size = batch_size_ * head_num_ * from_seq_len_ * from_seq_len_; + const int seq_len_padded = (from_seq_len_ + 31)/32*32; + const int padded_buf_size = batch_size_ * head_num_ * seq_len_padded * size_per_head_; + const int padded_qk_buf_size = batch_size_ * head_num_ * seq_len_padded * seq_len_padded; + + if(int8_mode_ != 0) + { + //query_buf_(Q_int_buf_) key_buf_(K_int_buf_) value_buf_(V_int_buf_) qk_int_buf_ transpose_dst_(transpose_dst_int_buf_) + size = sizeof(int) * (4*buf_size + padded_qk_buf_size) + + //int8 q_buf_ k_buf_ v_buf_ qk_buf_ + sizeof(int8_t) * (3*padded_buf_size + padded_qk_buf_size) + + //sequence_id_map + (batch_size_*from_seq_len_)*sizeof(int) + + //trt_attn_workspace_ + (dispatcher_int8.get() ? dispatcher_int8->getWorkspaceSize() : 0); + + } + else + { + size = sizeof(DataType_) * (buf_size * 7 + qk_buf_size) + sizeof(DataType_*) * 9 + + (dispatcher_fp16.get() ? dispatcher_fp16->getWorkspaceSize() : 0); + } + return size; + } + //allocate buffer for OpenMultiHeadAttention //read config again if hasChangedConfig == true - void allocateBuffer(IAllocator* allocator, int batch_size, int from_seq_len, int to_seq_len, + void allocateBuffer(IAllocator* allocator, void* cublas_workspace, int batch_size, int from_seq_len, int to_seq_len, int head_num, int size_per_head, bool hasChangedConfig, bool use_trt_kernel) { #ifndef NDEBUG @@ -287,9 +369,7 @@ class OpenMultiHeadAttention: IMultiHeadAttention printf("[ERROR][OpenMultiHeadAttention][allocateBuffer] allocator == NULL!\n"); exit(-1); } - - int buf_size = batch_size_ * head_num_ * from_seq_len_ * size_per_head_; - int qk_buf_size = batch_size_ * head_num_ * from_seq_len_ * from_seq_len_; + try { //only allocate new buffer when buf_ is empty @@ -307,20 +387,28 @@ class OpenMultiHeadAttention: IMultiHeadAttention to_seq_len_ = to_seq_len; head_num_ = head_num; size_per_head_ = size_per_head; + cublas_workspace_ = cublas_workspace; + + const int buf_size = batch_size_ * head_num_ * from_seq_len_ * size_per_head_; + const int qk_buf_size = batch_size_ * head_num_ * from_seq_len_ * from_seq_len_; - int buf_size = batch_size_ * head_num_ * from_seq_len_ * size_per_head_; - int qk_buf_size = batch_size_ * head_num_ * from_seq_len_ * from_seq_len_; if (int8_mode_ != 0) { - buf_ = (DataType_*) allocator_->malloc( - //query_buf_(Q_int_buf_) key_buf_(K_int_buf_) value_buf_(V_int_buf_) qk_int_buf_ transpose_dst_(transpose_dst_int_buf_) - sizeof(int) * (4*buf_size + qk_buf_size) + - //q_buf_ k_buf_ v_buf_ - sizeof(DataType_) * (3*buf_size + qk_buf_size) + - //for fused qkv pointer - sizeof(DataType_*) * 9 + - //sequence_id_map - (batch_size_*from_seq_len_)*sizeof(int), false); + if ((int8_mode_ == 1 && (batch_size_*from_seq_len_ >= 512 || (from_seq_len_ % 32 != 0))) || int8_mode_ == 2) + { + if (use_trt_kernel && (sm_ == kSM_86 || sm_ == kSM_80 || sm_ == kSM_75 || sm_ == kSM_72) && size_per_head_ == 64) + { + //try + { + dispatcher_int8.reset(new FusedMHARunnerInt8v2(head_num_, size_per_head_, sm_)); + } + } + } + const int seq_len_padded = (from_seq_len_ + 31)/32*32; + const int padded_buf_size = batch_size_ * head_num_ * seq_len_padded * size_per_head_; + const int padded_qk_buf_size = batch_size_ * head_num_ * seq_len_padded * seq_len_padded; + + buf_ = (DataType_*) allocator_->malloc(get_workspace_size(), false); if (buf_ == NULL) throw std::runtime_error(std::string("Allocator failed to allocate internal buffer.")); Q_int_buf_ = (int *)(buf_); @@ -328,26 +416,19 @@ class OpenMultiHeadAttention: IMultiHeadAttention V_int_buf_ = K_int_buf_ + buf_size; transpose_dst_int_buf_ = V_int_buf_ + buf_size; qk_int_buf_ = transpose_dst_int_buf_ + buf_size; - q_buf_ = (DataType_*)(qk_int_buf_ + qk_buf_size); - k_buf_ = q_buf_ + buf_size; - v_buf_ = k_buf_ + buf_size; - qk_buf_ = v_buf_ + buf_size; - qkv_kernel_ = (DataType_**)(qk_buf_ + qk_buf_size); - qkv_input_ = qkv_kernel_ + 3; - qkv_buf_ = qkv_input_ + 3; - sequence_id_map_ = (int*)(qkv_buf_ + 3); - if (int8_mode_ == 2) { - K_int_buf_ = (int*)((int8_t*)Q_int_buf_ + buf_size); - V_int_buf_ = (int*)((int8_t*)K_int_buf_ + buf_size); - } + q_buf_ = (DataType_*)(qk_int_buf_ + padded_qk_buf_size); + //the actual size is calculated with int8_t datatype + k_buf_ = (DataType_*)((int8_t*)q_buf_ + padded_buf_size); + v_buf_ = (DataType_*)((int8_t*)k_buf_ + padded_buf_size); + qk_buf_ = (DataType_*)((int8_t*)v_buf_ + padded_buf_size); + sequence_id_map_ = (int*)((int8_t*)qk_buf_ + padded_qk_buf_size); + trt_attn_workspace_ = (void*)(sequence_id_map_ + (batch_size_*from_seq_len_)); } else { - if (use_trt_kernel && (mSM_ == kSM_86 || mSM_ == kSM_80 || mSM_ == kSM_75 || mSM_ == kSM_72) && size_per_head_ == 64) - dispatcher_fp16.reset(new FusedMHARunnerFP16v2(head_num_, size_per_head_, mSM_)); - buf_ = (DataType_*) allocator_->malloc(sizeof(DataType_) * (buf_size * 7 + qk_buf_size) + - sizeof(DataType_*) * 9 + - (dispatcher_fp16.get() ? dispatcher_fp16->getWorkspaceSize() : 0), false); + if (use_trt_kernel && (sm_ == kSM_70 || sm_ == kSM_86 || sm_ == kSM_80 || sm_ == kSM_75 || sm_ == kSM_72) && size_per_head_ == 64) + dispatcher_fp16.reset(new FusedMHARunnerFP16v2(head_num_, size_per_head_, sm_)); + buf_ = (DataType_*) allocator_->malloc(get_workspace_size(), false); if (buf_ == NULL) throw std::runtime_error(std::string("Allocator failed to allocate internal buffer.")); query_buf_ = buf_; @@ -369,32 +450,27 @@ class OpenMultiHeadAttention: IMultiHeadAttention //if config changes, read config again if (hasChangedConfig) { + int isConfigExist = -1; if (int8_mode_ != 0) { - int isConfigExist = access(IGEMM_CONFIG, 0); - if (isConfigExist == -1) - printf("[WARNING][OpenMultiHeadAttention] %s is not found; using default GEMM algo\n", IGEMM_CONFIG); - else - { - readAlgoFromConfig(int8_mode_, batch_size_, from_seq_len_, head_num_, size_per_head_); - } + isConfigExist = access(IGEMM_CONFIG, 0); } else { - int isConfigExist = access(GEMM_CONFIG, 0); - if (isConfigExist == -1) - printf("[WARNING][OpenMultiHeadAttention] %s is not found; using default GEMM algo\n", GEMM_CONFIG); - else - { - readAlgoFromConfig(int8_mode_, batch_size_, from_seq_len_, head_num_, size_per_head_); - } + isConfigExist = access(GEMM_CONFIG, 0); + } + if (isConfigExist == -1) + printf("[WARNING][OpenMultiHeadAttention] %s is not found; using default GEMM algo\n", int8_mode_ != 0 ? IGEMM_CONFIG : GEMM_CONFIG); + else + { + readAlgoFromConfig(int8_mode_, cublasAlgoMap_, parameterMap_, false); } } if (int8_mode_ == 0) { - int is_fp16 = (sizeof(DataType_) == sizeof(half) ? 1 : 0); - getBestAlgoFromMap(batch_size_, from_seq_len_, head_num_, size_per_head_, is_fp16); + getCublasBmmAlgoFromMap(); + judgeFusedQKV(); } } catch(std::runtime_error& error) @@ -404,49 +480,308 @@ class OpenMultiHeadAttention: IMultiHeadAttention } //Ctor - OpenMultiHeadAttention(int int8_mode=0, bool allow_gemm_test=false, bool use_ORDER_COL32_2R_4R4=false) : - int8_mode_(int8_mode), allow_gemm_test_(allow_gemm_test), use_ORDER_COL32_2R_4R4_(use_ORDER_COL32_2R_4R4) + OpenMultiHeadAttention(int int8_mode=0, bool allow_gemm_test=false, bool use_ORDER_COL32_2R_4R4=false, int sm = 75) : + int8_mode_(int8_mode), allow_gemm_test_(allow_gemm_test), use_ORDER_COL32_2R_4R4_(use_ORDER_COL32_2R_4R4), sm_(sm) { #ifndef NDEBUG PRINT_FUNC_NAME_(); #endif - mSM_ = getSMVersion(); + //sm_ = getSMVersion(); - int is_fp16 = (sizeof(DataType_) == sizeof(half) ? 1 : 0); try { - if (int8_mode_ != 0){ - int isConfigExist = access(IGEMM_CONFIG, 0); + int isConfigExist = -1; + if (int8_mode_ != 0) + isConfigExist = access(IGEMM_CONFIG, 0); + else + isConfigExist = access(GEMM_CONFIG, 0); - if (isConfigExist == -1) + if (isConfigExist == -1) + { + if (!allow_gemm_test_) { - if (!allow_gemm_test_) - { - printf("[WARNING][OpenMultiHeadAttention] %s is not found; using default GEMM algo\n", IGEMM_CONFIG); - } + printf("[WARNING][OpenMultiHeadAttention] %s is not found; using default GEMM algo\n", int8_mode_ != 0 ? IGEMM_CONFIG : GEMM_CONFIG); } - else + } + else + { + readAlgoFromConfig(int8_mode_, cublasAlgoMap_, parameterMap_, false); + } + } + catch(std::runtime_error& error) + { + throw error; + } + } + + OpenMultiHeadAttention(const OpenMultiHeadAttention *attention) + { +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + sm_ = attention->sm_; + int8_mode_ = attention->int8_mode_; + allow_gemm_test_ = attention->allow_gemm_test_; + + for(int i = 0; i < 2; i++) cublasBmmAlgo_[i] = attention->cublasBmmAlgo_[i]; + cublasAlgoMap_ = attention->cublasAlgoMap_; + parameterMap_ = attention->parameterMap_; + is_fuse_QKV_ = attention->is_fuse_QKV_; + use_ORDER_COL32_2R_4R4_ = attention->use_ORDER_COL32_2R_4R4_; + } + + void multiHeadAttr_nofuse_kernelLauncher( + cudaStream_t stream, + cublasHandle_t cublas_handle, + cublasLtHandle_t cublaslt_handle, + DataType_* Q, + const DataType_* bias_Q, + DataType_* K, + const DataType_* bias_K, + DataType_* V, + const DataType_* bias_V, + const DataType_* attr_mask, + DataType_* dst, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + const int int8_mode_, + const DataType_ scalar) + { + const int k = head_num * size_per_head; + + if (int8_mode_ != 0) + { + //var for int8 + const float*Qbias_amax_ptr, *Kbias_amax_ptr, *Vbias_amax_ptr, *bmm1_amax_ptr, *Softmax_amax_ptr, *bmm2_amax_ptr, *in_amax_ptr, *Q_aftergemm_amax_ptr, *K_aftergemm_amax_ptr, *V_aftergemm_amax_ptr; + Qbias_amax_ptr = param_.amaxList + 8; + Kbias_amax_ptr = param_.amaxList + 16; + Vbias_amax_ptr = param_.amaxList + 24; + Softmax_amax_ptr = param_.amaxList + 32; + bmm2_amax_ptr = param_.amaxList + 36; + Q_aftergemm_amax_ptr = param_.amaxList + 4; + K_aftergemm_amax_ptr = param_.amaxList + 12; + V_aftergemm_amax_ptr = param_.amaxList + 20; + bmm1_amax_ptr = param_.amaxList + 28; + in_amax_ptr = param_.amaxList; + + if (size_per_head % 32 != 0) + { + printf("[ERROR][FT][multiHeadAttr_nofuse_kernelLauncher] int8 unfused mha kernel only works when size_per_head %% 32 == 0.\n"); + exit(-1); + } + if ((seq_len % 32 != 0) && int8_mode_ == 1) + { + printf("[ERROR][FT][multiHeadAttr_nofuse_kernelLauncher] int8 mode1 unfused mha kernel only works when seq_len %% 32 == 0.\n"); + exit(-1); + } + const int seq_len_padded = (seq_len + 31)/32*32; + + if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) + { + if (int8_mode_ == 1) + { + add_QK_bias_transform_kernelLauncher((int8_t*)q_buf_, (int8_t*)k_buf_, + (const int32_t*) Q, bias_Q, (const int32_t*) K, bias_K, + batch_size, seq_len, head_num, size_per_head, + query_weight_amax_list, in_amax_ptr+2, + key_weight_amax_list, in_amax_ptr+2, + Qbias_amax_ptr+3, Kbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); + add_V_bias_transform_kernelLauncher((int8_t*)v_buf_, + (const int32_t *)V, bias_V, + batch_size, seq_len, head_num, size_per_head, + value_weight_amax_list, in_amax_ptr+2, Vbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); + } + else if (int8_mode_ == 2 || int8_mode_ == 3) { - readAlgoFromConfig(int8_mode_, batch_size_, from_seq_len_, head_num_, size_per_head_); + add_QK_bias_transform_kernelLauncher((int8_t*)q_buf_, (int8_t*)k_buf_, + (const int8_t*) Q, bias_Q, (const int8_t*)K, bias_K, + batch_size, seq_len, head_num, size_per_head, + Q_aftergemm_amax_ptr+1, K_aftergemm_amax_ptr+1, + Qbias_amax_ptr+3, Kbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); + add_V_bias_transform_kernelLauncher((int8_t*)v_buf_, (const int8_t *)V, bias_V, + batch_size, seq_len, head_num, size_per_head, + V_aftergemm_amax_ptr+1, Vbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); } } else{ - int isConfigExist = access(GEMM_CONFIG, 0); + mappingRemovePaddingData_kernelLauncher(batch_size, seq_len, + param_.valid_word_num, sequence_id_map_, + param_.sequence_id_offset, stream); + // if we use remove padding, then initialize the q_buf_, k_buf_ and v_buf_ to prevent bugs. v_buf_ will be properly initiaized in add_V_bias_transform_rebuild_padding_kernelLauncher() + cudaMemsetAsync((int8_t*)q_buf_, 0, 2 * batch_size_ * seq_len_padded * head_num * size_per_head * sizeof(int8_t), param_.stream); + if (int8_mode_ == 1) + { + + add_QK_bias_transform_rebuild_padding_kernelLauncher((int8_t*)q_buf_, (int8_t*)k_buf_, + (const int32_t*)Q, bias_Q, + (const int32_t*)K, bias_K, + param_.sequence_id_offset, param_.valid_word_num, + batch_size, seq_len, + head_num, size_per_head, + query_weight_amax_list, in_amax_ptr+2, + key_weight_amax_list, in_amax_ptr+2, + Qbias_amax_ptr+3, Kbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); - if (isConfigExist == -1) + add_V_bias_transform_rebuild_padding_kernelLauncher((int8_t*)v_buf_, (const int32_t *)V, bias_V, + sequence_id_map_, param_.valid_word_num, + batch_size, seq_len, head_num, size_per_head, + value_weight_amax_list, in_amax_ptr+2, Vbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); + } + else if (int8_mode_ == 2 || int8_mode_ == 3) { - if (!allow_gemm_test_) - { - printf("[WARNING][OpenMultiHeadAttention] %s is not found; using default GEMM algo\n", GEMM_CONFIG); - } + add_QK_bias_transform_rebuild_padding_kernelLauncher((int8_t*)q_buf_, (int8_t*)k_buf_, + (const int8_t*)Q, bias_Q, + (const int8_t*)K, bias_K, + param_.sequence_id_offset, param_.valid_word_num, + batch_size, seq_len, head_num, size_per_head, + Q_aftergemm_amax_ptr+1, K_aftergemm_amax_ptr+1, + Qbias_amax_ptr+3, Kbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); + + add_V_bias_transform_rebuild_padding_kernelLauncher((int8_t*)v_buf_, (const int8_t *)V, bias_V, + sequence_id_map_, param_.valid_word_num, + batch_size, seq_len, head_num, size_per_head, + V_aftergemm_amax_ptr+1, Vbias_amax_ptr+3, + use_ORDER_COL32_2R_4R4_, stream); + } + } + + int batchCount = batch_size * head_num; + + if (int8_mode_ == 1) + { + cublasLtMM_withAlgo(qk_int_buf_, batchCount, seq_len, seq_len, size_per_head, + size_per_head*seq_len, size_per_head*seq_len, seq_len*seq_len, + (int8_t*)q_buf_, (int8_t*)k_buf_, cublaslt_handle, stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); + + softmax_COL32_kernelLauncher((int8_t*)qk_buf_, qk_int_buf_, attr_mask, + batch_size, head_num, seq_len, + float(scalar), Qbias_amax_ptr + 1, Kbias_amax_ptr + 1, + Softmax_amax_ptr, stream); + + cublasLtMM_withAlgo(transpose_dst_int_buf_, batchCount, seq_len, size_per_head, seq_len, + seq_len*seq_len, size_per_head*seq_len, size_per_head*seq_len, (int8_t*)qk_buf_, + (int8_t*)v_buf_, cublaslt_handle, stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); + + if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) + { + transpose_COL32_kernelLauncher((int8_t*)dst, (const int*)transpose_dst_int_buf_, batch_size, seq_len, head_num, + size_per_head, Vbias_amax_ptr+1, Softmax_amax_ptr+1, bmm2_amax_ptr+3, stream); + } + else + { + transpose_COL32_rebuild_padding_kernelLauncher((int8_t*)dst, (const int*)transpose_dst_int_buf_, sequence_id_map_, + param_.valid_word_num, batch_size, seq_len, head_num, size_per_head, + Vbias_amax_ptr+1, Softmax_amax_ptr+1, bmm2_amax_ptr+3, stream); + } + } + else if (int8_mode_ == 2 || int8_mode_ == 3) + { + cublasLtMM_withAlgo_int8IO((int8_t*)qk_int_buf_, batchCount, seq_len, seq_len_padded, size_per_head, + size_per_head*seq_len, size_per_head*seq_len_padded, seq_len*seq_len_padded, + param_.int8O_gemm_deQ_scale_list[3], + (int8_t*)q_buf_, (int8_t*)k_buf_, cublaslt_handle, stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); + + softmax_COL32_kernelLauncher((int8_t*)qk_buf_, (int8_t*)qk_int_buf_, attr_mask, + batch_size, head_num, seq_len, + float(scalar), bmm1_amax_ptr + 1, Softmax_amax_ptr, + stream); + + cublasLtMM_withAlgo_int8IO((int8_t*)transpose_dst_int_buf_, batchCount, seq_len, size_per_head, seq_len_padded, + seq_len*seq_len_padded, size_per_head*seq_len_padded, size_per_head*seq_len, param_.int8O_gemm_deQ_scale_list[4], (int8_t*)qk_buf_, + (int8_t*)v_buf_, cublaslt_handle, stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); + if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) + { + transpose_COL32_kernelLauncher((int8_t*)dst, (const int8_t*)transpose_dst_int_buf_, batch_size, seq_len, head_num, + size_per_head, bmm2_amax_ptr+1, bmm2_amax_ptr+3, stream); } else { - readAlgoFromConfig(int8_mode_, batch_size_, from_seq_len_, head_num_, size_per_head_); + transpose_COL32_rebuild_padding_kernelLauncher((int8_t*)dst, (const int8_t*)transpose_dst_int_buf_, sequence_id_map_, + param_.valid_word_num, batch_size, seq_len, head_num, size_per_head, + bmm2_amax_ptr+1, bmm2_amax_ptr+3, stream); } + } + } + //FP32/FP16 + else + { + if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) + { + add_QKV_bias_transpose_kernelLauncher(q_buf_, k_buf_, v_buf_, + Q, bias_Q, + K, bias_K, + V, bias_V, + batch_size_, seq_len, + head_num, + size_per_head, stream); + } + else + { + // if we use remove padding, then initialize the q_buf_, k_buf_ and v_buf_ to prevent bugs. + cudaMemsetAsync(q_buf_, 0, 3 * batch_size_ * seq_len * head_num * size_per_head * sizeof(DataType_), param_.stream); - + add_QKV_bias_rebuild_padding_kernelLauncher(Q, bias_Q, K, bias_K, V, bias_V, q_buf_, k_buf_, v_buf_, + batch_size, seq_len, head_num, size_per_head, param_.valid_word_num, param_.sequence_id_offset, stream); + } + + DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; + + check_cuda_error(cublasGemmStridedBatchedEx(cublas_handle, + CUBLAS_OP_T, CUBLAS_OP_N, + seq_len, seq_len, size_per_head, + &alpha, + k_buf_, AType_, size_per_head, seq_len * size_per_head, + q_buf_, BType_, size_per_head, seq_len * size_per_head, + &beta, + qk_buf_, CType_, seq_len, seq_len * seq_len, + batch_size * head_num, + computeType_, + static_cast(cublasBmmAlgo_[0]))); + + attn_softmax_kernelLauncher(qk_buf_, attr_mask, batch_size, seq_len, head_num, scalar, stream); + + check_cuda_error(cublasGemmStridedBatchedEx(cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + size_per_head, seq_len, seq_len, + &alpha, + v_buf_, AType_, size_per_head, seq_len * size_per_head, + qk_buf_, BType_, seq_len, seq_len * seq_len, + &beta, + transpose_dst_, CType_, size_per_head, seq_len * size_per_head, + batch_size * head_num, + computeType_, + static_cast(cublasBmmAlgo_[1]))); + + if(param_.sequence_id_offset == nullptr || param_.valid_word_num == batch_size * seq_len) + { + transpose_kernelLauncher(transpose_dst_, dst, batch_size, seq_len, head_num, size_per_head, stream); + } + else + { + transpose_rebuild_padding_kernelLauncher(transpose_dst_, dst, param_.valid_word_num, + batch_size, seq_len, head_num, size_per_head, + param_.sequence_id_offset, stream); } + } + } + + void forward() + { +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + try + { + forward(param_.from_tensor, param_.to_tensor); } catch(std::runtime_error& error) { @@ -454,8 +789,24 @@ class OpenMultiHeadAttention: IMultiHeadAttention } } - void forward() + void forward(const DataType_* from_tensor, const DataType_* to_tensor) { + if(param_.sequence_id_offset != nullptr && param_.valid_word_num != batch_size_ * from_seq_len_) + { + is_fuse_QKV_ = false; + } + + if(is_fuse_QKV_ == true && int8_mode_ == 0) + { + // For tensorrt, we cannot get the pointer of from tensor until enqueue + const DataType_* hA[] {param_.self_attention.query_weight.kernel, + param_.self_attention.key_weight.kernel, + param_.self_attention.value_weight.kernel, + from_tensor, to_tensor, to_tensor, + query_buf_, key_buf_, value_buf_}; + cudaMemcpyAsync((void*)qkv_kernel_, hA, sizeof(DataType_*) * 9, cudaMemcpyHostToDevice, param_.stream); + } + #ifndef NDEBUG PRINT_FUNC_NAME_(); #endif @@ -467,6 +818,15 @@ class OpenMultiHeadAttention: IMultiHeadAttention try { if (int8_mode_ != 0){ + //K_int_buf_ V_int_buf_ should point to correct buffer according to param_.valid_word_num + if (int8_mode_ == 1) { + K_int_buf_ = (int*)Q_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_; + V_int_buf_ = (int*)K_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_; + } else if (int8_mode_ == 2 || int8_mode_ == 3){ + K_int_buf_ = (int*)((int8_t*)Q_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_); + V_int_buf_ = (int*)((int8_t*)K_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_); + } + int fusedINT8QKV = 0; const int8_t* Q_weight = (const int8_t*)(param_.self_attention.query_weight.kernel); const int8_t* K_weight = (const int8_t*)(param_.self_attention.key_weight.kernel); @@ -485,63 +845,72 @@ class OpenMultiHeadAttention: IMultiHeadAttention cublasLtMM_withAlgo(Q_int_buf_, 1, m, n, k, 0, 0, 0, param_.int8_from_tensor, Q_weight, param_.cublaslt_handle, param_.stream, - cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); cublasLtMM_withAlgo(K_int_buf_, 1, m, n, k, 0, 0, 0, param_.int8_from_tensor, K_weight, param_.cublaslt_handle, param_.stream, - cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); cublasLtMM_withAlgo(V_int_buf_, 1, m, n, k, 0, 0, 0, param_.int8_from_tensor, V_weight, param_.cublaslt_handle, param_.stream, - cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); } else{ int strideFactor = (fusedINT8QKV == 1) ? (sizeof(DataType_)/sizeof(int8_t)) : 1; cublasLtMM_withAlgo(Q_int_buf_, 3, m, n, k, 0, n*k*strideFactor, n*m, param_.int8_from_tensor, Q_weight, - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); } } - else + else if (int8_mode_ == 2 || int8_mode_ == 3) { if (fusedINT8QKV == 0){ cublasLtMM_withAlgo_int8IO((int8_t*)Q_int_buf_, 1, m, n, k, 0, 0, 0, param_.int8O_gemm_deQ_scale_list[0], param_.int8_from_tensor, Q_weight, param_.cublaslt_handle, param_.stream, - cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); cublasLtMM_withAlgo_int8IO((int8_t*)K_int_buf_, 1, m, n, k, 0, 0, 0, param_.int8O_gemm_deQ_scale_list[1], param_.int8_from_tensor, K_weight, param_.cublaslt_handle, param_.stream, - cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); cublasLtMM_withAlgo_int8IO((int8_t*)V_int_buf_, 1, m, n, k, 0, 0, 0, param_.int8O_gemm_deQ_scale_list[2], param_.int8_from_tensor, V_weight, param_.cublaslt_handle, param_.stream, - cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); } else{ int strideFactor = (fusedINT8QKV == 1) ? (sizeof(DataType_)/sizeof(int8_t)) : 1; cublasLtMM_withAlgo_int8IO((int8_t*)Q_int_buf_, 3, m, n, k, 0, n*k*strideFactor, n*m, param_.int8O_gemm_deQ_scale_list[0], param_.int8_from_tensor, Q_weight, - param_.cublaslt_handle, param_.stream, cublasLtAlgoMap_, use_ORDER_COL32_2R_4R4_); + param_.cublaslt_handle, param_.stream, cublasAlgoMap_, use_ORDER_COL32_2R_4R4_); } } - if (fusedINT8QKV != 0) { - if (int8_mode_ == 1) { - K_int_buf_ = (int*)Q_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_; - V_int_buf_ = (int*)K_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_; - } else { - K_int_buf_ = (int*)((int8_t*)Q_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_); - V_int_buf_ = (int*)((int8_t*)K_int_buf_ + param_.valid_word_num * head_num_ * size_per_head_); - } + int S; + if(dispatcher_int8.get()) + S = dispatcher_int8->getSFromMaxSeqLen(from_seq_len_); + if(dispatcher_int8.get() && dispatcher_int8->isValid(S) && param_.trt_seqlen_offset != nullptr) + { + // This function is only used when we satisfy the following conditions: + // 1. INT8 + // 2. GPU SM >= 75 + int8_fused_multiHeadAttr_kernelLauncher((const void*)Q_int_buf_, + param_.amaxList + 4 + 1, + param_.amaxList + 12 + 1, + param_.amaxList + 20 + 1, + param_.trt_fused_mha_amax_list[0]/127.0f, + S + ); } + else + { - DataType_ scalar = 1 / sqrtf(size_per_head_ * 1.0f); - multiHeadAttr_nofuse_kernelLauncher( + DataType_ scalar = 1 / sqrtf(size_per_head_ * 1.0f); + multiHeadAttr_nofuse_kernelLauncher( param_.stream, param_.cublas_handle, param_.cublaslt_handle, @@ -559,10 +928,12 @@ class OpenMultiHeadAttention: IMultiHeadAttention size_per_head_, int8_mode_, scalar); + } } else{ if(is_fuse_QKV_ == true) { + int algoId = getAlgoIdFromMap(cublasAlgoMap_, 3, n, m, k, AType_ == CUDA_R_16F ? HALF_DATATYPE : FLOAT_DATATYPE); check_cuda_error(cublasGemmBatchedEx(param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, n, m, k, @@ -573,87 +944,78 @@ class OpenMultiHeadAttention: IMultiHeadAttention (void* const*)qkv_buf_, CType_, n, 3, computeType_, - static_cast(cublasAlgo_[3]))); + static_cast(algoId))); } else { - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.query_weight.kernel, AType_, n, - param_.from_tensor, BType_, k, - &beta, - query_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); + cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, &alpha, + param_.self_attention.query_weight.kernel, AType_, n, + from_tensor, BType_, k, + &beta, (DataType_ *)query_buf_, CType_, n, + param_.stream, cublasAlgoMap_, sm_, cublas_workspace_); #ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); #endif - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.key_weight.kernel, AType_, n, - param_.to_tensor, BType_, k, - &beta, - key_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); + cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, &alpha, + param_.self_attention.key_weight.kernel, AType_, n, + to_tensor, BType_, k, + &beta, (DataType_ *)key_buf_, CType_, n, + param_.stream, cublasAlgoMap_, sm_, cublas_workspace_); #ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); #endif - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.value_weight.kernel, AType_, n, - param_.to_tensor, BType_, k, - &beta, - value_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); + cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, &alpha, + param_.self_attention.value_weight.kernel, AType_, n, + to_tensor, BType_, k, + &beta, (DataType_ *)value_buf_, CType_, n, + param_.stream, cublasAlgoMap_, sm_, cublas_workspace_); } #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif - if(dispatcher_fp16.get() && OpType_==OperationType::FP16) + int S; + if(dispatcher_fp16.get()) + S = dispatcher_fp16->getSFromMaxSeqLen(from_seq_len_); + if(dispatcher_fp16.get() && OpType_==OperationType::FP16 && dispatcher_fp16->isValid(S) && param_.trt_seqlen_offset != nullptr) { // This function is only used when we satisfy the following conditions: // 1. FP16 // 2. GPU SM >= 72 - fused_multiHeadAttr_kernelLauncher(); + // 3. Temporally add seqlen <= 384 limitation because the current fused mha cannot handle seqlen > 384. + fused_multiHeadAttr_kernelLauncher(S); } else { DataType_ scalar = 1 / sqrtf(size_per_head_ * 1.0f); - multiHeadAttr_nofuse_kernelLauncher( - param_.stream, - param_.cublas_handle, - param_.cublaslt_handle, - query_buf_, - param_.self_attention.query_weight.bias, - key_buf_, - param_.self_attention.key_weight.bias, - value_buf_, - param_.self_attention.value_weight.bias, - param_.attr_mask, - param_.attr_out, - batch_size_, - from_seq_len_, - head_num_, - size_per_head_, - int8_mode_, - scalar); + multiHeadAttr_nofuse_kernelLauncher( + param_.stream, + param_.cublas_handle, + param_.cublaslt_handle, + query_buf_, + param_.self_attention.query_weight.bias, + key_buf_, + param_.self_attention.key_weight.bias, + value_buf_, + param_.self_attention.value_weight.bias, + param_.attr_mask, + param_.attr_out, + batch_size_, + from_seq_len_, + head_num_, + size_per_head_, + int8_mode_, + scalar); } } } @@ -663,31 +1025,39 @@ class OpenMultiHeadAttention: IMultiHeadAttention } } - void fused_multiHeadAttr_kernelLauncher(); + void fused_multiHeadAttr_kernelLauncher(const int S); + + void int8_fused_multiHeadAttr_kernelLauncher(const void* Q, + const float *q_deQFactor_ptr, const float *k_deQFactor_ptr, const float *v_deQFactor_ptr, + const float mScaleQkv, const int S); - void multiHeadAttr_nofuse_kernelLauncher( - cudaStream_t stream, - cublasHandle_t handle, - cublasLtHandle_t cublaslt_handle, - DataType_* Q, + void trt_add_QKV_bias_kernelLauncher( + const DataType_* bias_Q, + const DataType_* bias_K, + const DataType_* bias_V); + + void trt_add_QKV_bias_COL32_int8IO_kernelLauncher( + int8_t* output, + const int8_t* Q, const DataType_* bias_Q, - DataType_* K, const DataType_* bias_K, - DataType_* V, const DataType_* bias_V, - const DataType_* attr_mask, - DataType_* dst, - const int batch_size, - const int seq_len, - const int head_num, - const int size_per_head, - const int int8_mode_, - const DataType_ scalar); + const float *q_input_deQFactor_ptr, + const float *k_input_deQFactor_ptr, + const float *v_input_deQFactor_ptr, + const float qkv_output_scale); - void trt_add_QKV_bias_kernelLauncher( + void trt_add_QKV_bias_COL32_int32Iint8O_kernelLauncher( + int8_t* output, + const int32_t* Q, const DataType_* bias_Q, const DataType_* bias_K, - const DataType_* bias_V); + const DataType_* bias_V, + const float *input_deQFactor_div127_ptr, + const float * q_weight_amax, + const float * k_weight_amax, + const float * v_weight_amax, + const float qkv_output_scale); void initialize(MultiHeadInitParam param) { @@ -700,35 +1070,11 @@ class OpenMultiHeadAttention: IMultiHeadAttention query_weight_amax_list = param_.amaxList + ACTIVATION_AMAX_NUM; key_weight_amax_list = query_weight_amax_list + hidden_dim; value_weight_amax_list = key_weight_amax_list + hidden_dim; + if (dispatcher_int8.get()) + { + dispatcher_int8.get()->setScaleList(param_.trt_fused_mha_amax_list[0]/127.0f, param_.trt_fused_mha_amax_list[1]/127.0f, param_.trt_fused_mha_amax_list[2]/127.0f); + } } - if(is_fuse_QKV_ == true && param_.from_tensor != nullptr) - { - // For tensorrt, we cannot get the pointer of from tensor until enqueue - const DataType_* hA[] {param_.self_attention.query_weight.kernel, - param_.self_attention.key_weight.kernel, - param_.self_attention.value_weight.kernel, - param_.from_tensor, param_.from_tensor, param_.from_tensor, - query_buf_, key_buf_, value_buf_}; - cudaMemcpyAsync((void*)qkv_kernel_, hA, sizeof(DataType_*) * 9, cudaMemcpyHostToDevice, param_.stream); - } - } - void trt_initialize(DataType_* from_tensor, DataType_* to_tensor, DataType_* attr_mask, cudaStream_t stream, - cublasHandle_t cublas_handle) - { - param_.from_tensor = from_tensor; - param_.to_tensor = to_tensor; - param_.attr_mask = attr_mask; - param_.stream = stream; - param_.cublas_handle = cublas_handle; - if(is_fuse_QKV_ == true) - { - const DataType_* hA[] {param_.self_attention.query_weight.kernel, - param_.self_attention.key_weight.kernel, - param_.self_attention.value_weight.kernel, - param_.from_tensor, param_.from_tensor, param_.from_tensor, - query_buf_, key_buf_, value_buf_}; - cudaMemcpyAsync((void*)qkv_kernel_, hA, sizeof(DataType_*) * 9, cudaMemcpyHostToDevice, param_.stream); - } } ~OpenMultiHeadAttention() override @@ -745,15 +1091,7 @@ class OpenMultiHeadAttention: IMultiHeadAttention } } }; - -void add_QKV_bias_transpose_kernelLauncher( - const half* query_buf, const half* bias_Q, - const half* key_buf, const half* bias_K, - const half* value_buf, const half* bias_V, - half* context_buf, - const int valid_word_num, - const int head_num, const int size_per_head, - cudaStream_t stream); // Used to debug the trt_add_QKV_bias kernel - + }//namespace cuda }//namespace fastertransformer + diff --git a/fastertransformer/cuda/open_decoder.cu b/fastertransformer/cuda/open_decoder.cu index f63a09c1a..b277daf8e 100644 --- a/fastertransformer/cuda/open_decoder.cu +++ b/fastertransformer/cuda/open_decoder.cu @@ -1,1843 +1,1505 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Open sourced multi-head attention - **/ - -#include "fastertransformer/open_decoder.h" -#include "cub/cub.cuh" - -namespace fastertransformer{ - -const int WARP_SIZE = 32; -const bool ATTENION_OPT = true; -const int ATTENTION_BLOCK_SIZE = 256; - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -template -using Copy_half_t = - typename std::conditional::type - >::type - >::type; - -template -using Copy_t = Copy_half_t; - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -/** - masked multi-head attention - */ -#define FINAL_MASK 0xffffffff -template -__inline__ __device__ -T warpReduceSum(T val) -{ - for(int mask = 16; mask > 0; mask >>= 1) - val += __shfl_xor_sync(FINAL_MASK, val, mask, 32); - return val; -} -/* Calculate the sum of all elements in a block */ -template - __inline__ __device__ -T blockReduceSum(T val) -{ - static __shared__ T shared[32]; - // __shared__ T shared[32]; - int lane = threadIdx.x & 0x1f; - int wid = threadIdx.x >> 5; - - val = warpReduceSum(val); - - if(lane == 0) - shared[wid] = val; - - __syncthreads(); - - val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : (T)(0.0f); - val = warpReduceSum(val); - - return val; -} - -/* gelu activation */ -template -__inline__ __device__ -T gelu(T x) -{ - float cdf = 0.5f * (1.0f + tanhf((0.7978845608028654f * (x + 0.044715f * x * x * x)))); - return x * cdf; -} - -/* gelu activation for half2 */ -template <> -__inline__ __device__ -half2 gelu(half2 val) -{ - half2 val_pow3 = __hmul2(val, __hmul2(val, val)); - float2 tmp_pow = __half22float2(val_pow3); - float2 tmp = __half22float2(val); - - tmp.x = 0.5f * (1.0f + tanhf((0.7978845608028654f * (tmp.x + 0.044715f * tmp_pow.x)))); - tmp.y = 0.5f * (1.0f + tanhf((0.7978845608028654f * (tmp.y + 0.044715f * tmp_pow.y)))); - return __hmul2(val, __float22half2_rn(tmp)); -} - - -template -__global__ -void add_bias_gelu(T* out, const T* bias, int m, int n) -{ - for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) - { - T reg_bias = __ldg(&bias[id % n]); - T val = out[id] + reg_bias; - out[id] = (T)(gelu(val)); - } -} - -template <> - __global__ -void add_bias_gelu(half* out, const half* bias, int m, int n) -{ - half2* out_ptr = (half2*) out; - const half2* bias_ptr = (half2*) bias; - - for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) - { - half2 reg_bias = __ldg(&bias_ptr[id % n]); - half2 val = out_ptr[id] + reg_bias; - out_ptr[id] = gelu(val); - } -} - -template -__global__ -void add_bias_relu(T* out, const T* bias, int m, int n) -{ - for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) - { - T reg_bias = __ldg(&bias[id % n]); - T val = out[id] + reg_bias; - out[id] = (T)(val > 0.0f ? val : 0.0f); - } -} - -template <> - __global__ -void add_bias_relu(half* out, const half* bias, int m, int n) -{ - half2* out_ptr = (half2*) out; - const half2* bias_ptr = (half2*) bias; - - for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) - { - half2 reg_bias = __ldg(&bias_ptr[id % n]); - half2 val = out_ptr[id] + reg_bias; - val.x = val.x > (half)0.0f ? val.x : (half)0.0f; - val.y = val.y > (half)0.0f ? val.y : (half)0.0f; - out_ptr[id] = val; - } -} - -template - __inline__ __device__ -T warpReduceMax(T val) -{ - for(int mask = 16; mask > 0; mask >>= 1) - val = max(val, __shfl_xor_sync(FINAL_MASK, val, mask, 32)); - return val; -} -/* Calculate the maximum of all elements in a block */ -template - __inline__ __device__ -T blockReduceMax(T val) -{ - static __shared__ T shared[32]; -// __shared__ T shared[32]; - int lane = threadIdx.x & 0x1f; // in-warp idx - int wid = threadIdx.x >> 5; // warp idx - - val = warpReduceMax(val); // get maxx in each warp - - if(lane == 0) // record in-warp maxx by warp Idx - shared[wid] = val; - - __syncthreads(); - - - val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : (T)-1e20f; - val = warpReduceMax(val); - - return val; -} - -template -__global__ -void masked_attention_kernel_opt( - T* __restrict key_buf, T* __restrict value_buf, - T* __restrict query_buf, const T* __restrict self_Q_bias, - T* __restrict key_cache, const T* __restrict self_K_bias, - T* __restrict value_cache, const T* __restrict self_V_bias, - T* __restrict context_buf, int batch_size, int head_num, const int step, const T scalar) -{ - typedef Copy_t copy_t; - const int elems_per_thread = size_per_head / WARP_SIZE; - - union Access_t - { - copy_t v; - T x[elems_per_thread]; // supported size 1,2,4 - }; - typedef struct Float_n_t - { - T x[elems_per_thread]; // supported size 1,2,4 - } float_n_t; - - __shared__ float_n_t sq[block_sz]; - - extern __shared__ float logits[]; // use to store the logits from [0~step] - - const int tid = threadIdx.x; - const int warp_num = block_sz / WARP_SIZE; - const int bid = blockIdx.x; - const int head_id = blockIdx.x % head_num; - const int warp_id = tid / WARP_SIZE; // warp_id in block - const int lane_id = tid % WARP_SIZE; // lane_id in warp - - typedef cub::BlockReduce MaxValBlockReduce; - typedef cub::BlockReduce BlockReduce; - __shared__ typename MaxValBlockReduce::TempStorage max_val_block_temp_storage; - __shared__ typename BlockReduce::TempStorage block_temp_storage; - __shared__ typename cub::WarpReduce::TempStorage temp_storage[warp_num]; - - int qkv_id = bid * size_per_head; - int qkv_bias_id = head_id * size_per_head; - - query_buf = &query_buf[qkv_id]; - key_buf = &key_buf[qkv_id]; - value_buf = &value_buf[qkv_id]; - self_K_bias = &self_K_bias[qkv_bias_id]; - key_cache = &key_cache[qkv_id]; - self_Q_bias = &self_Q_bias[qkv_bias_id]; - self_V_bias = &self_V_bias[qkv_bias_id]; - value_cache = &value_cache[qkv_id]; - context_buf = &context_buf[qkv_id]; - - Access_t bias_r, query_buf_r; - Access_t key_val_r, key_buf_r; - Access_t value_val_r, value_buf_r; - - // each warp will have its own copy of sq - query_buf_r.v = *((copy_t *)query_buf + lane_id); - key_buf_r.v = *((copy_t *)key_buf + lane_id); - bias_r.v = *((copy_t *)self_Q_bias + lane_id); - float qb_r[elems_per_thread]; - for (int i = 0; i < elems_per_thread; ++i) - { - qb_r[i] = (float)query_buf_r.x[i] + (float)bias_r.x[i]; - } - - //offset for each step - int offset = batch_size * head_num * size_per_head; - bias_r.v = *((copy_t *) self_K_bias + lane_id); - for(int ite = warp_id; ite < step; ite += warp_num) - { - key_val_r.v = *((copy_t *)&key_cache[ite * offset] + lane_id); - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1) - { - for (int i = 0; i < elems_per_thread; i++) - { - key_val_r.x[i] = (float)key_buf_r.x[i] + (float)bias_r.x[i]; - } - *((copy_t *)&key_cache[ite * offset] + lane_id) = key_val_r.v; - } - float val = 0.f; - for (int i = 0; i < elems_per_thread; i++) - { - val = val + (float)key_val_r.x[i] * qb_r[i] * (float)scalar; - } - float qk = cub::WarpReduce(temp_storage[warp_id]).Sum(val); - if (lane_id == 0) - { - logits[ite] = qk; - } - } - __syncthreads(); - - __shared__ float s_max_val, s_sum; - - float local_i = -1e20f; - for(int i = tid; i < step; i += blockDim.x) - local_i = max(local_i, logits[i]); - - float max_val = MaxValBlockReduce(max_val_block_temp_storage).Reduce(local_i, cub::Max()); - if(tid == 0) - s_max_val = max_val; - __syncthreads(); - - - float local_o = 0.0f; - for(int i = tid; i < step; i += blockDim.x) - { - logits[i] = __expf(logits[i] - s_max_val); - local_o += logits[i]; - } - float val = BlockReduce(block_temp_storage).Sum(local_o); - - if(tid == 0) - s_sum = val + 1e-6; - __syncthreads(); - - float s_sum_inverse = __fdividef(1.0f, s_sum); - for(int i = tid; i < step; i += blockDim.x) - { - logits[i] = logits[i] * s_sum_inverse; - } - __syncthreads(); - - // This optimization introduces discrepancy because of different order in FP32 summation - float sum_r[elems_per_thread] = {0.f}; - bias_r.v = *((copy_t *) self_V_bias + lane_id); - value_buf_r.v = *((copy_t *)value_buf + lane_id); - - for(int ite = warp_id; ite < step; ite += warp_num) - { - value_val_r.v = *((copy_t *)&value_cache[ite * offset] + lane_id); - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1) - { - for (int i = 0; i < elems_per_thread; i++) - { - value_val_r.x[i] = (float)value_buf_r.x[i] + (float)bias_r.x[i]; - } - *((copy_t *)&value_cache[ite * offset] + lane_id) = value_val_r.v; - } - for (int i = 0; i < elems_per_thread; ++i) - { - sum_r[i] += (float)value_val_r.x[i] * logits[ite]; - } - } - for (int i = 0; i < elems_per_thread; i++) - { - sq[warp_id * WARP_SIZE + lane_id].x[i] = sum_r[i]; - } - __syncthreads(); - if (warp_id == 0) - { - #pragma unroll - for (int j = 1; j < warp_num; j++) - { - for (int i = 0; i < elems_per_thread; ++i) - { - sum_r[i] = sum_r[i] + (float)sq[j * WARP_SIZE + tid].x[i]; - } - } - } - __syncthreads(); - #pragma unroll - for (int i = 0; i < elems_per_thread; i++) - { - value_val_r.x[i] = sum_r[i]; - } - if (warp_id == 0) - { - *((copy_t *)context_buf + lane_id) = value_val_r.v; - } -} - -// only use for compile -template -__global__ -void masked_attention_kernel_opt_half2( - float* __restrict key_buf, float* __restrict value_buf, - float* __restrict query_buf, const float* __restrict self_Q_bias, - float* __restrict key_cache, const float* __restrict self_K_bias, - float* __restrict value_cache, const float* __restrict self_V_bias, - float* __restrict context_buf, int batch_size, int head_num, const int step, const float scalar) {} - -template -__global__ -void masked_attention_kernel_opt_half2( - half* __restrict key_buf, half* __restrict value_buf, - half* __restrict query_buf, const half* __restrict self_Q_bias, - half* __restrict key_cache, const half* __restrict self_K_bias, - half* __restrict value_cache, const half* __restrict self_V_bias, - half* __restrict context_buf, int batch_size, int head_num, const int step, const half scalar) -{ - half2* key_buf_ptr = (half2*)key_buf; - half2* value_buf_ptr = (half2*)value_buf; - half2* query_buf_ptr = (half2*)query_buf; - half2* key_cache_ptr = (half2*)key_cache; - half2* value_cache_ptr = (half2*)value_cache; - const half2* self_Q_bias_ptr = (const half2*)self_Q_bias; - const half2* self_K_bias_ptr = (const half2*)self_K_bias; - const half2* self_V_bias_ptr = (const half2*)self_V_bias; - half2* context_buf_ptr = (half2*)context_buf; - - typedef Copy_t copy_t; - const int elems_per_thread = size_per_head / 2 / WARP_SIZE; - - union Access_t - { - copy_t v; - half2 x[elems_per_thread]; // supported size 1,2,4 - }; - typedef struct Half_n_t - { - half2 x[elems_per_thread]; // supported size 1,2,4 - } half_n_t; - - __shared__ half_n_t sq[block_sz]; - - extern __shared__ float logits[]; // use to store the logits from [0~step] - - const int tid = threadIdx.x; - const int warp_num = block_sz / WARP_SIZE; - const int bid = blockIdx.x; - const int head_id = blockIdx.x % head_num; - const int warp_id = tid / WARP_SIZE; // warp_id in block - const int lane_id = tid % WARP_SIZE; // lane_id in warp - - typedef cub::BlockReduce MaxValBlockReduce; - typedef cub::BlockReduce BlockReduce; - __shared__ typename MaxValBlockReduce::TempStorage max_val_block_temp_storage; - __shared__ typename BlockReduce::TempStorage block_temp_storage; - __shared__ typename cub::WarpReduce::TempStorage temp_storage[warp_num]; - - int qkv_id = bid * size_per_head / 2; - int qkv_bias_id = head_id * size_per_head / 2; - - query_buf_ptr = &query_buf_ptr[qkv_id]; - key_buf_ptr = &key_buf_ptr[qkv_id]; - value_buf_ptr = &value_buf_ptr[qkv_id]; - self_K_bias_ptr = &self_K_bias_ptr[qkv_bias_id]; - key_cache_ptr = &key_cache_ptr[qkv_id]; - self_Q_bias_ptr = &self_Q_bias_ptr[qkv_bias_id]; - self_V_bias_ptr = &self_V_bias_ptr[qkv_bias_id]; - value_cache_ptr = &value_cache_ptr[qkv_id]; - context_buf_ptr = &context_buf_ptr[qkv_id]; - - Access_t bias_r, query_buf_r; - Access_t key_val_r, key_buf_r; - Access_t value_val_r, value_buf_r; - - // each warp will have its own copy of sq - query_buf_r.v = *((copy_t *)query_buf_ptr + lane_id); - key_buf_r.v = *((copy_t *)key_buf_ptr + lane_id); - bias_r.v = *((copy_t *)self_Q_bias_ptr + lane_id); - half2 qb_r[elems_per_thread]; - for (int i = 0; i < elems_per_thread; ++i) - { - qb_r[i] = __hadd2(query_buf_r.x[i], bias_r.x[i]); - } - - //offset for each step - int offset = batch_size * head_num * size_per_head / 2; - bias_r.v = *((copy_t *) self_K_bias + lane_id); - for(int ite = warp_id; ite < step; ite += warp_num) - { - key_val_r.v = *((copy_t *)&key_cache_ptr[ite * offset] + lane_id); - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1) - { - for (int i = 0; i < elems_per_thread; i++) - { - key_val_r.x[i] = __hadd2(key_buf_r.x[i], bias_r.x[i]); - } - *((copy_t *)&key_cache_ptr[ite * offset] + lane_id) = key_val_r.v; - } - float val = 0.f; - for (int i = 0; i < elems_per_thread; i++) - { - half2 val2 = __hmul2(key_val_r.x[i], qb_r[i]); - val = val + (float)((val2.x + val2.y) * scalar); - } - float qk = cub::WarpReduce(temp_storage[warp_id]).Sum(val); - if (lane_id == 0) - { - logits[ite] = qk; - } - } - __syncthreads(); - - __shared__ float s_max_val, s_sum; - float local_i = -1e20f; - for(int i = tid; i < step; i += blockDim.x) - local_i = max(local_i, logits[i]); - - float max_val = MaxValBlockReduce(max_val_block_temp_storage).Reduce(local_i, cub::Max()); - if(tid == 0) - s_max_val = max_val; - __syncthreads(); - - float local_o = 0.0f; - for(int i = tid; i < step; i += blockDim.x) - { - logits[i] = __expf(logits[i] - s_max_val); - local_o += logits[i]; - } - float val = BlockReduce(block_temp_storage).Sum(local_o); - - if(tid == 0) - s_sum = val + 1e-6; - __syncthreads(); - - float s_sum_inverse = __fdividef(1.0f, s_sum); - for(int i = tid; i < step; i += blockDim.x) - { - logits[i] = logits[i] * s_sum_inverse; - } - __syncthreads(); - - // This optimization introduces discrepancy because of different order in FP32 summation - half2 sum_r[elems_per_thread]; - for(int i = 0; i < elems_per_thread; i++) - { - sum_r[i].x = (half)0.f; - sum_r[i].y = (half)0.f; - } - bias_r.v = *((copy_t *) self_V_bias_ptr + lane_id); - value_buf_r.v = *((copy_t *)value_buf_ptr + lane_id); - - for(int ite = warp_id; ite < step; ite += warp_num) - { - value_val_r.v = *((copy_t *)&value_cache_ptr[ite * offset] + lane_id); - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1) - { - for (int i = 0; i < elems_per_thread; i++) - { - value_val_r.x[i] = __hadd2(value_buf_r.x[i], bias_r.x[i]); - } - *((copy_t *)&value_cache_ptr[ite * offset] + lane_id) = value_val_r.v; - } - for (int i = 0; i < elems_per_thread; ++i) - { - half2 logit2_val; - logit2_val.x = (half)logits[ite]; - logit2_val.y = (half)logits[ite]; - sum_r[i] = __hadd2(sum_r[i], __hmul2(value_val_r.x[i], logit2_val)); - } - } - for (int i = 0; i < elems_per_thread; i++) - { - sq[warp_id * WARP_SIZE + lane_id].x[i] = sum_r[i]; - } - __syncthreads(); - if (warp_id == 0) - { - #pragma unroll - for (int j = 1; j < warp_num; j++) - { - for (int i = 0; i < elems_per_thread; ++i) - { - sum_r[i] = __hadd2(sum_r[i], sq[j * WARP_SIZE + tid].x[i]); - } - } - } - __syncthreads(); - #pragma unroll - for (int i = 0; i < elems_per_thread; i++) - { - value_val_r.x[i] = sum_r[i]; - } - if (warp_id == 0) - { - *((copy_t *)context_buf_ptr + lane_id) = value_val_r.v; - } -} - -template -__global__ -void masked_attention_kernel( - T* key_buf, T* value_buf, - T* query_buf, const T* self_Q_bias, - T* key_cache, const T* self_K_bias, T* value_cache, const T* self_V_bias, - T* context_buf, int batch_size, int head_num, int size_per_head, const int step, const T scalar) -{ - extern __shared__ __align__(sizeof(T)) unsigned s_buf[]; - T* sq = reinterpret_cast(s_buf); - T* logits = reinterpret_cast(&sq[size_per_head]); - - int tid = threadIdx.x; - int bid = blockIdx.x / head_num; - int head_id = blockIdx.x % head_num; - - int qkv_id = bid * head_num * size_per_head + head_id * size_per_head + tid; - int qkv_bias_id = head_id * size_per_head + tid; - - if(tid < size_per_head) - sq[tid] = query_buf[qkv_id] + self_Q_bias[qkv_bias_id]; - __syncthreads(); - - //offset for each step - int offset = batch_size * head_num * size_per_head; - for(int ite = 0; ite < step; ++ite) - { - T key = tid < size_per_head ? key_cache[ite * offset + qkv_id] : (T)0.0f; - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1 && tid < size_per_head) - { - key = key_buf[qkv_id] + self_K_bias[qkv_bias_id]; - key_cache[ite * offset + qkv_id] = key; - } - - T val = (tid < size_per_head) ? key * sq[tid] * scalar : (T)(0.0f); - T qk = blockReduceSum(val); - if(threadIdx.x == 0) - logits[ite] = qk; - __syncthreads(); //try to remove - } - __syncthreads(); //try to remove - - __shared__ float s_max_val, s_sum; - float local_i = tid < step ? (float)logits[tid] : -1e20f; - float max_val = blockReduceMax(local_i); - if(tid == 0) - s_max_val = max_val; - __syncthreads(); - - local_i -= s_max_val; - float local_o = tid < step ? __expf(local_i) : 0.0f; - float val = blockReduceSum(local_o); - - if(tid == 0) - s_sum = val + 1e-6; - __syncthreads(); - - if(tid < step) - logits[tid] = local_o / s_sum; - __syncthreads(); - - if(tid < size_per_head) - { - T sum = (T)0.0f; - for(int ite = 0; ite < step; ++ite) - { - T value = value_cache[ite * offset + qkv_id]; - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1) - { - value = value_buf[qkv_id] + self_V_bias[qkv_bias_id]; - value_cache[ite * offset + qkv_id] = value; - } - sum += value * logits[ite]; - } - context_buf[qkv_id] = sum; - } -} - -template -__global__ -void masked_attention_kernel_v2(T* query_buf, const T* self_Q_bias, - T* key_cache, const T* self_K_bias, T* value_cache, const T* self_V_bias, - T* context_buf, int batch_size, int head_num, int size_per_head, const int step, const T scalar) -{ - extern __shared__ __align__(sizeof(T)) unsigned s_buf[]; - T* sq = reinterpret_cast(s_buf); - T* logits = reinterpret_cast(&sq[size_per_head]); - - int tid = threadIdx.x; - int bid = blockIdx.x / head_num; - int head_id = blockIdx.x % head_num; - - int qkv_id = bid * head_num * size_per_head + head_id * size_per_head + tid; - int qkv_bias_id = head_id * size_per_head + tid; - - if(tid < size_per_head) - sq[tid] = query_buf[qkv_id] + self_Q_bias[qkv_bias_id]; - __syncthreads(); - - int warp_size = 32; - int offset = batch_size * head_num * size_per_head; - int warp_ite = size_per_head / warp_size; - - T qk = (T)0.0f; - - //each warp process one step - int step_id = threadIdx.x >> 5; - if(step_id < step) - { - for(int wite = 0; wite < warp_ite; ++wite) - { - T key = key_cache[step_id * offset + bid * head_num * size_per_head + head_id * size_per_head - + tid % warp_size + wite * warp_size]; - //for the last step, we should update K + bias_K to the cache - if(step_id == step - 1) - { - key += self_K_bias[bid * head_num * size_per_head + head_id * size_per_head + - tid % warp_size + wite * warp_size]; - key_cache[step_id * offset + bid * head_num * size_per_head + head_id * size_per_head - + tid % warp_size + wite * warp_size] = key; - } - qk += key * sq[tid % warp_size + wite * warp_size]; - } - - qk = warpReduceSum(qk * scalar); - if(threadIdx.x % warp_size == 0) - { - logits[step_id] = qk; - printf("step_id %d %f\n", step_id, qk); - } - - } - __syncthreads(); - - __shared__ float s_max_val, s_sum; - float local_i = tid < step ? (float)logits[tid] : -1e20f; - float max_val = blockReduceMax(local_i); - if(tid == 0) - s_max_val = max_val; - __syncthreads(); - - local_i -= s_max_val; - float local_o = tid < step ? __expf(local_i) : 0.0f; - float val = blockReduceSum(local_o); - - if(tid == 0) - s_sum = val; - __syncthreads(); - if(tid < step) - logits[tid] = local_o / s_sum; - __syncthreads(); - - - if(tid < size_per_head) - { - T sum = (T)0.0f; - for(int ite = 0; ite < step; ++ite) - { - T value = value_cache[ite * offset + qkv_id]; - //for the last step, we should update K + bias_K to the cache - if(ite == step - 1) - { - value += self_V_bias[qkv_bias_id]; - value_cache[ite * offset + qkv_id] = value; - } - sum += value * logits[ite]; - } - context_buf[qkv_id] = sum; - } -} - -template -void masked_attention_dispatch( - T* key_buf, T* value_buf, - T* query_buf, const T* self_Q_bias, - T* key_cache, const T* self_K_bias, T* value_cache, const T* self_V_bias, - T* context_buf, int batch_size, int head_num, int size_per_head, const int step, cudaStream_t stream) - { - const int block_sz = ATTENTION_BLOCK_SIZE; - T scalar = (T)(1.f / sqrtf(size_per_head * 1.0f)); - - dim3 grid(batch_size * head_num); - - int cond = size_per_head * ((ATTENION_OPT)? 1:0); - switch (cond) - { - case 32: - masked_attention_kernel_opt<32, block_sz, T><<>>( - key_buf, value_buf, - query_buf, self_Q_bias, key_cache, self_K_bias, value_cache, self_V_bias, context_buf, - batch_size, head_num, step, scalar); - break; - case 64: - if(sizeof(T) == 2) - masked_attention_kernel_opt_half2<64, block_sz><<>>( - key_buf, value_buf, - query_buf, self_Q_bias, key_cache, self_K_bias, value_cache, self_V_bias, context_buf, - batch_size, head_num, step, scalar); - else - masked_attention_kernel_opt<64, block_sz, T><<>>( - key_buf, value_buf, - query_buf, self_Q_bias, - key_cache, self_K_bias, - value_cache, self_V_bias, - context_buf, - batch_size, head_num, step, scalar); - break; - case 128: - if(sizeof(T) == 2) - masked_attention_kernel_opt_half2<128, block_sz><<>>( - key_buf, value_buf, - query_buf, self_Q_bias, key_cache, self_K_bias, value_cache, self_V_bias, context_buf, - batch_size, head_num, step, scalar); - else - masked_attention_kernel_opt<128, block_sz, T><<>>( - key_buf, value_buf, - query_buf, self_Q_bias, key_cache, self_K_bias, value_cache, self_V_bias, context_buf, - batch_size, head_num, step, scalar); - break; - default: - // default path - int block_size = 128; - - //suppose size_per_head <= 128 - if(step <= 64) - block_size = 64; - else if(step <= 128 && step > size_per_head) - block_size = 128; - else if(step > 128 && step <= 256) - block_size = 256; - else if(step > 256 && step <= 512) - block_size = 512; - else - block_size = 1024; - - if((int)block_size < size_per_head) - block_size = size_per_head; - - assert(block_size <= 1024); - dim3 block(block_size); - T scalar = 1 / sqrtf(size_per_head * 1.0f); - - - int shared_size = sizeof(T) * (size_per_head + step); - masked_attention_kernel<<>>( - key_buf, value_buf, - query_buf, self_Q_bias, - key_cache, self_K_bias, - value_cache, self_V_bias, - context_buf, batch_size, - head_num, size_per_head, step, scalar); - } - } - -template -void OpenDecoder::masked_multi_head_attention( - const DataType_* from_tensor, - DataType_* key_cache_, - DataType_* value_cache_, - DataType_* decoder_output, - const int step) -{ - int m = batch_size_; - int n = hidden_units_; - int k = hidden_units_; - - DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; - - if(is_fuse_QKV == true) - { - check_cuda_error(cublasGemmBatchedEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - (const void* const*) qkv_kernel_, AType_, n, - (const void* const*) qkv_input_, BType_, k, - &beta, - (void* const*)qkv_buf_, CType_, n, - 3, - computeType_, - static_cast(cublasAlgo_[4]))); - } - else - { - key_buf_ = key_cache_ + (step - 1) * m * n; - value_buf_ = value_cache_ + (step - 1) * m * n; - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.query_weight.kernel , AType_, n, - from_tensor, BType_, k, - &beta, - query_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.key_weight.kernel, AType_, n, - from_tensor, BType_, k, - &beta, - key_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.value_weight.kernel, AType_, n, - from_tensor, BType_, k, - &beta, - value_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); - } - - masked_attention_dispatch( - key_buf_, value_buf_, - query_buf_, param_.self_attention.query_weight.bias, - key_cache_, param_.self_attention.key_weight.bias, - value_cache_, param_.self_attention.value_weight.bias, - context_buf_, batch_size_, - head_num_, size_per_head_, step, param_.stream); - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.self_attention.attention_output_weight.kernel, AType_, n, - context_buf_, BType_, k, - &beta, - decoder_output, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); -} - -template -__global__ -void cross_attention_kernel_opt( - T* __restrict query_buf, const T* __restrict Q_bias, - T* __restrict key_cache, const T* __restrict K_bias, - T* __restrict value_cache, const T* __restrict V_bias, - const int* length_per_sample, T* __restrict context_buf, - int batch_size, int head_num, const int step, const int seq_len, const float scalar) -{ - typedef Copy_t copy_t; - const int elems_per_thread = size_per_head / WARP_SIZE; - union Access_t - { - copy_t v; - T x[elems_per_thread]; // supported size 1,2,4 - }; - typedef struct Float_n_t - { - float x[elems_per_thread]; // supported size 1,2,4 - } float_n_t; - - __shared__ float_n_t sq[block_sz]; - extern __shared__ float logits[]; // use to store the logits from [0~step] - - const int warp_id = threadIdx.x / WARP_SIZE; - const int warp_num = block_sz / WARP_SIZE; - - typedef cub::BlockReduce MaxValBlockReduce; - typedef cub::BlockReduce BlockReduce; - __shared__ typename MaxValBlockReduce::TempStorage max_val_block_temp_storage; - __shared__ typename BlockReduce::TempStorage block_temp_storage; - - __shared__ typename cub::WarpReduce::TempStorage temp_storage[warp_num]; - - const int tid = threadIdx.x; - const int bid = blockIdx.x / head_num; - const int head_id = blockIdx.x % head_num; - - int length = __ldg(&length_per_sample[bid]); - - const int lane_id = tid % WARP_SIZE; - - int qkv_id = bid * head_num * size_per_head + head_id * size_per_head; - int qkv_bias_id = head_id * size_per_head; - - int key_value_id = bid * (seq_len * head_num * size_per_head) + - + head_id * size_per_head; - - query_buf = &query_buf[qkv_id]; - K_bias = &K_bias[qkv_bias_id]; - key_cache = &key_cache[key_value_id]; - Q_bias = &Q_bias[qkv_bias_id]; - V_bias = &V_bias[qkv_bias_id]; - value_cache = &value_cache[key_value_id]; - context_buf = &context_buf[qkv_id]; - - Access_t bias_r, key_val_r, query_buf_r; - - // each warp will have its own copy of sq - query_buf_r.v = *((copy_t *)query_buf + lane_id); - bias_r.v = *((copy_t *)Q_bias + lane_id); - float qb_r[elems_per_thread]; - for (int i = 0; i < elems_per_thread; ++i) - { - qb_r[i] = (float)query_buf_r.x[i] + (float)bias_r.x[i]; - } - - //offset for each step - int offset = head_num * size_per_head; - - bias_r.v = *((copy_t *) K_bias + lane_id); - for(int ite = warp_id; ite < length; ite += warp_num) - { - key_val_r.v = *((copy_t *)&key_cache[ite * offset] + lane_id); - - //For the first step, we should add bias to key memory cache. - //The KV memory cache only need to be updated at the first step. - if (step == 1) - { - for (int i = 0; i < elems_per_thread; i++) - { - key_val_r.x[i] = (float)key_val_r.x[i] + (float)bias_r.x[i]; - } - *((copy_t *)&key_cache[ite * offset] + lane_id) = key_val_r.v; - } - float val = 0.f; - for (int i = 0; i < elems_per_thread; i++) - { - val = val + (float)key_val_r.x[i] * qb_r[i] * scalar; - } - float qk = cub::WarpReduce(temp_storage[warp_id]).Sum(val); - if (lane_id == 0) - { - logits[ite] = qk; - } - } - __syncthreads(); - - __shared__ float s_max_val, s_sum; - float local_i = -1e20f; - for(int i = tid; i < length; i += blockDim.x) - local_i = max(local_i, logits[i]); - - float max_val = MaxValBlockReduce(max_val_block_temp_storage).Reduce(local_i, cub::Max()); - if(tid == 0) - s_max_val = max_val; - __syncthreads(); - - float local_o = 0.0f; - for(int i = tid; i < length; i += blockDim.x) - { - logits[i] = __expf(logits[i] - s_max_val); - local_o += logits[i]; - } - float val = BlockReduce(block_temp_storage).Sum(local_o); - - if(tid == 0) - s_sum = val + 1e-6; - __syncthreads(); - - float s_sum_inverse = __fdividef(1.0f, s_sum); - for(int i = tid; i < length; i += blockDim.x) - { - logits[i] = logits[i] * s_sum_inverse; - } - __syncthreads(); - - // This optimization introduces discrepancy because of different order in FP32 summation - float sum_r[elems_per_thread] = {0.f}; - bias_r.v = *((copy_t *) V_bias + lane_id); - for(int ite = warp_id; ite < length; ite += warp_num) - { - key_val_r.v = *((copy_t *)&value_cache[ite * offset] + lane_id); - - //For the first step, we should add bias to key memory cache. - if(step == 1) - { - for (int i = 0; i < elems_per_thread; i++) - { - key_val_r.x[i] = (float)key_val_r.x[i] + (float)bias_r.x[i]; - } - *((copy_t *)&value_cache[ite * offset] + lane_id) = key_val_r.v; - } - for (int i = 0; i < elems_per_thread; ++i) - { - sum_r[i] += (float)key_val_r.x[i] * logits[ite]; - } - } - for (int i = 0; i < elems_per_thread; i++) - { - sq[warp_id * WARP_SIZE + lane_id].x[i] = sum_r[i]; - } - __syncthreads(); - if (threadIdx.x < WARP_SIZE) - { - #pragma unroll - for (int j = 1; j < warp_num; j++) - { - for (int i = 0; i < elems_per_thread; ++i) - { - sum_r[i] = sum_r[i] + (float)sq[j * WARP_SIZE + threadIdx.x].x[i]; - } - } - } - __syncthreads(); - #pragma unroll - for (int i = 0; i < elems_per_thread; i++) - { - key_val_r.x[i] = sum_r[i]; - } - if (threadIdx.x < WARP_SIZE) - { - *((copy_t *)context_buf + lane_id) = key_val_r.v; - } -} - -template -__global__ -void cross_attention_kernel( - T* query_buf, const T* Q_bias, - T* key_cache, const T* K_bias, - T* value_cache, const T* V_bias, - const int* length_per_sample, T* context_buf, - int batch_size, int head_num, int size_per_head, int step, const int seq_len, const T scalar) -{ - int tid = threadIdx.x; - int bid = blockIdx.x / head_num; - int head_id = blockIdx.x % head_num; - - extern __shared__ __align__(sizeof(T)) unsigned s_buf[]; - T* sq = reinterpret_cast(s_buf); - T* logits = reinterpret_cast(&sq[size_per_head]); - - int length = __ldg(&length_per_sample[bid]); - - int qkv_id = bid * head_num * size_per_head + head_id * size_per_head + tid; - int qkv_bias_id = head_id * size_per_head + tid; - - if(tid < size_per_head) - sq[tid] = query_buf[qkv_id] + Q_bias[qkv_bias_id]; - __syncthreads(); - - for(int ite = 0; ite < length; ++ite) - { - int key_id = bid * (seq_len * head_num * size_per_head) + ite * (head_num * size_per_head) - + head_id * size_per_head + tid; - - T key = tid < size_per_head ? key_cache[key_id] : (T)(0.0f); - - //For the first step, we should add bias to key memory cache. - //The KV memory cache only need to be updated at the first step. - if(step == 1 && tid < size_per_head) - { - key += K_bias[head_id * size_per_head + tid]; - key_cache[key_id] = key; - } - - T val = (tid < size_per_head) ? key * sq[tid] * scalar : (T)(0.0f); - T qk = blockReduceSum(val); - if(threadIdx.x == 0) - logits[ite] = qk; - __syncthreads(); //try to remove - } - __syncthreads(); - - __shared__ float s_max_val, s_sum; - - float local_i = tid < length ? (float)logits[tid] : -1e20f; - float max_val = blockReduceMax(local_i); - if(tid == 0) - s_max_val = max_val; - __syncthreads(); - - local_i -= s_max_val; - float local_o = tid < length ? __expf(local_i) : 0.0f; - float val = blockReduceSum(local_o); - - if(tid == 0) - s_sum = val + 1e-6; - __syncthreads(); - if(tid < length) - logits[tid] = local_o / s_sum; - __syncthreads(); - - if(tid < size_per_head) - { - T sum = (T)0.0f; - for(int ite = 0; ite < length; ++ite) - { - int value_id = bid * seq_len * head_num * size_per_head + ite * head_num * size_per_head - + head_id * size_per_head + tid; - - T value = value_cache[value_id]; - - //for the first step, we should add bias to key memory cache - if(step == 1) - { - value += V_bias[head_id * size_per_head + tid]; - value_cache[value_id] = value; - } - sum += value * logits[ite]; - } - context_buf[bid * head_num * size_per_head + head_id * size_per_head + tid] = sum; - } -} - -template -void cross_attention_dispatch(T* query_buf, const T* Q_bias, - T* key_cache, const T* K_bias, T* value_cache, const T* V_bias, const int* length, - T* context_buf, int batch_size, int head_num, int size_per_head, int step, int seq_len, cudaStream_t stream) - { - const int block_sz = ATTENTION_BLOCK_SIZE; - float scalar = 1.f / sqrtf(size_per_head * 1.0f); - - dim3 grid(batch_size * head_num); - - int cond = size_per_head * ((ATTENION_OPT)? 1:0); - switch (cond) - { - case 32: - cross_attention_kernel_opt<<>>( - query_buf, Q_bias, key_cache, K_bias, value_cache, V_bias, length, context_buf, - batch_size, head_num, step, seq_len, scalar); - break; - case 64: - cross_attention_kernel_opt<<>>( - query_buf, Q_bias, key_cache, K_bias, value_cache, V_bias, length, context_buf, - batch_size, head_num, step, seq_len, scalar); - break; - case 128: - cross_attention_kernel_opt<<>>( - query_buf, Q_bias, key_cache, K_bias, value_cache, V_bias, length, context_buf, - batch_size, head_num, step, seq_len, scalar); - break; - default: - // default path - - int block_size = 128; - - if(seq_len <= 64) - block_size = 64; - else if(seq_len <= 128 && seq_len > size_per_head) - block_size = 128; - else if(seq_len > 128 && seq_len <= 256) - block_size = 256; - else if(seq_len > 256 && seq_len <= 512) - block_size = 512; - else - block_size = 1024; - - if(block_size < size_per_head) - block_size = size_per_head; - - assert(block_size <= 1024); - dim3 block(block_size); - - int shared_size = sizeof(T) * (size_per_head + seq_len); - cross_attention_kernel<<>>( - query_buf, Q_bias, - key_cache, K_bias, - value_cache, V_bias, - length, context_buf, - batch_size, - head_num, size_per_head, step, seq_len, scalar); - } - } - -/* attention with source sentence */ -template -void OpenDecoder::cross_multi_head_attention( - const DataType_* from_tensor, - const DataType_* memory_tensor, - DataType_* key_mem_cache, - DataType_* value_mem_cache, - DataType_* decoder_output, - const int* length, - const int seq_len, - const int step) -{ - int m = batch_size_; - int n = hidden_units_; - int k = hidden_units_; - - DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; - - //reuse the query_buf - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.cross_attention.query_weight.kernel, AType_, n, - from_tensor, BType_, k, - &beta, - query_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); - - if(step == 1) - { - m *= seq_len; - k = memory_hidden_units_; - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.cross_attention.key_weight.kernel, AType_, n, - memory_tensor, BType_, k, - &beta, - key_mem_cache, CType_, n, - computeType_, - static_cast(cublasAlgo_[1]))); - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.cross_attention.value_weight.kernel, AType_, n, - memory_tensor, BType_, k, - &beta, - value_mem_cache, CType_, n, - computeType_, - static_cast(cublasAlgo_[1]))); - k = hidden_units_; - } - - cross_attention_dispatch( - query_buf_, param_.cross_attention.query_weight.bias, - key_mem_cache, param_.cross_attention.key_weight.bias, - value_mem_cache, param_.cross_attention.value_weight.bias, - length, context_buf_, batch_size_, - head_num_, size_per_head_, step, seq_len, param_.stream); - - m = batch_size_; - n = head_num_ * size_per_head_; - k = n; - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - param_.cross_attention.attention_output_weight.kernel, AType_, n, - context_buf_, BType_, k, - &beta, - decoder_output, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); -} - -template -__global__ -void decoder_norm1_kernel_generalize(const T* __restrict input, - const T* __restrict gamma, - const T* __restrict beta, - T* output, - int m, int n) -{ - const int tid = threadIdx.x; - - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - - float local_sum = 0.0f; - for(int i = tid; i < n; i+= blockDim.x) - { - local_sum += (float)(__ldg(&input[blockIdx.x * n + i])); - } - - mean = blockReduceSum(local_sum); - - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - float local_var_sum = 0.0f; - for(int i = tid; i < n; i+= blockDim.x) - { - float diff = (float)(__ldg(&input[blockIdx.x * n + i])) - s_mean; - local_var_sum += diff * diff; - } - variance = blockReduceSum(local_var_sum); - - if(threadIdx.x == 0) - s_variance = rsqrtf(variance / n + 1e-6); - - __syncthreads(); - - for(int i = tid; i < n; i+= blockDim.x) - { - output[blockIdx.x * n + i] = - (T)((( (float)input[blockIdx.x * n + i] - s_mean) * s_variance) * (float)(__ldg(&gamma[i])) + (float)(__ldg(&beta[i]))); - } -} - -template -__global__ -void decoder_norm1_kernel(const T* __restrict input, - const T* __restrict gamma, - const T* __restrict beta, - T* output, - int m, int n) -{ - int tid = threadIdx.x; - - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - - float local_out = tid < n ? (float)(__ldg(&input[blockIdx.x * n + tid])) : 0.0f; - - mean = blockReduceSum(local_out); - - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - variance = blockReduceSum(tid < n ? (local_out - s_mean) * (local_out - s_mean) : 0.0f); - - if(threadIdx.x == 0) - s_variance = rsqrtf(variance / n + 1e-6); - - __syncthreads(); - - if(tid < n) - output[blockIdx.x * n + tid] = - (T)(((local_out - s_mean) * s_variance) * (float)(__ldg(&gamma[tid])) + (float)(__ldg(&beta[tid]))); -} - -template <> -__global__ -void decoder_norm1_kernel(const half* __restrict input, - const half* __restrict gamma, - const half* __restrict beta, - half* output, - int m, int n) -{ - const int tid = threadIdx.x; - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - float2 local_out_fp2; - - const half2* input_ptr = (const half2*)input; - const half2* gamma_ptr = (const half2*)gamma; - const half2* beta_ptr = (const half2*)beta; - half2* output_ptr = (half2*)output; - - float local_out = 0.0f; - int id = blockIdx.x * blockDim.x + tid; - if(tid < blockDim.x) - { - local_out_fp2 = __half22float2(__ldg(&input_ptr[id])); - local_out += local_out_fp2.x; - local_out += local_out_fp2.y; - } - - mean = blockReduceSum(local_out); - if(tid == 0) - s_mean = mean / n; - __syncthreads(); - - variance = blockReduceSum(tid < blockDim.x ? - (local_out_fp2.x - s_mean) * (local_out_fp2.x - s_mean) + (local_out_fp2.y - s_mean) * (local_out_fp2.y - s_mean) - : 0.0f); - if(tid == 0) - s_variance = rsqrtf(variance / n + 1e-6); - __syncthreads(); - - if(tid < blockDim.x) - { - float2 gamma_val = __half22float2(__ldg(&gamma_ptr[tid])); - float2 beta_val = __half22float2(__ldg(&beta_ptr[tid])); - local_out_fp2.x = (local_out_fp2.x - s_mean) * s_variance * gamma_val.x + beta_val.x; - local_out_fp2.y = (local_out_fp2.y - s_mean) * s_variance * gamma_val.y + beta_val.y; - output_ptr[id] = __float22half2_rn(local_out_fp2); - } -} - -template -__global__ -void decoder_norm2_kernel_generalize(const T* __restrict input, - const T* __restrict gamma, - const T* __restrict beta, - const T* __restrict bias, - T* output, T* norm_output, - int m, int n) -{ - int tid = threadIdx.x; - - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - - float local_sum = 0.0f; - for(int i = tid; i < n; i+= blockDim.x) - { - float local_out = (float)(__ldg(&input[blockIdx.x * n + i])); - local_out += (float)(output[blockIdx.x * n + i]); - local_out += (float)(__ldg(&bias[i])); - output[blockIdx.x * n + i] = (T)local_out; - local_sum += local_out; - } - - mean = blockReduceSum(local_sum); - - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - float local_var_sum = 0.0f; - for(int i = tid; i < n; i+= blockDim.x) - { - float diff = (float)(__ldg(&output[blockIdx.x * n + i])) - s_mean; - local_var_sum += diff * diff; - } - variance = blockReduceSum(local_var_sum); - - if(threadIdx.x == 0) - s_variance = rsqrtf(variance / n + 1e-6); - __syncthreads(); - - for(int i = tid; i < n; i+= blockDim.x) - { - norm_output[blockIdx.x * n + i] = - (T)((( (float)output[blockIdx.x * n + i] - s_mean) * s_variance) * (float)(__ldg(&gamma[i])) + (float)(__ldg(&beta[i]))); - } -} - -template -__global__ -void decoder_norm2_kernel(const T* __restrict input, - const T* __restrict gamma, - const T* __restrict beta, - const T* __restrict bias, - T* output, T* norm_output, - int m, int n) -{ - int tid = threadIdx.x; - - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - - float local_out = 0.0f; - if(tid < n) - { - local_out = (float)(__ldg(&input[blockIdx.x * n + tid])); - local_out += (float)(output[blockIdx.x * n + tid]); - local_out += (float)(__ldg(&bias[tid])); - output[blockIdx.x * n + tid] = (T)local_out; - } - - mean = blockReduceSum(local_out); - if(threadIdx.x == 0) - s_mean = mean / n; - __syncthreads(); - - variance = blockReduceSum(tid < n ? (local_out - s_mean) * (local_out - s_mean) : 0.0f); - if(threadIdx.x == 0) - s_variance = rsqrtf(variance / n + 1e-6); - __syncthreads(); - - if(tid < n) - norm_output[blockIdx.x * n + tid] = - (T)((local_out - s_mean) * s_variance * (float)(__ldg(&gamma[tid])) + (float)(__ldg(&beta[tid]))); -} - -template <> -__global__ -void decoder_norm2_kernel(const half* __restrict input, - const half* __restrict gamma, - const half* __restrict beta, - const half* __restrict bias, - half* output, half* norm_output, - int m, int n) -{ - const int tid = threadIdx.x; - __shared__ float s_mean; - __shared__ float s_variance; - float mean = 0.0f; - float variance = 0.0f; - float2 local_out_fp2; - - const half2* input_ptr = (const half2*)input; - const half2* gamma_ptr = (const half2*)gamma; - const half2* beta_ptr = (const half2*)beta; - const half2* bias_ptr = (const half2*)bias; - half2* output_ptr = (half2*)output; - half2* norm_output_ptr = (half2*)norm_output; - - float local_out = 0.0f; - int id = blockIdx.x * blockDim.x + tid; - if(tid < blockDim.x) - { - output_ptr[id] = __hadd2(__hadd2(output_ptr[id], __ldg(&input_ptr[id])), __ldg(&bias_ptr[tid])); - local_out_fp2 = __half22float2(output_ptr[id]); - local_out += local_out_fp2.x; - local_out += local_out_fp2.y; - } - - mean = blockReduceSum(local_out); - if(tid == 0) - s_mean = mean / n; - __syncthreads(); - - variance = blockReduceSum(tid < blockDim.x ? - (local_out_fp2.x - s_mean) * (local_out_fp2.x - s_mean) + (local_out_fp2.y - s_mean) * (local_out_fp2.y - s_mean) - : 0.0f); - if(tid == 0) - s_variance = rsqrtf(variance / n + 1e-6); - __syncthreads(); - - if(tid < blockDim.x) - { - float2 gamma_val = __half22float2(__ldg(&gamma_ptr[tid])); - float2 beta_val = __half22float2(__ldg(&beta_ptr[tid])); - local_out_fp2.x = (local_out_fp2.x - s_mean) * s_variance * gamma_val.x + beta_val.x; - local_out_fp2.y = (local_out_fp2.y - s_mean) * s_variance * gamma_val.y + beta_val.y; - norm_output_ptr[id] = __float22half2_rn(local_out_fp2); - } -} - -template -void OpenDecoder::decoder_norm1( - const DataType_* input, - const DataType_* gamma, - const DataType_* beta, - DataType_* output, - int m, int n) -{ - dim3 grid(m); - dim3 block(min(n, 1024)); - - /* For general cases, n is equal to hidden_units, e.g., 512/1024. - Since we have warp shuffle inside the code, block.x % 32 should be 0. - */ - if(n % 32 != 0) - block.x = 1024; - - block.x = block.x / (4 / sizeof(DataType_)); // if using half, only need half of block.x - - /* should pay attention to the rsqrt precision*/ - // assert(block.x <= 1024); - // decoder_norm1_kernel<<>>(input, gamma, beta, output, m, n); - decoder_norm1_kernel_generalize<<>>(input, gamma, beta, output, m, n); // For gpt-3 -} - -template -void OpenDecoder::decoder_norm2( - const DataType_* input, - const DataType_* gamma, - const DataType_* beta, - const DataType_* bias, - DataType_* output, - DataType_* norm_output, - int m, int n) -{ - dim3 grid(m); - dim3 block(min(n, 1024)); - - - /* For general cases, n is equal to hidden_units, e.g., 512/1024. - Since we have warp shuffle inside the code, block.x % 32 should be 0. - */ - - if(n % 32 != 0) - block.x = 1024; - - block.x = block.x / (4 / sizeof(DataType_)); // if using half, only need half of block.x - - /* should pay attention to the rsqrt precision*/ - // assert(block.x <= 1024); - // decoder_norm2_kernel<<>>(input, gamma, beta, bias, output, norm_output, m, n); - decoder_norm2_kernel_generalize<<>>(input, gamma, beta, bias, output, norm_output, m, n); // For gpt-3 -} - -template -void OpenDecoder::ffn( - const DataType_* input, - DataType_* ffn_inner, - DataType_* output, - const int m, - const int inner_size, - const int n, - ActivationType activation_type) -{ - int m1 = m, k1 = n, n1 = inner_size; - DataType_ alpha = (DataType_)1.0f; - DataType_ beta = (DataType_)0.0f; - - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n1, m1, k1, - &alpha, - param_.ffn.intermediate_weight.kernel, AType_, n1, - input, BType_, k1, - &beta, - ffn_inner, CType_, n1, - computeType_, - static_cast(cublasAlgo_[2]))); - - // dim3 grid(min(m1, 65536)); - // dim3 block(min(n1 / 4, 1024)); - - // // TODO remove this limitation - // // assert(block.x <= 1024); - - // if(activation_type == ActivationType::RELU) - // add_bias_relu<<>>(ffn_inner, param_.ffn.intermediate_weight.bias, m1, n1); - // else if(activation_type == ActivationType::GELU) - // add_bias_gelu<<>>(ffn_inner, param_.ffn.intermediate_weight.bias, m1, n1); - - dim3 block(min((int)(n1 / 4 / (4 / sizeof(DataType_))), 1024)); - dim3 grid(min(m1 * n1 / block.x, 65536)); - - if(activation_type == ActivationType::RELU) - add_bias_relu<<>>(ffn_inner, param_.ffn.intermediate_weight.bias, m1, n1 / (4 / sizeof(DataType_))); - else if(activation_type == ActivationType::GELU) - add_bias_gelu<<>>(ffn_inner, param_.ffn.intermediate_weight.bias, m1, n1 / (4 / sizeof(DataType_))); - - - int m2 = m, n2 = n, k2 = inner_size; - check_cuda_error(cublasGemmEx(param_.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n2, m2, k2, - &alpha, - param_.ffn.output_weight.kernel, AType_, n2, - ffn_inner, BType_, k2, - &beta, - output, CType_, n2, - computeType_, - static_cast(cublasAlgo_[3]))); -} - -template -__global__ -void add_bias_input_kernel(T* output, const T* input, const T* bias, const int m, const int n) -{ - // original kernel, which only supports cases of n <= 1024. - int id = blockIdx.x * n + threadIdx.x; - output[id] = output[id] + input[id] + __ldg(&bias[threadIdx.x]); -} - - -template -__global__ -void add_bias_input_kernel_generalize(T* output, const T* input, const T* bias, const int m, const int n) -{ - // TODO For GPT-3 - // This kernel can run with any block size and grid size - // Since the hidden dimension of GPT-3 would be larger than 1024 - const int bid = blockIdx.x; - const int blocks_per_row = n / blockDim.x; - const int col_index = (bid % blocks_per_row) * blockDim.x + threadIdx.x; - T bias_val = __ldg(&bias[col_index]); - for(int index = bid * blockDim.x + threadIdx.x; index < m * n; index += blockDim.x * gridDim.x) - { - output[index] = output[index] + input[index] + bias_val; - } -} - -template -void OpenDecoder::add_bias_input(DataType_* output, const DataType_* input, const int m, const int n) -{ - dim3 grid(min(m, 65536)); - dim3 block(min(n, 1024)); - - add_bias_input_kernel_generalize<<>>(output, input, param_.ffn.output_weight.bias, m, n); -} - -template void OpenDecoder::masked_multi_head_attention( - const float* from_tensor, - float* key_cache, - float* value_cache, - float* decoder_output, - const int step); - -template void OpenDecoder::masked_multi_head_attention( - const half* from_tensor, - half* key_cache, - half* value_cache, - half* decoder_output, - const int step); - -template void OpenDecoder::cross_multi_head_attention( - const float* from_tensor, - const float* memory_tensor, - float* key_mem_cache, - float* value_mem_cache, - float* decoder_output, - const int* length, - const int max_seq_len, - const int step); - -template void OpenDecoder::cross_multi_head_attention( - const half* from_tensor, - const half* memory_tensor, - half* key_mem_cache, - half* value_mem_cache, - half* decoder_output, - const int* length, - const int max_seq_len, - const int step); - -template void OpenDecoder::ffn( - const float* input, - float* ffn_inner, - float* otuput, - const int m, - const int inner_size, - const int n, - ActivationType activation_type); - -template void OpenDecoder::ffn( - const half* input, - half* ffn_inner, - half* otuput, - const int m, - const int inner_size, - const int n, - ActivationType activation_type); - -template void OpenDecoder::decoder_norm1( - const float* input, - const float* gamma, - const float* beta, - float* output, - int m, int n); - -template void OpenDecoder::decoder_norm1( - const half* input, - const half* gamma, - const half* beta, - half* output, - int m, int n); - -template void OpenDecoder::decoder_norm2( - const float* input, - const float* gamma, - const float* beta, - const float* bias, - float* output, - float* norm_output, - int m, int n); - -template void OpenDecoder::decoder_norm2( - const half* input, - const half* gamma, - const half* beta, - const half* bias, - half* output, - half* norm_output, - int m, int n); - -template void OpenDecoder::add_bias_input( - float* output, - const float* input, - const int m, - const int n); - -template void OpenDecoder::add_bias_input( - half* output, - const half* input, - const int m, - const int n); - -}//namespace FasterTransformer +/* + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Open sourced multi-head attention + **/ +#include +#include + +#include "fastertransformer/open_decoder.h" +#include "cub/cub.cuh" +#include "fastertransformer/utils/nvtx_utils.h" +#include "masked_multihead_attention.h" + +namespace fastertransformer{ + +const int WARP_SIZE = 32; +const bool ATTENION_OPT = true; +const int ATTENTION_BLOCK_SIZE = 256; + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +template +using Copy_half_t = + typename std::conditional::type + >::type + >::type; + +template +using Copy_t = Copy_half_t; + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + masked multi-head attention +*/ +#define FINAL_MASK 0xffffffff +template +__inline__ __device__ +T warpReduceSum(T val) +{ + for(int mask = 16; mask > 0; mask >>= 1) + val += __shfl_xor_sync(FINAL_MASK, val, mask, 32); + return val; +} +/* Calculate the sum of all elements in a block */ +template + __inline__ __device__ +T blockReduceSum(T val) +{ + static __shared__ T shared[32]; + // __shared__ T shared[32]; + int lane = threadIdx.x & 0x1f; + int wid = threadIdx.x >> 5; + + val = warpReduceSum(val); + + if(lane == 0) + shared[wid] = val; + + __syncthreads(); + + val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : (T)(0.0f); + val = warpReduceSum(val); + + return val; +} + +template + __inline__ __device__ +T warpReduceMax(T val) +{ + for(int mask = 16; mask > 0; mask >>= 1) + val = max(val, __shfl_xor_sync(FINAL_MASK, val, mask, 32)); + return val; +} +/* Calculate the maximum of all elements in a block */ +template + __inline__ __device__ +T blockReduceMax(T val) +{ + static __shared__ T shared[32]; +// __shared__ T shared[32]; + int lane = threadIdx.x & 0x1f; // in-warp idx + int wid = threadIdx.x >> 5; // warp idx + + val = warpReduceMax(val); // get maxx in each warp + + if(lane == 0) // record in-warp maxx by warp Idx + shared[wid] = val; + + __syncthreads(); + + + val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : (T)-1e20f; + val = warpReduceMax(val); + + return val; +} + +template +__global__ +void masked_attention_kernel_opt( + T* __restrict key_buf, T* __restrict value_buf, + T* __restrict query_buf, const T* __restrict self_Q_bias, + T* __restrict key_cache, const T* __restrict self_K_bias, + T* __restrict value_cache, const T* __restrict self_V_bias, + T* __restrict context_buf, const bool* finished, + int batch_size, int head_num, const int step, const T scalar) +{ + if(finished != nullptr && finished[blockIdx.x / head_num] == true) return; + typedef Copy_t copy_t; + const int elems_per_thread = size_per_head / WARP_SIZE; + + union Access_t + { + copy_t v; + T x[elems_per_thread]; // supported size 1,2,4 + }; + typedef struct Float_n_t + { + T x[elems_per_thread]; // supported size 1,2,4 + } float_n_t; + + __shared__ float_n_t sq[block_sz]; + + extern __shared__ float logits[]; // use to store the logits from [0~step] + + const int tid = threadIdx.x; + const int warp_num = block_sz / WARP_SIZE; + const int bid = blockIdx.x; + const int head_id = blockIdx.x % head_num; + const int warp_id = tid / WARP_SIZE; // warp_id in block + const int lane_id = tid % WARP_SIZE; // lane_id in warp + + typedef cub::BlockReduce MaxValBlockReduce; + typedef cub::BlockReduce BlockReduce; + __shared__ typename MaxValBlockReduce::TempStorage max_val_block_temp_storage; + __shared__ typename BlockReduce::TempStorage block_temp_storage; + __shared__ typename cub::WarpReduce::TempStorage temp_storage[warp_num]; + + int qkv_id = bid * size_per_head; + int qkv_bias_id = head_id * size_per_head; + + query_buf = &query_buf[qkv_id]; + key_buf = &key_buf[qkv_id]; + value_buf = &value_buf[qkv_id]; + self_K_bias = &self_K_bias[qkv_bias_id]; + key_cache = &key_cache[qkv_id]; + self_Q_bias = &self_Q_bias[qkv_bias_id]; + self_V_bias = &self_V_bias[qkv_bias_id]; + value_cache = &value_cache[qkv_id]; + context_buf = &context_buf[qkv_id]; + + Access_t bias_r, query_buf_r; + Access_t key_val_r, key_buf_r; + Access_t value_val_r, value_buf_r; + + // each warp will have its own copy of sq + query_buf_r.v = *((copy_t *)query_buf + lane_id); + key_buf_r.v = *((copy_t *)key_buf + lane_id); + bias_r.v = *((copy_t *)self_Q_bias + lane_id); + float qb_r[elems_per_thread]; + for (int i = 0; i < elems_per_thread; ++i) + { + qb_r[i] = (float)query_buf_r.x[i] + (float)bias_r.x[i]; + } + + //offset for each step + int offset = batch_size * head_num * size_per_head; + bias_r.v = *((copy_t *) self_K_bias + lane_id); + for(int ite = warp_id; ite < step; ite += warp_num) + { + key_val_r.v = *((copy_t *)&key_cache[ite * offset] + lane_id); + //for the last step, we should update K + bias_K to the cache + if(ite == step - 1) + { + for (int i = 0; i < elems_per_thread; i++) + { + key_val_r.x[i] = (float)key_buf_r.x[i] + (float)bias_r.x[i]; + } + *((copy_t *)&key_cache[ite * offset] + lane_id) = key_val_r.v; + } + float val = 0.f; + for (int i = 0; i < elems_per_thread; i++) + { + val = val + (float)key_val_r.x[i] * qb_r[i] * (float)scalar; + } + float qk = cub::WarpReduce(temp_storage[warp_id]).Sum(val); + if (lane_id == 0) + { + logits[ite] = qk; + } + } + __syncthreads(); + + __shared__ float s_max_val, s_sum; + + float local_i = -1e20f; + for(int i = tid; i < step; i += blockDim.x) + local_i = max(local_i, logits[i]); + + float max_val = MaxValBlockReduce(max_val_block_temp_storage).Reduce(local_i, cub::Max()); + if(tid == 0) + s_max_val = max_val; + __syncthreads(); + + + float local_o = 0.0f; + for(int i = tid; i < step; i += blockDim.x) + { + logits[i] = __expf(logits[i] - s_max_val); + local_o += logits[i]; + } + float val = BlockReduce(block_temp_storage).Sum(local_o); + + if(tid == 0) + s_sum = val + 1e-6; + __syncthreads(); + + float s_sum_inverse = __fdividef(1.0f, s_sum); + for(int i = tid; i < step; i += blockDim.x) + { + logits[i] = logits[i] * s_sum_inverse; + } + __syncthreads(); + + // This optimization introduces discrepancy because of different order in FP32 summation + float sum_r[elems_per_thread] = {0.f}; + bias_r.v = *((copy_t *) self_V_bias + lane_id); + value_buf_r.v = *((copy_t *)value_buf + lane_id); + + for(int ite = warp_id; ite < step; ite += warp_num) + { + value_val_r.v = *((copy_t *)&value_cache[ite * offset] + lane_id); + //for the last step, we should update K + bias_K to the cache + if(ite == step - 1) + { + for (int i = 0; i < elems_per_thread; i++) + { + value_val_r.x[i] = (float)value_buf_r.x[i] + (float)bias_r.x[i]; + } + *((copy_t *)&value_cache[ite * offset] + lane_id) = value_val_r.v; + } + for (int i = 0; i < elems_per_thread; ++i) + { + sum_r[i] += (float)value_val_r.x[i] * logits[ite]; + } + } + for (int i = 0; i < elems_per_thread; i++) + { + sq[warp_id * WARP_SIZE + lane_id].x[i] = sum_r[i]; + } + __syncthreads(); + if (warp_id == 0) + { + #pragma unroll + for (int j = 1; j < warp_num; j++) + { + for (int i = 0; i < elems_per_thread; ++i) + { + sum_r[i] = sum_r[i] + (float)sq[j * WARP_SIZE + tid].x[i]; + } + } + } + __syncthreads(); + #pragma unroll + for (int i = 0; i < elems_per_thread; i++) + { + value_val_r.x[i] = sum_r[i]; + } + if (warp_id == 0) + { + *((copy_t *)context_buf + lane_id) = value_val_r.v; + } +} + +template +__global__ +void masked_attention_kernel( + T* key_buf, T* value_buf, + T* query_buf, const T* self_Q_bias, + T* key_cache, const T* self_K_bias, T* value_cache, const T* self_V_bias, + T* context_buf, const bool* finished, + int batch_size, int head_num, int size_per_head, const int step, const T scalar) +{ + if(finished != nullptr && finished[blockIdx.x / head_num] == true) return; + extern __shared__ __align__(sizeof(T)) unsigned s_buf[]; + T* sq = reinterpret_cast(s_buf); + T* logits = reinterpret_cast(&sq[size_per_head]); + + int tid = threadIdx.x; + int bid = blockIdx.x / head_num; + int head_id = blockIdx.x % head_num; + + int qkv_id = bid * head_num * size_per_head + head_id * size_per_head + tid; + int qkv_bias_id = head_id * size_per_head + tid; + + if(tid < size_per_head) + sq[tid] = query_buf[qkv_id] + self_Q_bias[qkv_bias_id]; + __syncthreads(); + + //offset for each step + int offset = batch_size * head_num * size_per_head; + for(int ite = 0; ite < step; ++ite) + { + T key = tid < size_per_head ? key_cache[ite * offset + qkv_id] : (T)0.0f; + //for the last step, we should update K + bias_K to the cache + if(ite == step - 1 && tid < size_per_head) + { + key = key_buf[qkv_id] + self_K_bias[qkv_bias_id]; + key_cache[ite * offset + qkv_id] = key; + } + + T val = (tid < size_per_head) ? key * sq[tid] * scalar : (T)(0.0f); + T qk = blockReduceSum(val); + if(threadIdx.x == 0) + logits[ite] = qk; + __syncthreads(); //try to remove + } + __syncthreads(); //try to remove + + __shared__ float s_max_val, s_sum; + float local_i = tid < step ? (float)logits[tid] : -1e20f; + float max_val = blockReduceMax(local_i); + if(tid == 0) + s_max_val = max_val; + __syncthreads(); + + local_i -= s_max_val; + float local_o = tid < step ? __expf(local_i) : 0.0f; + float val = blockReduceSum(local_o); + + if(tid == 0) + s_sum = val + 1e-6; + __syncthreads(); + + if(tid < step) + logits[tid] = local_o / s_sum; + __syncthreads(); + + if(tid < size_per_head) + { + T sum = (T)0.0f; + for(int ite = 0; ite < step; ++ite) + { + T value = value_cache[ite * offset + qkv_id]; + //for the last step, we should update K + bias_K to the cache + if(ite == step - 1) + { + value = value_buf[qkv_id] + self_V_bias[qkv_bias_id]; + value_cache[ite * offset + qkv_id] = value; + } + sum += value * logits[ite]; + } + context_buf[qkv_id] = sum; + } +} + +template +void masked_attention_dispatch( + T* key_buf, T* value_buf, + T* query_buf, const T* self_Q_bias, + T* key_cache, const T* self_K_bias, T* value_cache, const T* self_V_bias, + T* context_buf, const bool* finished, int max_batch_size, int inference_batch_size, + int head_num, int size_per_head, const int step, const int max_seq_len, cudaStream_t stream) +{ + if (max_seq_len < 0) { + const int block_sz = ATTENTION_BLOCK_SIZE; + T scalar = (T)(1.f / sqrtf(size_per_head * 1.0f)); + + dim3 grid(inference_batch_size * head_num); + + int cond = size_per_head * ((ATTENION_OPT)? 1:0); + switch (cond) + { + case 32: + masked_attention_kernel_opt<32, block_sz, T><<>>( + key_buf, value_buf, + query_buf, self_Q_bias, key_cache, self_K_bias, value_cache, self_V_bias, context_buf, finished, + max_batch_size, head_num, step, scalar); + break; + case 64: + masked_attention_kernel_opt<64, block_sz, T><<>>( + key_buf, value_buf, + query_buf, self_Q_bias, + key_cache, self_K_bias, + value_cache, self_V_bias, + context_buf, + finished, + max_batch_size, head_num, step, scalar); + break; + case 128: + masked_attention_kernel_opt<128, block_sz, T><<>>( + key_buf, value_buf, + query_buf, self_Q_bias, key_cache, self_K_bias, value_cache, self_V_bias, context_buf, finished, + max_batch_size, head_num, step, scalar); + break; + default: + // default path + int block_size = 128; + + //suppose size_per_head <= 128 + if(step <= 64) + block_size = 64; + else if(step <= 128 && step > size_per_head) + block_size = 128; + else if(step > 128 && step <= 256) + block_size = 256; + else if(step > 256 && step <= 512) + block_size = 512; + else + block_size = 1024; + + if((int)block_size < size_per_head) + block_size = size_per_head; + + assert(block_size <= 1024); + dim3 block(block_size); + T scalar = 1 / sqrtf(size_per_head * 1.0f); + + + int shared_size = sizeof(T) * (size_per_head + step); + masked_attention_kernel<<>>( + key_buf, value_buf, + query_buf, self_Q_bias, + key_cache, self_K_bias, + value_cache, self_V_bias, + context_buf, finished, max_batch_size, + head_num, size_per_head, step, scalar); + } + } + else { + assert(step > 0); + assert(size_per_head == 32 || size_per_head == 64 || size_per_head == 128); + using DataType = typename std::conditional::type; + // Prepare the parameters. + Masked_multihead_attention_params params; + memset(¶ms, 0, sizeof(params)); + params.q_bias = reinterpret_cast(self_Q_bias); + params.k_bias = reinterpret_cast(self_K_bias); + params.v_bias = reinterpret_cast(self_V_bias); + + // Set the output buffer. + params.out = reinterpret_cast(context_buf); + + // Set the input buffers. + params.q = reinterpret_cast(query_buf); + params.k = reinterpret_cast(key_buf); + params.v = reinterpret_cast(value_buf); + params.stride = 0; + params.finished = const_cast(finished); + + params.k_cache = reinterpret_cast(key_cache); + params.v_cache = reinterpret_cast(value_cache); + params.batch_size = inference_batch_size; + params.seq_length = max_seq_len; + params.timestep = step-1; + params.num_heads = head_num; + params.hidden_size_per_head = size_per_head; + params.inv_sqrt_dh = 1.F / sqrtf((float) params.hidden_size_per_head); + + masked_multihead_attention(params, stream); + } +} + +template void masked_attention_dispatch( + float* key_buf, + float* value_buf, + float* query_buf, + const float* self_Q_bias, + float* key_cache, + const float* self_K_bias, + float* value_cache, + const float* self_V_bias, + float* context_buf, + const bool* finished, + int max_batch_size, + int inference_batch_size, + int head_num, + int size_per_head, + const int step, + const int max_seq_size, + cudaStream_t stream); + +template void masked_attention_dispatch( + half* key_buf, + half* value_buf, + half* query_buf, + const half* self_Q_bias, + half* key_cache, + const half* self_K_bias, + half* value_cache, + const half* self_V_bias, + half* context_buf, + const bool* finished, + int max_batch_size, + int inference_batch_size, + int head_num, + int size_per_head, + const int step, + const int max_seq_size, + cudaStream_t stream); + +template +__global__ +void fusedQKV_masked_attention_kernel_opt( + const T* __restrict qkv_buf, const T* __restrict qkv_bias, + T* __restrict key_cache, + T* __restrict value_cache, + T* __restrict context_buf, const bool* finished, int batch_size, int head_num, const int step, const T scalar) +{ + if(finished != nullptr && finished[blockIdx.x / head_num] == true) return; + typedef Copy_t copy_t; + const int elems_per_thread = size_per_head / WARP_SIZE; + + union Access_t + { + copy_t v; + T x[elems_per_thread]; // supported size 1,2,4 + }; + typedef struct Float_n_t + { + T x[elems_per_thread]; // supported size 1,2,4 + } float_n_t; + + __shared__ float_n_t sq[block_sz]; + + extern __shared__ float logits[]; // use to store the logits from [0~step] + + const int tid = threadIdx.x; + const int warp_num = block_sz / WARP_SIZE; + const int bid = blockIdx.x; + const int head_id = blockIdx.x % head_num; + const int warp_id = tid / WARP_SIZE; // warp_id in block + const int lane_id = tid % WARP_SIZE; // lane_id in warp + const int batch_id = bid / head_num; + const int hidden_units = head_num * size_per_head; + + typedef cub::BlockReduce MaxValBlockReduce; + typedef cub::BlockReduce BlockReduce; + __shared__ typename MaxValBlockReduce::TempStorage max_val_block_temp_storage; + __shared__ typename BlockReduce::TempStorage block_temp_storage; + __shared__ typename cub::WarpReduce::TempStorage temp_storage[warp_num]; + + int qkv_id = batch_id * 3 * hidden_units + head_id * size_per_head; + int qkv_bias_id = head_id * size_per_head; + int cache_qkv_id = bid * size_per_head; + + const T* query_buf = qkv_buf + qkv_id; + const T* key_buf = qkv_buf + hidden_units + qkv_id; + const T* value_buf = qkv_buf + 2 * hidden_units + qkv_id; + const T* self_Q_bias = qkv_bias + qkv_bias_id; + const T* self_K_bias = qkv_bias + hidden_units + qkv_bias_id; + const T* self_V_bias = qkv_bias + 2 * hidden_units + qkv_bias_id; + value_cache = value_cache + cache_qkv_id; + key_cache = key_cache + cache_qkv_id; + context_buf = context_buf + cache_qkv_id; + + Access_t bias_r, query_buf_r; + Access_t key_val_r, key_buf_r; + Access_t value_val_r, value_buf_r; + + // each warp will have its own copy of sq + query_buf_r.v = *((copy_t *)query_buf + lane_id); + key_buf_r.v = *((copy_t *)key_buf + lane_id); + bias_r.v = *((copy_t *)self_Q_bias + lane_id); + float qb_r[elems_per_thread]; + for (int i = 0; i < elems_per_thread; ++i) + { + qb_r[i] = (float)query_buf_r.x[i] + (float)bias_r.x[i]; + } + + //offset for each step + int offset = batch_size * hidden_units; + bias_r.v = *((copy_t *) self_K_bias + lane_id); + for(int ite = warp_id; ite < step; ite += warp_num) + { + key_val_r.v = *((copy_t *)&key_cache[ite * offset] + lane_id); + //for the last step, we should update K + bias_K to the cache + if(ite == step - 1) + { + for (int i = 0; i < elems_per_thread; i++) + { + key_val_r.x[i] = (float)key_buf_r.x[i] + (float)bias_r.x[i]; + } + *((copy_t *)&key_cache[ite * offset] + lane_id) = key_val_r.v; + } + float val = 0.f; + for (int i = 0; i < elems_per_thread; i++) + { + val = val + (float)key_val_r.x[i] * qb_r[i] * (float)scalar; + } + float qk = cub::WarpReduce(temp_storage[warp_id]).Sum(val); + if (lane_id == 0) + { + logits[ite] = qk; + } + } + __syncthreads(); + + __shared__ float s_max_val, s_sum; + + float local_i = -1e20f; + for(int i = tid; i < step; i += blockDim.x) + local_i = max(local_i, logits[i]); + + float max_val = MaxValBlockReduce(max_val_block_temp_storage).Reduce(local_i, cub::Max()); + if(tid == 0) + s_max_val = max_val; + __syncthreads(); + + + float local_o = 0.0f; + for(int i = tid; i < step; i += blockDim.x) + { + logits[i] = __expf(logits[i] - s_max_val); + local_o += logits[i]; + } + float val = BlockReduce(block_temp_storage).Sum(local_o); + + if(tid == 0) + s_sum = val + 1e-6; + __syncthreads(); + + float s_sum_inverse = __fdividef(1.0f, s_sum); + for(int i = tid; i < step; i += blockDim.x) + { + logits[i] = logits[i] * s_sum_inverse; + } + __syncthreads(); + + // This optimization introduces discrepancy because of different order in FP32 summation + float sum_r[elems_per_thread] = {0.f}; + bias_r.v = *((copy_t *) self_V_bias + lane_id); + value_buf_r.v = *((copy_t *)value_buf + lane_id); + + for(int ite = warp_id; ite < step; ite += warp_num) + { + value_val_r.v = *((copy_t *)&value_cache[ite * offset] + lane_id); + //for the last step, we should update K + bias_K to the cache + if(ite == step - 1) + { + for (int i = 0; i < elems_per_thread; i++) + { + value_val_r.x[i] = (float)value_buf_r.x[i] + (float)bias_r.x[i]; + } + *((copy_t *)&value_cache[ite * offset] + lane_id) = value_val_r.v; + } + for (int i = 0; i < elems_per_thread; ++i) + { + sum_r[i] += (float)value_val_r.x[i] * logits[ite]; + } + } + for (int i = 0; i < elems_per_thread; i++) + { + sq[warp_id * WARP_SIZE + lane_id].x[i] = sum_r[i]; + } + __syncthreads(); + if (warp_id == 0) + { + #pragma unroll + for (int j = 1; j < warp_num; j++) + { + for (int i = 0; i < elems_per_thread; ++i) + { + sum_r[i] = sum_r[i] + (float)sq[j * WARP_SIZE + tid].x[i]; + } + } + } + __syncthreads(); + #pragma unroll + for (int i = 0; i < elems_per_thread; i++) + { + value_val_r.x[i] = sum_r[i]; + } + if (warp_id == 0) + { + *((copy_t *)context_buf + lane_id) = value_val_r.v; + } +} + +template +void fusedQKV_masked_attention_dispatch( + const T* qkv_buf, const T* qkv_bias, + T* key_cache, T* value_cache, + T* context_buf, const bool* finished, int max_batch_size, int inference_batch_size, + int head_num, int size_per_head, const int step, const int max_seq_len, cudaStream_t stream) +{ + if (max_seq_len < 0) { + const int block_sz = ATTENTION_BLOCK_SIZE; + T scalar = (T)(1.f / sqrtf(size_per_head * 1.0f)); + + dim3 grid(inference_batch_size * head_num); + + int cond = size_per_head * ((ATTENION_OPT)? 1:0); + switch (cond) + { + case 32: + fusedQKV_masked_attention_kernel_opt<32, block_sz, T><<>>( + qkv_buf, qkv_bias, + key_cache, value_cache, + context_buf, + finished, + max_batch_size, head_num, step, scalar); + break; + case 64: + fusedQKV_masked_attention_kernel_opt<64, block_sz, T><<>>( + qkv_buf, qkv_bias, + key_cache, + value_cache, + context_buf, + finished, + max_batch_size, head_num, step, scalar); + break; + case 128: + fusedQKV_masked_attention_kernel_opt<128, block_sz, T><<>>( + qkv_buf, qkv_bias, + key_cache, + value_cache, + context_buf, + finished, + max_batch_size, head_num, step, scalar); + break; + default: + assert(false); + } + } + else { + using DataType = typename std::conditional::type; + // Prepare the parameters. + Masked_multihead_attention_params params; + memset(¶ms, 0, sizeof(params)); + int hidden_units = head_num * size_per_head; + params.q_bias = reinterpret_cast(qkv_bias); + params.k_bias = reinterpret_cast(qkv_bias) + hidden_units; + params.v_bias = reinterpret_cast(qkv_bias) + 2 * hidden_units; + + // Set the output buffer. + params.out = reinterpret_cast(context_buf); + + // Set the input buffers. + params.q = reinterpret_cast(qkv_buf); + params.k = reinterpret_cast(qkv_buf) + hidden_units; + params.v = reinterpret_cast(qkv_buf) + 2 * hidden_units; + params.stride = 3 * hidden_units; + params.finished = const_cast(finished); + + params.k_cache = reinterpret_cast(key_cache); + params.v_cache = reinterpret_cast(value_cache); + params.batch_size = inference_batch_size; + params.seq_length = max_seq_len; + params.timestep = step-1; + params.num_heads = head_num; + params.hidden_size_per_head = size_per_head; + params.inv_sqrt_dh = 1.F / sqrtf((float) params.hidden_size_per_head); + + masked_multihead_attention(params, stream); + } +} + +template void fusedQKV_masked_attention_dispatch( + const float* qkv_buf, + const float* qkv_bias, + float* key_cache, + float* value_cache, + float* context_buf, + const bool* finished, + int max_batch_size, + int inference_batch_size, + int head_num, + int size_per_head, + const int step, + const int max_seq_len, + cudaStream_t stream); + +template void fusedQKV_masked_attention_dispatch( + const half* qkv_buf, + const half* qkv_bias, + half* key_cache, + half* value_cache, + half* context_buf, + const bool* finished, + int max_batch_size, + int inference_batch_size, + int head_num, + int size_per_head, + const int step, + const int max_seq_len, + cudaStream_t stream); + +template +void fusedQKV_masked_attention_kernelLauncher( + const T* qkv_buf, + const T* qkv_bias, + T* k_cache, + T* v_cache, + T* output, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + const int max_seq_len, + cudaStream_t stream) +{ + fusedQKV_masked_attention_dispatch(qkv_buf, + qkv_bias, + k_cache, + v_cache, + output, + nullptr, + batch_size, + batch_size, + head_num, + size_per_head, + seq_len, + max_seq_len, + stream); +} + +template +__global__ void transpose_4d(T* dst, T* src, + const int dim0, + const int dim1, + const int dim2, + const int dim3, + const int dim0_leading_dim, + const int ite) +{ + // transpose from [dim0, dim1, dim2, dim3] to [dim2, X, dim1, dim3] + // where the dimension of X is dim0_leading_dim, and offset is ite * dim0 + for(int i = threadIdx.x + blockIdx.x * blockDim.x; i < dim0 * dim1 * dim2 * dim3; i+= blockDim.x * gridDim.x) + { + int index = i; + const int d3 = index % dim3; + index = (index - d3) / dim3; + const int d2 = index % dim2; + index = (index - d2) / dim2; + const int d1 = index % dim1; + index = (index - d1) / dim1; + const int d0 = index % dim0; + index = (index - d0) / dim0; + dst[d2 * dim0_leading_dim * dim1 * dim3 + (d0 + dim0 * ite) * dim1 * dim3 + d1 * dim3 + d3] = src[i]; + } +} + +template<> +__global__ void transpose_4d(half* dst, half* src, + const int dim0, + const int dim1, + const int dim2, + const int dim3, + const int dim0_leading_dim, + const int ite) +{ + half2 *dst_ptr = (half2 *) dst; + half2 *src_ptr = (half2 *) src; + const int half_dim3 = dim3 / 2; + // transpose from [dim0, dim1, dim2, half_dim3] to [dim2, dim0, dim1, half_dim3] + // where the dimension of X is dim0_leading_dim, and offset is ite * dim0 + for(int i = threadIdx.x + blockIdx.x * blockDim.x; i < dim0 * dim1 * dim2 * half_dim3; i+= blockDim.x * gridDim.x) + { + int index = i; + const int d3 = index % half_dim3; + index = (index - d3) / half_dim3; + const int d2 = index % dim2; + index = (index - d2) / dim2; + const int d1 = index % dim1; + index = (index - d1) / dim1; + const int d0 = index % dim0; + index = (index - d0) / dim0; + dst_ptr[d2 * dim0_leading_dim * dim1 * half_dim3 + (d0 + dim0 * ite) * dim1 * half_dim3 + d1 * half_dim3 + d3] = src_ptr[i]; + } +} + +template +void transpose_4d_kernelLauncher(T* dst, T* src, + const int local_batch_size, + const int seq_len, + const int size_per_head, + const int local_hidden_units, + const int local_head_num, + const int batch_size, + const int ite, + cudaStream_t stream) +{ + transpose_4d<<>>( + dst, src, + local_batch_size, local_head_num, + seq_len, size_per_head, batch_size, ite); +} + +template void transpose_4d_kernelLauncher( + float* dst, + float* src, + const int local_batch_size, + const int seq_len, + const int size_per_head, + const int local_hidden_units, + const int local_head_num, + const int batch_size, + const int ite, + cudaStream_t stream); + +template void transpose_4d_kernelLauncher( + half* dst, + half* src, + const int local_batch_size, + const int seq_len, + const int size_per_head, + const int local_hidden_units, + const int local_head_num, + const int batch_size, + const int ite, + cudaStream_t stream); + +#define NEW_TRANSPOSE_BATCH_MAJOR 1 + +template +__global__ void transpose_4d_batch_major_k_cache(T* k_dst, const T* k_src, + const int head_num, + const int size_per_head, + const int seq_len, + const int max_seq_len) +{ + const int batch_id = blockIdx.y; + const int head_id = blockIdx.z; + constexpr int X_ELEMS = (sizeof(T) == 4)? 4 : 8; + + auto key_src = reinterpret_cast(k_src + batch_id * head_num * size_per_head * seq_len + head_id * size_per_head * seq_len); + auto key_dst = reinterpret_cast(k_dst + batch_id * head_num * size_per_head * max_seq_len + head_id * size_per_head * max_seq_len); + + const int out_idx = blockIdx.x * blockDim.x + threadIdx.x; + int size_per_head_div_x = size_per_head / X_ELEMS; + if (out_idx >= head_num * size_per_head_div_x * max_seq_len) return; + + int idx = out_idx; + const int k_seq_len_id = idx % max_seq_len; + idx = (idx - k_seq_len_id) / max_seq_len; + const int k_head_size_id = idx % size_per_head_div_x; + + if (k_seq_len_id < seq_len) + key_dst[out_idx] = key_src[k_seq_len_id * size_per_head_div_x + k_head_size_id]; +} + +template +__global__ void transpose_4d_batch_major_v_cache(T* v_dst, const T* v_src, + const int head_num, + const int size_per_head, + const int seq_len, + const int max_seq_len) +{ + const int batch_id = blockIdx.y; + const int head_id = blockIdx.z; + + // 16 byte loads will handle "x" dimension + auto val_src = reinterpret_cast(v_src + batch_id * head_num * size_per_head * seq_len + head_id * size_per_head * seq_len); + auto val_dst = reinterpret_cast(v_dst + batch_id * head_num * size_per_head * max_seq_len + head_id * size_per_head * max_seq_len); + + // idx is over output dimension L * size_per_head / x for values + const int idx = blockIdx.x * blockDim.x + threadIdx.x; + + constexpr int X_ELEMS = (sizeof(T) == 4)? 4 : 8; + const int size_per_head_div_x = size_per_head / X_ELEMS; + + if (idx >= size_per_head_div_x * seq_len) return; + + val_dst[idx] = val_src[idx]; +} + +template +__global__ void transpose_4d_batch_major(T* k_dst, T* v_dst, + const T* k_src, const T* v_src, + const int head_num, + const int size_per_head, + const int seq_len, + const int max_seq_len) +{ + const int hidden_dim = head_num * size_per_head; + const int x = (sizeof(T) == 4)? 4 : 8; + const int size_per_head_split = size_per_head / x; + const int batch_id = blockIdx.x; + const int seq_id = blockIdx.y; + + for(int id = threadIdx.x; id < head_num * size_per_head_split * x; id += blockDim.x) + { + int tmp_id = id; + int x_id = tmp_id % x; + tmp_id = (tmp_id - x_id) / x; + int size_id = tmp_id % size_per_head_split; + tmp_id = (tmp_id - size_id) / size_per_head_split; + int head_id = tmp_id % head_num; + + // key: [B, head_num, L, size_per_head / x, x] -> [B, head_num, size_per_head / x, L, x] + k_dst[batch_id * hidden_dim * max_seq_len + head_id * size_per_head * max_seq_len + size_id * max_seq_len * x + seq_id * x + x_id] = + k_src[batch_id * hidden_dim * seq_len + head_id * size_per_head * seq_len + seq_id * size_per_head + size_id * x + x_id]; + + // value: [B, head_num, L, size_per_head / x, x] -> [B, head_num, L, size_per_head/x, x] + v_dst[batch_id * hidden_dim * max_seq_len + head_id * size_per_head * max_seq_len + seq_id * size_per_head + size_id * x + x_id] = + v_src[batch_id * hidden_dim * seq_len + head_id * size_per_head * seq_len + seq_id * size_per_head + size_id * x + x_id]; + } +} + +template +void transpose_4d_batch_major_kernelLauncher(T* k_dst, T* v_dst, + const T* k_src, const T* v_src, + const int local_batch_size, + const int seq_len, + const int max_seq_len, + const int size_per_head, + const int local_head_num, + cudaStream_t stream) +{ + constexpr int block_sz = 128; +#if NEW_TRANSPOSE_BATCH_MAJOR == 1 + constexpr int x = (sizeof(T) == 4)? 4 : 8; + int size = max_seq_len * size_per_head / x; + dim3 grid((size + block_sz - 1) / block_sz, local_batch_size, local_head_num); + dim3 grid_v((seq_len * size_per_head / x + block_sz - 1) / block_sz, local_batch_size, local_head_num); + + transpose_4d_batch_major_k_cache<<>>( + k_dst, k_src, + local_head_num, + size_per_head, + seq_len, + max_seq_len + ); + + transpose_4d_batch_major_v_cache<<>>( + v_dst, v_src, + local_head_num, + size_per_head, + seq_len, + max_seq_len + ); +#else + dim3 grid(local_batch_size, seq_len); + + transpose_4d_batch_major<<>>( + k_dst, v_dst, + k_src, v_src, + local_head_num, + size_per_head, + seq_len, + max_seq_len + ); +#endif +} + +template void transpose_4d_batch_major_kernelLauncher(float* k_dst, float* v_dst, + const float* k_src, const float* v_src, + const int local_batch_size, + const int seq_len, + const int max_seq_len, + const int size_per_head, + const int local_head_num, + cudaStream_t stream); + +template void transpose_4d_batch_major_kernelLauncher(half* k_dst, half* v_dst, + const half* k_src, const half* v_src, + const int local_batch_size, + const int seq_len, + const int max_seq_len, + const int size_per_head, + const int local_head_num, + cudaStream_t stream); + +template +__global__ +void add_QKV_bias_generalized_2(const T* __restrict QKV, + const T* __restrict bias, + T* q_buf_, T* k_buf_, T* v_buf_, + const int batch_size, const int seq_len, + const int head_num, const int size_per_head, + const int word_per_block) +{ + // QKV: [batch x sequence length, hidden * 3] + const T* data_ptr; + T* buf_ptr; + + int n = head_num * size_per_head; + const int blocks_per_word = n / blockDim.x; + const int blocks_per_buffer = gridDim.x / 3; + const int qkv_id = blockIdx.x / blocks_per_buffer; + const int block_id_in_buffer = blockIdx.x % blocks_per_buffer; + const int offset = block_id_in_buffer * blockDim.x + threadIdx.x; + const int bias_id = offset % n; + T* buf_ptrs[3] = {q_buf_, k_buf_, v_buf_}; + + const int bid = blockIdx.x; + + for(int index = threadIdx.x; index < n; index += blockDim.x) + { + buf_ptrs[index / n][bid * n + index % n] = QKV[bid * 3 * n + index] + __ldg(&bias[index]); + } +} + +template +__global__ +void cross_attention_kernel_opt( + T* __restrict query_buf, const T* __restrict Q_bias, + T* __restrict key_cache, const T* __restrict K_bias, + T* __restrict value_cache, const T* __restrict V_bias, + const int* length_per_sample, T* __restrict context_buf, + const bool* finished, + int batch_size, int head_num, const int step, const int seq_len, const float scalar) +{ + if(finished != nullptr && finished[blockIdx.x / head_num] == true) return; + typedef Copy_t copy_t; + const int elems_per_thread = size_per_head / WARP_SIZE; + union Access_t + { + copy_t v; + T x[elems_per_thread]; // supported size 1,2,4 + }; + typedef struct Float_n_t + { + float x[elems_per_thread]; // supported size 1,2,4 + } float_n_t; + + __shared__ float_n_t sq[block_sz]; + extern __shared__ float logits[]; // use to store the logits from [0~step] + + const int warp_id = threadIdx.x / WARP_SIZE; + const int warp_num = block_sz / WARP_SIZE; + + typedef cub::BlockReduce MaxValBlockReduce; + typedef cub::BlockReduce BlockReduce; + __shared__ typename MaxValBlockReduce::TempStorage max_val_block_temp_storage; + __shared__ typename BlockReduce::TempStorage block_temp_storage; + + __shared__ typename cub::WarpReduce::TempStorage temp_storage[warp_num]; + + const int tid = threadIdx.x; + const int bid = blockIdx.x / head_num; + const int head_id = blockIdx.x % head_num; + + int length = __ldg(&length_per_sample[bid]); + + const int lane_id = tid % WARP_SIZE; + + int qkv_id = bid * head_num * size_per_head + head_id * size_per_head; + int qkv_bias_id = head_id * size_per_head; + + int key_value_id = bid * (seq_len * head_num * size_per_head) + + + head_id * size_per_head; + + query_buf = &query_buf[qkv_id]; + K_bias = &K_bias[qkv_bias_id]; + key_cache = &key_cache[key_value_id]; + Q_bias = &Q_bias[qkv_bias_id]; + V_bias = &V_bias[qkv_bias_id]; + value_cache = &value_cache[key_value_id]; + context_buf = &context_buf[qkv_id]; + + Access_t bias_r, key_val_r, query_buf_r; + + // each warp will have its own copy of sq + query_buf_r.v = *((copy_t *)query_buf + lane_id); + bias_r.v = *((copy_t *)Q_bias + lane_id); + float qb_r[elems_per_thread]; + for (int i = 0; i < elems_per_thread; ++i) + { + qb_r[i] = (float)query_buf_r.x[i] + (float)bias_r.x[i]; + } + + //offset for each step + int offset = head_num * size_per_head; + + bias_r.v = *((copy_t *) K_bias + lane_id); + for(int ite = warp_id; ite < length; ite += warp_num) + { + key_val_r.v = *((copy_t *)&key_cache[ite * offset] + lane_id); + + //For the first step, we should add bias to key memory cache. + //The KV memory cache only need to be updated at the first step. + if (step == 1) + { + for (int i = 0; i < elems_per_thread; i++) + { + key_val_r.x[i] = (float)key_val_r.x[i] + (float)bias_r.x[i]; + } + *((copy_t *)&key_cache[ite * offset] + lane_id) = key_val_r.v; + } + float val = 0.f; + for (int i = 0; i < elems_per_thread; i++) + { + val = val + (float)key_val_r.x[i] * qb_r[i] * scalar; + } + float qk = cub::WarpReduce(temp_storage[warp_id]).Sum(val); + if (lane_id == 0) + { + logits[ite] = qk; + } + } + __syncthreads(); + + __shared__ float s_max_val, s_sum; + float local_i = -1e20f; + for(int i = tid; i < length; i += blockDim.x) + local_i = max(local_i, logits[i]); + + float max_val = MaxValBlockReduce(max_val_block_temp_storage).Reduce(local_i, cub::Max()); + if(tid == 0) + s_max_val = max_val; + __syncthreads(); + + float local_o = 0.0f; + for(int i = tid; i < length; i += blockDim.x) + { + logits[i] = __expf(logits[i] - s_max_val); + local_o += logits[i]; + } + float val = BlockReduce(block_temp_storage).Sum(local_o); + + if(tid == 0) + s_sum = val + 1e-6; + __syncthreads(); + + float s_sum_inverse = __fdividef(1.0f, s_sum); + for(int i = tid; i < length; i += blockDim.x) + { + logits[i] = logits[i] * s_sum_inverse; + } + __syncthreads(); + + // This optimization introduces discrepancy because of different order in FP32 summation + float sum_r[elems_per_thread] = {0.f}; + bias_r.v = *((copy_t *) V_bias + lane_id); + for(int ite = warp_id; ite < length; ite += warp_num) + { + key_val_r.v = *((copy_t *)&value_cache[ite * offset] + lane_id); + + //For the first step, we should add bias to key memory cache. + if(step == 1) + { + for (int i = 0; i < elems_per_thread; i++) + { + key_val_r.x[i] = (float)key_val_r.x[i] + (float)bias_r.x[i]; + } + *((copy_t *)&value_cache[ite * offset] + lane_id) = key_val_r.v; + } + for (int i = 0; i < elems_per_thread; ++i) + { + sum_r[i] += (float)key_val_r.x[i] * logits[ite]; + } + } + for (int i = 0; i < elems_per_thread; i++) + { + sq[warp_id * WARP_SIZE + lane_id].x[i] = sum_r[i]; + } + __syncthreads(); + if (threadIdx.x < WARP_SIZE) + { + #pragma unroll + for (int j = 1; j < warp_num; j++) + { + for (int i = 0; i < elems_per_thread; ++i) + { + sum_r[i] = sum_r[i] + (float)sq[j * WARP_SIZE + threadIdx.x].x[i]; + } + } + } + __syncthreads(); + #pragma unroll + for (int i = 0; i < elems_per_thread; i++) + { + key_val_r.x[i] = sum_r[i]; + } + if (threadIdx.x < WARP_SIZE) + { + *((copy_t *)context_buf + lane_id) = key_val_r.v; + } +} + +template +__global__ +void cross_attention_kernel( + T* query_buf, const T* Q_bias, + T* key_cache, const T* K_bias, + T* value_cache, const T* V_bias, + const int* length_per_sample, T* context_buf, + const bool* finished, + int batch_size, int head_num, int size_per_head, int step, const int seq_len, const T scalar) +{ + if(finished != nullptr && finished[blockIdx.x / head_num] == true) return; + int tid = threadIdx.x; + int bid = blockIdx.x / head_num; + int head_id = blockIdx.x % head_num; + + extern __shared__ __align__(sizeof(T)) unsigned s_buf[]; + T* sq = reinterpret_cast(s_buf); + T* logits = reinterpret_cast(&sq[size_per_head]); + + int length = __ldg(&length_per_sample[bid]); + + int qkv_id = bid * head_num * size_per_head + head_id * size_per_head + tid; + int qkv_bias_id = head_id * size_per_head + tid; + + if(tid < size_per_head) + sq[tid] = query_buf[qkv_id] + Q_bias[qkv_bias_id]; + __syncthreads(); + + for(int ite = 0; ite < length; ++ite) + { + int key_id = bid * (seq_len * head_num * size_per_head) + ite * (head_num * size_per_head) + + head_id * size_per_head + tid; + + T key = tid < size_per_head ? key_cache[key_id] : (T)(0.0f); + + //For the first step, we should add bias to key memory cache. + //The KV memory cache only need to be updated at the first step. + if(step == 1 && tid < size_per_head) + { + key += K_bias[head_id * size_per_head + tid]; + key_cache[key_id] = key; + } + + T val = (tid < size_per_head) ? key * sq[tid] * scalar : (T)(0.0f); + T qk = blockReduceSum(val); + if(threadIdx.x == 0) + logits[ite] = qk; + __syncthreads(); //try to remove + } + __syncthreads(); + + __shared__ float s_max_val, s_sum; + + float local_i = tid < length ? (float)logits[tid] : -1e20f; + float max_val = blockReduceMax(local_i); + if(tid == 0) + s_max_val = max_val; + __syncthreads(); + + local_i -= s_max_val; + float local_o = tid < length ? __expf(local_i) : 0.0f; + float val = blockReduceSum(local_o); + + if(tid == 0) + s_sum = val + 1e-6; + __syncthreads(); + if(tid < length) + logits[tid] = local_o / s_sum; + __syncthreads(); + + if(tid < size_per_head) + { + T sum = (T)0.0f; + for(int ite = 0; ite < length; ++ite) + { + int value_id = bid * seq_len * head_num * size_per_head + ite * head_num * size_per_head + + head_id * size_per_head + tid; + + T value = value_cache[value_id]; + + //for the first step, we should add bias to key memory cache + if(step == 1) + { + value += V_bias[head_id * size_per_head + tid]; + value_cache[value_id] = value; + } + sum += value * logits[ite]; + } + context_buf[bid * head_num * size_per_head + head_id * size_per_head + tid] = sum; + } +} + +template +void cross_attention_dispatch(T* query_buf, const T* Q_bias, + T* key_cache, const T* K_bias, T* value_cache, const T* V_bias, const int* length, + T* context_buf, const bool* finished, + int batch_size, int head_num, int size_per_head, int step, int seq_len, cudaStream_t stream) + { + const int block_sz = ATTENTION_BLOCK_SIZE; + float scalar = 1.f / sqrtf(size_per_head * 1.0f); + + dim3 grid(batch_size * head_num); + + int cond = size_per_head * ((ATTENION_OPT)? 1:0); + switch (cond) + { + case 32: + cross_attention_kernel_opt<<>>( + query_buf, Q_bias, key_cache, K_bias, value_cache, V_bias, length, context_buf, finished, + batch_size, head_num, step, seq_len, scalar); + break; + case 64: + cross_attention_kernel_opt<<>>( + query_buf, Q_bias, key_cache, K_bias, value_cache, V_bias, length, context_buf, finished, + batch_size, head_num, step, seq_len, scalar); + break; + case 128: + cross_attention_kernel_opt<<>>( + query_buf, Q_bias, key_cache, K_bias, value_cache, V_bias, length, context_buf, finished, + batch_size, head_num, step, seq_len, scalar); + break; + default: + // default path + + int block_size = 128; + + if(seq_len <= 64) + block_size = 64; + else if(seq_len <= 128 && seq_len > size_per_head) + block_size = 128; + else if(seq_len > 128 && seq_len <= 256) + block_size = 256; + else if(seq_len > 256 && seq_len <= 512) + block_size = 512; + else + block_size = 1024; + + if(block_size < size_per_head) + block_size = size_per_head; + + assert(block_size <= 1024); + dim3 block(block_size); + + int shared_size = sizeof(T) * (size_per_head + seq_len); + cross_attention_kernel<<>>( + query_buf, Q_bias, + key_cache, K_bias, + value_cache, V_bias, + length, context_buf, finished, + batch_size, + head_num, size_per_head, step, seq_len, scalar); + } + } + +template void cross_attention_dispatch( + float* query_buf, + const float* Q_bias, + float* key_cache, + const float* K_bias, + float* value_cache, + const float* V_bias, + const int* length, + float* context_buf, + const bool* finished, + int batch_size, + int head_num, + int size_per_head, + int step, + int seq_len, + cudaStream_t stream); + +template void cross_attention_dispatch( + half* query_buf, + const half* Q_bias, + half* key_cache, + const half* K_bias, + half* value_cache, + const half* V_bias, + const int* length, + half* context_buf, + const bool* finished, + int batch_size, + int head_num, + int size_per_head, + int step, + int seq_len, + cudaStream_t stream); + +template void fusedQKV_masked_attention_kernelLauncher( + const float* qkv_buf, + const float* qkv_bias, + float* k_cache, + float* v_cache, + float* output, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + const int max_seq_len, + cudaStream_t stream); + +template void fusedQKV_masked_attention_kernelLauncher( + const half* qkv_buf, + const half* qkv_bias, + half* k_cache, + half* v_cache, + half* output, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + const int max_seq_len, + cudaStream_t stream); + +}//namespace fastertransformer \ No newline at end of file diff --git a/fastertransformer/cuda/open_decoder.cuh b/fastertransformer/cuda/open_decoder.cuh new file mode 100644 index 000000000..ccdde89b8 --- /dev/null +++ b/fastertransformer/cuda/open_decoder.cuh @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +namespace fastertransformer{ + +template +void fusedQKV_masked_attention_dispatch( + const T* qkv_buf, const T* qkv_bias, + T* key_cache, T* value_cache, + T* context_buf, const bool* finished, int max_batch_size, int inference_batch_size, + int head_num, int size_per_head, const int step, const int max_seq_len, cudaStream_t stream); + +template +void masked_attention_dispatch( + T* key_buf, T* value_buf, + T* query_buf, const T* self_Q_bias, + T* key_cache, const T* self_K_bias, T* value_cache, const T* self_V_bias, + T* context_buf, const bool* finished, int max_batch_size, int inference_batch_size, + int head_num, int size_per_head, const int step, const int max_seq_len, cudaStream_t stream); + +template +void cross_attention_dispatch(T* query_buf, const T* Q_bias, + T* key_cache, const T* K_bias, T* value_cache, const T* V_bias, const int* length, + T* context_buf, const bool* finished, + int batch_size, int head_num, int size_per_head, int step, int seq_len, cudaStream_t stream); + +template +void fusedQKV_masked_attention_kernelLauncher( + const T* qkv_buf, + const T* qkv_bias, + T* k_cache, + T* v_cache, + T* output, + const int batch_size, + const int seq_len, + const int head_num, + const int size_per_head, + const int max_seq_len, + cudaStream_t stream +); + +template +void transpose_4d_kernelLauncher(T* dst, T* src, + const int local_batch_size, + const int seq_len, + const int size_per_head, + const int local_hidden_units, + const int local_head_num, + const int batch_size, + const int ite, + cudaStream_t stream +); + +template +void transpose_4d_batch_major_kernelLauncher(T* k_dst, T* v_dst, + const T* k_src, const T* v_src, + const int local_batch_size, + const int seq_len, + const int max_seq_len, + const int size_per_head, + const int local_head_num, + cudaStream_t stream); + +} diff --git a/fastertransformer/cuda/topk_kernels.cu b/fastertransformer/cuda/topk_kernels.cu index a52eb39db..d4daca530 100644 --- a/fastertransformer/cuda/topk_kernels.cu +++ b/fastertransformer/cuda/topk_kernels.cu @@ -20,6 +20,24 @@ namespace fastertransformer { +__global__ void ker_curand_setup(curandState_t* state, const int size) + { + // curand_init(clock(), blockIdx.x * blockDim.x + threadIdx.x, 0, &state[blockIdx.x * blockDim.x + threadIdx.x]); + // fix the seed to prevent the seed of different gpu are differnet in Tensor Parallel + if(threadIdx.x + blockIdx.x * blockDim.x < size) + curand_init(0, blockIdx.x * blockDim.x + threadIdx.x, 0, &state[blockIdx.x * blockDim.x + threadIdx.x]); + } + +void ker_curand_setupLauncher(curandState_t* state, + DecodingSamplingArguments args, + cudaStream_t stream) + { + dim3 block(256); + dim3 grid((int)(ceil(args.batch_size_ * 1.0 / 256))); + ker_curand_setup<<>>(state, args.batch_size_); + } + + template __launch_bounds__(THREADBLOCK_SIZE) __global__ @@ -82,7 +100,7 @@ void beam_topK_kernelLauncher(const T* log_probs, cudaStream_t stream) { const int batch_size = args.batch_size_; - const int vocab_size = args.vocab_size_; + const int vocab_size = args.vocab_size_padded_; const int candidate_num = args.candidate_num_; const int block_size = 256; switch(candidate_num) @@ -192,8 +210,10 @@ __global__ void topk_stage_1_opt3( T* tmp_log_probs, int* topk_tmp_id_buf, T* topk_tmp_val_buf, + const bool* finished, const int k, - const int vocab_size + const int vocab_size, + const int end_id ) { typedef cub::BlockReduce, BLOCK_SIZE_> BlockReduce; @@ -210,6 +230,26 @@ __global__ void topk_stage_1_opt3( const bool IS_FP16 = std::is_same::value; const T MAX_T_VAL = (IS_FP16)? HALF_FLT_MAX : FLT_MAX; + if(finished != nullptr && finished[row_id] == true) + { + if(tid < k) + { + const int index = tmp_topk_buf_index + tid; + if(block_lane == 0 && tid == 0) + { + topk_tmp_id_buf[index] = tmp_log_buf_index + end_id; + topk_tmp_val_buf[index] = log_probs[tmp_log_buf_index + end_id]; + } + else + { + topk_tmp_id_buf[index] = -1; + topk_tmp_val_buf[index] = -MAX_T_VAL; + + } + } + return; + } + for(int elem_id = tid + block_lane * BLOCK_SIZE_; elem_id < vocab_size; elem_id += BLOCK_SIZE_ * BLOCKS_PER_BEAM_) { int index = elem_id + tmp_log_buf_index; @@ -281,6 +321,90 @@ __global__ void topk_stage_2_opt3( if(tid < k) ids[batch_id * k + tid] = topk_tmp_id_buf[batch_id * size + s_id[tid]]; } +template +__global__ void topk_stage_2_opt3_sampling(const int* __restrict topk_tmp_id_buf, + T* topk_tmp_val_buf, + T* topk_tmp2_val_buf, + int* ids, + int* sequence_length, + bool* finished_buf, + const int k, + curandState_t* curandstate, + const int end_id, + const int vocab_size) +{ + const int size = k * BLOCKS_PER_BEAM_; + const int tid = threadIdx.x; + const int batch_id = blockIdx.x; + const bool IS_FP16 = std::is_same::value; + const T MAX_T_VAL = (IS_FP16)? HALF_FLT_MAX : FLT_MAX; + + typedef cub::BlockReduce, BLOCK_SIZE_> BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + extern __shared__ char array[]; + __shared__ float rand_num; + __shared__ float s_sum; + __shared__ float s_max; + T *s_val = topk_tmp_val_buf + batch_id * size; + int *s_id = (int*)(array); + s_max = (float)0.0f; + s_sum = (float)0.0f; + TopK_2 partial; + + for(int index = tid; index < size; index += BLOCK_SIZE_) + { + topk_tmp2_val_buf[batch_id * size + index] = topk_tmp_val_buf[batch_id * size + index]; + } + __syncthreads(); + T *s_val2 = topk_tmp2_val_buf + batch_id * size; + + for(int ite = 0; ite < k; ite++) + { + partial.init(); + #pragma unroll + for(int i = tid; i < size; i+= BLOCK_SIZE_) + { + partial.insert((float)s_val[i], i); + } + + TopK_2 total = BlockReduce(temp_storage).Reduce(partial, reduce_topk_op_2); + + if(ite == 0) + s_max = total.u; + + if(tid == 0) + { + s_id[ite] = total.p; + s_val[total.p] = -MAX_T_VAL; + total.u = __expf(total.u - s_max); + s_val2[total.p] = (T)total.u; + s_sum += total.u; + } + __syncthreads(); + } + if(tid == 0) + { + rand_num = (float)curand_uniform(curandstate + blockIdx.x) * s_sum; + for(int i = 0; i < k; i++) + { + rand_num = rand_num - (float)s_val2[s_id[i]]; + if(rand_num <= 0.0f) + { + ids[batch_id] = topk_tmp_id_buf[batch_id * size + s_id[i]] % vocab_size; + break; + } + } + if(finished_buf != nullptr) + { + finished_buf[batch_id] = ids[batch_id] == end_id ? 1 : 0; + if(sequence_length != nullptr) + { + sequence_length[batch_id] = finished_buf[batch_id] ? sequence_length[batch_id] : sequence_length[batch_id] + 1; + } + } + } +} + template __global__ void topk_stage_1_opt2_general( const T* __restrict log_probs, @@ -393,7 +517,8 @@ __global__ void topk_stage_2_opt2_general( temp_log_probs, \ topk_tmp_id_buf, \ topk_tmp_val_buf, \ - beam_width, vocab_size); \ + finished, \ + beam_width, vocab_size, end_id); \ topk_stage_2_opt3<<>>( \ topk_tmp_id_buf, \ topk_tmp_val_buf, \ @@ -406,13 +531,15 @@ void topK_kernelLauncher(void* workspace, size_t& workspace_size, T* log_probs, int* ids, + const bool* finished, DecodingBeamsearchArguments args, cudaStream_t stream) { const int batch_size = args.batch_size_; const int beam_width = args.beam_width_; - const int vocab_size = args.vocab_size_; + const int vocab_size = args.vocab_size_padded_; const T diversity_rate = args.beam_search_diversity_rate_; + const int end_id = args.end_id_; const int max_block_per_beam = 8; int temp_log_probs_buf_size = batch_size * beam_width * vocab_size; // type float @@ -487,30 +614,31 @@ template void topK_kernelLauncher(void* workspace, size_t& workspace_size, float* log_probs, int* ids, + const bool* finished, DecodingBeamsearchArguments args, cudaStream_t stream); // Sampling kernels template -__global__ void sampling(int* topk_tmp_id_buf, - T* topk_tmp_val_buf, - int* ids, - int* sequence_length, - bool* finished_buf, - const int candidate_num, - int random_num, - const int end_id, - const int vocab_size) +__global__ void sampling(int* topk_tmp_id_buf, + T* topk_tmp_val_buf, + int* ids, + int* sequence_length, + bool* finished_buf, + const int candidate_num, + int random_num, + const int end_id, + const int vocab_size) { int tid = threadIdx.x; int bid = blockIdx.x; - __shared__ T sum; - __shared__ T rand_num; + __shared__ float sum; + __shared__ float rand_num; if(tid < candidate_num) { - T max_val = topk_tmp_val_buf[bid * candidate_num]; - topk_tmp_val_buf[bid * candidate_num + tid] = __expf(topk_tmp_val_buf[bid * candidate_num + tid] - max_val); + float max_val = topk_tmp_val_buf[bid * candidate_num]; + topk_tmp_val_buf[bid * candidate_num + tid] = (T)__expf((float)topk_tmp_val_buf[bid * candidate_num + tid] - max_val); } if(tid == 0) @@ -518,27 +646,29 @@ __global__ void sampling(int* topk_tmp_id_buf, sum = 0.0f; for(int i = 0; i < candidate_num; i++) { - sum = sum + topk_tmp_val_buf[bid * candidate_num + i]; + sum = sum + (float)topk_tmp_val_buf[bid * candidate_num + i]; } curandState_t local_state; curand_init((T)random_num, bid, 0, &local_state); - rand_num = (T)curand_uniform(&local_state) * sum; + rand_num = (float)curand_uniform(&local_state) * sum; ids[bid] = topk_tmp_id_buf[bid * candidate_num + candidate_num - 1] % vocab_size; for(int i = 0; i < candidate_num; i++) { - rand_num = rand_num - topk_tmp_val_buf[bid * candidate_num + i]; - if(rand_num <= (T)0.0f){ + rand_num = rand_num - (float)topk_tmp_val_buf[bid * candidate_num + i]; + if(rand_num <= 0.0f){ ids[bid] = topk_tmp_id_buf[bid * candidate_num + i] % vocab_size; break; } } - - if(sequence_length != nullptr && finished_buf != nullptr) + if(finished_buf != nullptr) { - sequence_length[bid] = finished_buf[bid] ? sequence_length[bid] : sequence_length[bid] + 1; finished_buf[bid] = ids[bid] == end_id ? 1 : 0; + if(sequence_length != nullptr) + { + sequence_length[bid] = finished_buf[bid] ? sequence_length[bid] : sequence_length[bid] + 1; + } } } } @@ -558,10 +688,15 @@ void topK_sampling_kernel_kernelLauncher(void* workspace, bool* finished_buf, int random_num, DecodingSamplingArguments args, - cudaStream_t stream) + cudaStream_t stream, + const int batch_size) { - const int batch_size = args.batch_size_; - const int vocab_size = args.vocab_size_; + // This function would be called two or more times. + // First time is used to get the workspace size, so we need to put + // max batch size we want to use. + // For other times, we need to put the inference batch size to + // set the grid size we use. + const int vocab_size = args.vocab_size_padded_; const int candidate_num = args.candidate_num_; const int end_id = args.end_id_; const int block_size = 256; @@ -573,7 +708,7 @@ void topK_sampling_kernel_kernelLauncher(void* workspace, if(workspace == nullptr) { - workspace_size = sizeof(int) * topk_tmp_ids_buf_size + sizeof(int) * topk_tmp_val_buf_size; + workspace_size = sizeof(int) * topk_tmp_ids_buf_size + sizeof(T) * topk_tmp_val_buf_size; } else { @@ -585,6 +720,8 @@ void topK_sampling_kernel_kernelLauncher(void* workspace, CASE_K(1); CASE_K(2); CASE_K(4); + CASE_K(16); + CASE_K(64); default: printf("[ERROR] Topk kernel does not support candidate_num = %d \n", candidate_num); exit(0); @@ -598,6 +735,91 @@ void topK_sampling_kernel_kernelLauncher(void* workspace, #undef CASE_K +#define CASE_K(K,BLOCK_SIZE_1_, BLOCK_SIZE_2_, BLOCKS_PER_BEAM_) \ + case K: \ + topk_stage_1_opt3<<>>( \ + log_probs, \ + temp_log_probs, \ + topk_tmp_id_buf, \ + topk_tmp_val_buf, \ + finished_buf, \ + candidate_num, vocab_size, end_id); \ + topk_stage_2_opt3_sampling<<>>( \ + topk_tmp_id_buf, \ + topk_tmp_val_buf, \ + topk_tmp2_val_buf, \ + ids, \ + sequence_length, \ + finished_buf, \ + candidate_num, \ + curandstate, \ + end_id, \ + vocab_size); \ + break; \ + + +template +void topK_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + T* log_probs, + int* ids, + int* sequence_length, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments args, + cudaStream_t stream, + const int batch_size) +{ + // Here, we put batch size as an argument because the batch size of initialization + // and inference may be different due to pipelint parallelism. + const int candidate_num = args.candidate_num_; + const int vocab_size = args.vocab_size_padded_; + const int end_id = args.end_id_; + + const int max_block_per_beam = 8; + int temp_log_probs_buf_size = batch_size * vocab_size; // type float + int topk_tmp_ids_buf_size = batch_size * candidate_num * max_block_per_beam; // type int + int topk_tmp_val_buf_size = batch_size * candidate_num * max_block_per_beam; // type float + + // prevent memory misalinged address + temp_log_probs_buf_size = (int)(ceil(temp_log_probs_buf_size / 4.)) * 4; + topk_tmp_ids_buf_size = (int)(ceil(topk_tmp_ids_buf_size / 4.)) * 4; + topk_tmp_val_buf_size = (int)(ceil(topk_tmp_val_buf_size / 4.)) * 4; + + if(workspace == nullptr) + { + workspace_size = sizeof(T) * temp_log_probs_buf_size + + sizeof(int) * topk_tmp_ids_buf_size + + 2 * sizeof(T) * topk_tmp_val_buf_size; + return; + } + else + { + T* temp_log_probs = (T*)workspace; + int* topk_tmp_id_buf = (int*)(temp_log_probs + temp_log_probs_buf_size); + T* topk_tmp_val_buf = (T*)(topk_tmp_id_buf + topk_tmp_ids_buf_size); + T* topk_tmp2_val_buf = (T*)(topk_tmp_val_buf + topk_tmp_val_buf_size); + + switch(candidate_num) + { + CASE_K(1,128,128,8); + CASE_K(4,128,128,8); + CASE_K(8,128,128,8); + CASE_K(16,128,128,8); + CASE_K(32,256,128,8); + CASE_K(64,256,256,8); + default: + printf("[ERROR] Topk kernel does not support candidate_num = %d \n", candidate_num); + exit(0); + break; + } + return; + } +} + +#undef CASE_K + + template void topK_sampling_kernel_kernelLauncher(void* workspace, size_t& workspace_size, float* log_probs, @@ -606,7 +828,8 @@ template void topK_sampling_kernel_kernelLauncher(void* workspace, bool* finished_buf, int random_num, DecodingSamplingArguments args, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); template void topK_sampling_kernel_kernelLauncher(void* workspace, size_t& workspace_size, @@ -616,7 +839,31 @@ template void topK_sampling_kernel_kernelLauncher(void* workspace, bool* finished_buf, int random_num, DecodingSamplingArguments args, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); + +template void topK_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + float* log_probs, + int* ids, + int* sequence_length, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments args, + cudaStream_t stream, + const int batch_size); + +template void topK_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + half* log_probs, + int* ids, + int* sequence_length, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments args, + cudaStream_t stream, + const int batch_size); + __global__ void init_topp_id_val(int* topp_id_val_buf, int* topp_offset_buf, @@ -670,21 +917,61 @@ __global__ void top_p_sampling(T* sorted_log_probs, curandState_t local_state; curand_init((T)random_num, tid, 0, &local_state); T rand_num = (T)curand_uniform(&local_state) * (T)prob_threshold; - ids[tid] = sorted_id_vals[vocab_size - 1]; + ids[tid] = sorted_id_vals[tid * vocab_size]; for(int i = tid * vocab_size; i < tid * vocab_size + vocab_size; i++) { rand_num = rand_num - sorted_log_probs[i]; - if(rand_num <= (T)0.0) + if(rand_num <= (T)0.0f) { ids[tid] = sorted_id_vals[i]; break; } } - if(sequence_length != nullptr && finished_buf != nullptr) + if(finished_buf != nullptr) { - sequence_length[tid] = finished_buf[tid] ? sequence_length[tid] : sequence_length[tid] + 1; finished_buf[tid] = ids[tid] == end_id ? 1 : 0; + if(sequence_length != nullptr) + { + sequence_length[tid] = finished_buf[tid] ? sequence_length[tid] : sequence_length[tid] + 1; + } + } +} + +template +__global__ void top_p_sampling_v2(T* sorted_log_probs, + int* sorted_id_vals, + int* ids, + int* sequence_length, + bool* finished_buf, + const int vocab_size, + curandState_t* curandstate, + const float prob_threshold, + const int end_id, + const int batch_size) +{ + int tid = blockDim.x * blockIdx.x + threadIdx.x; + if(tid < batch_size) + { + T rand_num = (T)curand_uniform(curandstate + tid) * (T)prob_threshold; + ids[tid] = sorted_id_vals[vocab_size - 1]; + for(int i = tid * vocab_size; i < tid * vocab_size + vocab_size; i++) + { + rand_num = rand_num - sorted_log_probs[i]; + if(rand_num <= (T)0.0) + { + ids[tid] = sorted_id_vals[i]; + break; + } + }; + if(finished_buf != nullptr) + { + finished_buf[tid] = ids[tid] == end_id ? 1 : 0; + if(sequence_length != nullptr) + { + sequence_length[tid] = finished_buf[tid] ? sequence_length[tid] : sequence_length[tid] + 1; + } + } } } @@ -731,17 +1018,17 @@ void topP_sampling_kernel_kernelLauncher(void* workspace, int* output_ids, int* sequence_length, const int n, - cudaStream_t stream) + cudaStream_t stream, + const int batch_size) { - const int batch_size = args.batch_size_; - const int vocab_size = args.vocab_size_; + const int vocab_size = args.vocab_size_padded_; int sorted_log_prob_buf_size = batch_size * vocab_size; // type T int sorted_id_vals_buf_size = batch_size * vocab_size; // type int sorted_log_prob_buf_size = (int)(ceil(sorted_log_prob_buf_size / 4.)) * 4; sorted_id_vals_buf_size = (int)(ceil(sorted_id_vals_buf_size / 4.)) * 4; void *cub_temp_storage = workspace; - T* sorted_log_probs = (T*)(cub_temp_storage + args.cub_temp_storage_size_); + T* sorted_log_probs = (T*)((char*)cub_temp_storage + args.cub_temp_storage_size_); int* sorted_id_vals = (int*)(sorted_log_probs + sorted_log_prob_buf_size); if(workspace == nullptr) @@ -800,7 +1087,8 @@ template void topP_sampling_kernel_kernelLauncher(void* workspace, int* output_ids, int* sequence_length, const int n, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); template void topP_sampling_kernel_kernelLauncher(void* workspace, size_t& workspace_size, @@ -813,9 +1101,184 @@ template void topP_sampling_kernel_kernelLauncher(void* workspace, int* output_ids, int* sequence_length, const int n, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); + +template +__launch_bounds__(THREADBLOCK_SIZE) +__global__ +void beam_topK_kernel_for_topP(const T* log_probs, + int* topk_tmp_id_buf, + T* topk_tmp_val_buf, + const int vocab_size, + int* offset_buf, + int* begin_offset_buf, + float p_threshold) +{ + typedef cub::BlockReduce, THREADBLOCK_SIZE> BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + + int thread_id = threadIdx.x; + int block_id = blockIdx.x; + TopK partial; + const bool IS_FP16 = std::is_same::value; + const T MAX_T_VAL = (IS_FP16)? HALF_FLT_MAX : FLT_MAX; + + #pragma unroll + for(int i = 0; i < MAX_K; ++i) + { + partial.p[i] = -1; + partial.u[i] = -MAX_T_VAL; + } + #pragma unroll + for(int elem_id = thread_id; elem_id < vocab_size; elem_id += THREADBLOCK_SIZE) + { + int index = elem_id + block_id * vocab_size; + partial.insert(log_probs[index], index); + } + + TopK total = BlockReduce(temp_storage).Reduce(partial, reduce_topk_op); + + + if(thread_id == 0) + { + begin_offset_buf[block_id] = offset_buf[block_id]; + T sum_prob = (T)(0.0f); + + #pragma unroll + for(int i = 0; i < MAX_K; i++) + { + sum_prob += total.u[i]; + } + + if ((float)sum_prob >= p_threshold) + { + begin_offset_buf[block_id] += vocab_size; + int index = block_id * vocab_size; + + #pragma unroll + for(int i = 0; i < MAX_K; ++i) + { + topk_tmp_id_buf[index + i] = total.p[i]%vocab_size; + topk_tmp_val_buf[index + i] = total.u[i]; + } + } + } +} + +template +void topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + const T* log_probs, + const int* id_vals, + int* offset_buf, + int* begin_offset_buf, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + int* output_ids, + int* sequence_length, + const int n, + cudaStream_t stream, + const int batch_size) +{ + // Here, we put batch size as an argument because the batch size of initialization + // and inference may be different due to pipelint parallelism. + const int vocab_size = args.vocab_size_padded_; + const int block_size = 256; + + int sorted_log_prob_buf_size = batch_size * vocab_size; // type T + int sorted_id_vals_buf_size = batch_size * vocab_size; // type int + sorted_log_prob_buf_size = (int)(ceil(sorted_log_prob_buf_size / 4.)) * 4; + sorted_id_vals_buf_size = (int)(ceil(sorted_id_vals_buf_size / 4.)) * 4; + + void *cub_temp_storage = workspace; + T* sorted_log_probs = (T*)((char*)cub_temp_storage + args.cub_temp_storage_size_); + int* sorted_id_vals = (int*)(sorted_log_probs + sorted_log_prob_buf_size); + + + if(workspace == nullptr) + { + cub::DeviceSegmentedRadixSort::SortPairsDescending(nullptr, + args.cub_temp_storage_size_, + log_probs, + (T*)nullptr, + id_vals, + (int*)nullptr, + vocab_size * batch_size, + batch_size, + begin_offset_buf, + offset_buf + 1, + 0, // begin_bit + sizeof(T)*8, // end_bit = sizeof(KeyT) * 8 + stream); // cudaStream_t + args.cub_temp_storage_size_ = (int)(ceil(args.cub_temp_storage_size_ / 4.)) * 4; + workspace_size = sizeof(T) * sorted_log_prob_buf_size + sizeof(int) * sorted_id_vals_buf_size + args.cub_temp_storage_size_; + } + else + { + beam_topK_kernel_for_topP<<>>(log_probs, \ + sorted_id_vals, sorted_log_probs, vocab_size, offset_buf,begin_offset_buf, args.probability_threshold_); + + cub::DeviceSegmentedRadixSort::SortPairsDescending(cub_temp_storage, + args.cub_temp_storage_size_, + log_probs, + sorted_log_probs, + id_vals, + sorted_id_vals, + n * batch_size, + batch_size, + begin_offset_buf, offset_buf+1, + 0, // begin_bit + sizeof(T)*8, // end_bit = sizeof(KeyT) * 8 + stream); // cudaStream_t + + dim3 block(256); + dim3 grid((int)(ceil(batch_size * 1.0 / 256))); + top_p_sampling_v2<<>>(sorted_log_probs, + sorted_id_vals, + output_ids, + sequence_length, + finished_buf, + n, + curandstate, + args.probability_threshold_, + args.end_id_, + batch_size); + } +} + +template void topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + const float* log_probs, + const int* id_vals, + int* offset_buf, + int* begin_offset_buf, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + int* output_ids, + int* sequence_length, + const int n, + cudaStream_t stream, + const int batch_size); + +template void topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + const half* log_probs, + const int* id_vals, + int* offset_buf, + int* begin_offset_buf, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + int* output_ids, + int* sequence_length, + const int n, + cudaStream_t stream, + const int batch_size); template __launch_bounds__(THREADBLOCK_SIZE) @@ -898,7 +1361,8 @@ void topK_topP_sampling_kernel_kernelLauncher(void* workspace, const T* logits, const int random_num, DecodingSamplingArguments& args, - cudaStream_t stream) + cudaStream_t stream, + const int batch_size) { if(workspace == nullptr) { @@ -906,7 +1370,6 @@ void topK_topP_sampling_kernel_kernelLauncher(void* workspace, } else { - const int batch_size = args.batch_size_; const int vocab_size = args.vocab_size_padded_; const int block_size = 256; const T prob_threshold = args.probability_threshold_; @@ -915,6 +1378,8 @@ void topK_topP_sampling_kernel_kernelLauncher(void* workspace, CASE_K(1); CASE_K(2); CASE_K(4); + CASE_K(16); + CASE_K(64); default: printf("[ERROR] Topk kernel does not support candidate_num = %d \n", args.candidate_num_); exit(0); @@ -925,13 +1390,183 @@ void topK_topP_sampling_kernel_kernelLauncher(void* workspace, #undef CASE_K +template +__global__ void topk_topp_sampling_kernel_v2(const int* __restrict topk_tmp_id_buf, + T* topk_tmp_val_buf, + T* topk_tmp2_val_buf, + int* ids, + int* sequence_length, + bool* finished_buf, + const int k, + const T prob_threshold, + curandState_t* curandstate, + const int end_id, + const int vocab_size) +{ + const int size = k * BLOCKS_PER_BEAM_; + const int tid = threadIdx.x; + const int batch_id = blockIdx.x; + const bool IS_FP16 = std::is_same::value; + const T MAX_T_VAL = (IS_FP16)? HALF_FLT_MAX : FLT_MAX; + + typedef cub::BlockReduce, BLOCK_SIZE_> BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + extern __shared__ char array[]; + __shared__ float rand_num; + __shared__ float s_max; + __shared__ float s_sum; + T *s_val = topk_tmp_val_buf + batch_id * size; + int *s_id = (int*)(array); + s_max = 0.0f; + s_sum = 0.0f; + TopK_2 partial; + + for(int index = tid; index < size; index += BLOCK_SIZE_) + { + topk_tmp2_val_buf[batch_id * size + index] = topk_tmp_val_buf[batch_id * size + index]; + } + __syncthreads(); + T *s_val2 = topk_tmp2_val_buf + batch_id * size; + + for(int ite = 0; ite < k; ite++) + { + partial.init(); + #pragma unroll + for(int i = tid; i < size; i+= BLOCK_SIZE_) + { + partial.insert((float)s_val[i], i); + } + + TopK_2 total = BlockReduce(temp_storage).Reduce(partial, reduce_topk_op_2); + + if(ite == 0) + s_max = total.u; + + if(tid == 0) + { + s_id[ite] = total.p; + s_val[total.p] = -MAX_T_VAL; + total.u = __expf(total.u - s_max); + s_val2[total.p] = (T)total.u; + s_sum += total.u; + } + __syncthreads(); + } + if(tid == 0) + { + rand_num = (float)curand_uniform(curandstate + blockIdx.x) * (float)prob_threshold * s_sum; + for(int i = 0; i < k; i++) + { + rand_num = rand_num - (float)s_val2[s_id[i]]; + if(rand_num <= 0.0f) + { + ids[batch_id] = topk_tmp_id_buf[batch_id * size + s_id[i]] % vocab_size; + break; + } + } + if(finished_buf != nullptr) + { + finished_buf[batch_id] = ids[batch_id] == end_id ? 1 : 0; + if(sequence_length != nullptr) + { + sequence_length[batch_id] = finished_buf[batch_id] ? sequence_length[batch_id] : sequence_length[batch_id] + 1; + } + } + } +} + +#define CASE_K(K,BLOCK_SIZE_1_, BLOCK_SIZE_2_, BLOCKS_PER_BEAM_) \ + case K: \ + topk_stage_1_opt3<<>>( \ + logits, \ + temp_logits, \ + topk_tmp_id_buf, \ + topk_tmp_val_buf, \ + finished_buf, \ + candidate_num, vocab_size, end_id); \ + topk_topp_sampling_kernel_v2<<>>( \ + topk_tmp_id_buf, \ + topk_tmp_val_buf, \ + topk_tmp2_val_buf, \ + output_ids, \ + nullptr, \ + finished_buf, \ + candidate_num, \ + prob_threshold, \ + curandstate, \ + end_id, \ + vocab_size); \ + break; \ + +template +void topK_topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + int* output_ids, + const T* logits, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + cudaStream_t stream, + const int batch_size) +{ + // Here, we put batch size as an argument because the batch size of initialization + // and inference may be different due to pipelint parallelism. + const int candidate_num = args.candidate_num_; + const int vocab_size = args.vocab_size_padded_; + const int end_id = args.end_id_; + const T prob_threshold = args.probability_threshold_; + + const int max_block_per_beam = 8; + int temp_logits_buf_size = batch_size * vocab_size; // type float + int topk_tmp_ids_buf_size = batch_size * candidate_num * max_block_per_beam; // type int + int topk_tmp_val_buf_size = batch_size * candidate_num * max_block_per_beam; // type float + + // prevent memory misalinged address + temp_logits_buf_size = (int)(ceil(temp_logits_buf_size / 4.)) * 4; + topk_tmp_ids_buf_size = (int)(ceil(topk_tmp_ids_buf_size / 4.)) * 4; + topk_tmp_val_buf_size = (int)(ceil(topk_tmp_val_buf_size / 4.)) * 4; + + if(workspace == nullptr) + { + workspace_size = sizeof(T) * temp_logits_buf_size + + sizeof(int) * topk_tmp_ids_buf_size + + 2 * sizeof(T) * topk_tmp_val_buf_size; + return; + } + else + { + T* temp_logits = (T*)workspace; + int* topk_tmp_id_buf = (int*)(temp_logits + temp_logits_buf_size); + T* topk_tmp_val_buf = (T*)(topk_tmp_id_buf + topk_tmp_ids_buf_size); + T* topk_tmp2_val_buf = (T*)(topk_tmp_val_buf + topk_tmp_val_buf_size); + + switch(candidate_num) + { + CASE_K(1,128,128,8); + CASE_K(4,128,128,8); + CASE_K(8,128,128,8); + CASE_K(16,128,128,8); + CASE_K(32,256,128,8); + CASE_K(64,256,256,8); + default: + printf("[ERROR] Topk kernel does not support candidate_num = %d \n", candidate_num); + exit(0); + break; + } + return; + } +} + +#undef CASE_K + template void topK_topP_sampling_kernel_kernelLauncher(void* workspace, size_t& workspace_size, int* output_ids, const float* logits, const int random_num, DecodingSamplingArguments& args, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); template void topK_topP_sampling_kernel_kernelLauncher(void* workspace, @@ -940,5 +1575,27 @@ template void topK_topP_sampling_kernel_kernelLauncher(void* workspace, const half* logits, const int random_num, DecodingSamplingArguments& args, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); + +template void topK_topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + int* output_ids, + const float* logits, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + cudaStream_t stream, + const int batch_size); + +template void topK_topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + int* output_ids, + const half* logits, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + cudaStream_t stream, + const int batch_size); + } // end of namespace fastertransformer diff --git a/fastertransformer/cuda/topk_kernels.cuh b/fastertransformer/cuda/topk_kernels.cuh index a4c9e1517..209789c67 100644 --- a/fastertransformer/cuda/topk_kernels.cuh +++ b/fastertransformer/cuda/topk_kernels.cuh @@ -19,7 +19,7 @@ #include #include #include -#include "fastertransformer/arguments.h" +#include "fastertransformer/utils/arguments.h" #include "fastertransformer/cuda/cuda_kernels.h" #include #include @@ -126,14 +126,15 @@ void topK_kernelLauncher(void* workspace, size_t& workspace_size, T* log_probs, int* ids, + const bool* finished, DecodingBeamsearchArguments args, cudaStream_t stream); template void topK_softMax(const T* log_probs, - const float* bias, + const T* bias, const bool* finished, - T* cum_log_probs, + float* cum_log_probs, int* ids, void * tmp_storage, DecodingBeamsearchArguments args, @@ -142,6 +143,22 @@ void topK_softMax(const T* log_probs, /* *************************** end of BeamSearch kernel *********************************** */ /* ********************************** Sampling kernel *********************************** */ +void ker_curand_setupLauncher(curandState_t* state, + DecodingSamplingArguments args, + cudaStream_t stream); + + +template +void topK_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + T* log_probs, + int* ids, + int* sequence_length, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments args, + cudaStream_t stream, + const int batch_size); template void topK_sampling_kernel_kernelLauncher(void* workspace, @@ -152,7 +169,8 @@ void topK_sampling_kernel_kernelLauncher(void* workspace, bool* finished_buf, int random_num, DecodingSamplingArguments args, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); template void topP_sampling_kernel_kernelLauncher(void* workspace, @@ -166,7 +184,24 @@ void topP_sampling_kernel_kernelLauncher(void* workspace, int* output_ids, int* sequence_length, const int n, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); + +template +void topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + const T* log_probs, + const int* id_vals, + int* offset_buf, + int* begin_offset_buf, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + int* output_ids, + int* sequence_length, + const int n, + cudaStream_t stream, + const int batch_size); template void beam_topK_kernelLauncher(const T* log_probs, @@ -182,7 +217,19 @@ void topK_topP_sampling_kernel_kernelLauncher(void* workspace, const T* logits, const int random_num, DecodingSamplingArguments& args, - cudaStream_t stream); + cudaStream_t stream, + const int batch_size); + +template +void topK_topP_sampling_kernel_kernelLauncher_v2(void* workspace, + size_t& workspace_size, + int* output_ids, + const T* logits, + bool* finished_buf, + curandState_t* curandstate, + DecodingSamplingArguments& args, + cudaStream_t stream, + const int batch_size); /* *************************** end of Sampling kernel *********************************** */ diff --git a/fastertransformer/cuda/transformer_kernels.cu b/fastertransformer/cuda/transformer_kernels.cu new file mode 100644 index 000000000..e9c654adc --- /dev/null +++ b/fastertransformer/cuda/transformer_kernels.cu @@ -0,0 +1,604 @@ +/* +* Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "fastertransformer/cuda/transformer_kernels.cuh" + +namespace fastertransformer +{ + + +template +__inline__ __device__ +T gelu(T x) +{ + float cdf = 0.5f * (1.0f + tanhf((0.7978845608028654f * (x + 0.044715f * x * x * x)))); + return x * cdf; +} + +template <> +__inline__ __device__ +half2 gelu(half2 val) +{ + half2 val_pow3 = __hmul2(val, __hmul2(val, val)); + float2 tmp_pow = __half22float2(val_pow3); + float2 tmp = __half22float2(val); + + tmp.x = 0.5f * (1.0f + tanhf((0.7978845608028654f * (tmp.x + 0.044715f * tmp_pow.x)))); + tmp.y = 0.5f * (1.0f + tanhf((0.7978845608028654f * (tmp.y + 0.044715f * tmp_pow.y)))); + return __hmul2(val, __float22half2_rn(tmp)); + +} + +template +__inline__ __device__ +T warpReduceSum(T val) +{ + for(int mask = 16; mask > 0; mask >>= 1) + val += __shfl_xor_sync(FINAL_MASK, val, mask, 32); + return val; +} + +template +__inline__ __device__ +T blockReduceSum(T val) +{ + static __shared__ T shared[32]; + int lane = threadIdx.x & 0x1f; + int wid = threadIdx.x >> 5; + + val = warpReduceSum(val); + + if(lane == 0) + shared[wid] = val; + __syncthreads(); + + val = (threadIdx.x < (blockDim.x >> 5 )) ? shared[lane] : (T)0.0f; + val = warpReduceSum(val); + return val; +} + +template +__global__ +void add_bias_gelu(T* out, const T* __restrict bias, int m, int n) +{ + for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) + { + T reg_bias = __ldg(&bias[id % n]); + T val = out[id] + reg_bias; + out[id] = (T)(gelu(val)); + } +} + +template <> + __global__ +void add_bias_gelu(half* out, const half* __restrict bias, int m, int n) +{ + half2* out_ptr = (half2*) out; + const half2* bias_ptr = (half2*) bias; + + for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) + { + half2 reg_bias = __ldg(&bias_ptr[id % n]); + half2 val = out_ptr[id] + reg_bias; + out_ptr[id] = gelu(val); + } +} + +template +__global__ +void add_bias_relu(T* out, const T* __restrict bias, int m, int n) +{ + for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) + { + T reg_bias = __ldg(&bias[id % n]); + T val = out[id] + reg_bias; + out[id] = (T)(val > 0.0f ? val : 0.0f); + } +} + +template <> + __global__ +void add_bias_relu(half* out, const half* __restrict bias, int m, int n) +{ + half2* out_ptr = (half2*) out; + const half2* bias_ptr = (half2*) bias; + + for(int id = blockIdx.x * blockDim.x + threadIdx.x; id < m * n; id += blockDim.x * gridDim.x) + { + half2 reg_bias = __ldg(&bias_ptr[id % n]); + half2 val = out_ptr[id] + reg_bias; + val.x = val.x > (half)0.0f ? val.x : (half)0.0f; + val.y = val.y > (half)0.0f ? val.y : (half)0.0f; + out_ptr[id] = val; + } +} + +template +__global__ +void add_bias_input_layernorm(T* out, const T* input, const T* bias, const T* gamma, const T* beta, int m, int n) +{ + int tid = threadIdx.x; + + __shared__ float s_mean; + __shared__ float s_variance; + float mean = 0.0f; + float variance = 0.0f; + + float local_out = 0.0f; + local_out += (float)(out[blockIdx.x * n + tid] + input[blockIdx.x * n + tid] + __ldg(&bias[tid])); + + mean = blockReduceSum(local_out); + if(threadIdx.x == 0) + s_mean = mean / n; + __syncthreads(); + + variance = blockReduceSum((local_out - s_mean) * (local_out - s_mean)); + if(threadIdx.x == 0) + s_variance = variance / n + 1e-6f; + __syncthreads(); + + out[blockIdx.x * n + tid] = + (T)(((local_out - s_mean) * rsqrtf(s_variance)) * (float)(__ldg(&gamma[tid])) + (float)(__ldg(&beta[tid]))); +} + +template <> +__global__ +void add_bias_input_layernorm(half* out, const half* input, const half* bias, + const half* gamma, const half* beta, int m, int n) +{ + + int tid = threadIdx.x; + __shared__ float s_mean; + __shared__ float s_variance; + float mean = 0.0f; + float variance = 0.0f; + float2 local_out_fp2; + + half2* out_ptr = (half2*)out; + const half2* input_ptr = (const half2*)input; + const half2* bias_ptr = (const half2*)bias; + const half2* gamma_ptr = (const half2*)gamma; + const half2* beta_ptr = (const half2*)beta; + + float local_out = 0.0f; + int id = blockIdx.x * n / 2 + tid; + local_out_fp2 = __half22float2(__hadd2(__hadd2(out_ptr[id], input_ptr[id]), __ldg(&bias_ptr[tid]))); + local_out += local_out_fp2.x; + local_out += local_out_fp2.y; + + mean = blockReduceSum(local_out); + if(threadIdx.x == 0) + s_mean = mean / n; + __syncthreads(); + + variance = (local_out_fp2.x - s_mean) * (local_out_fp2.x - s_mean); + variance += (local_out_fp2.y - s_mean) * (local_out_fp2.y - s_mean); + variance = blockReduceSum(variance); + if(threadIdx.x == 0) + s_variance = rsqrtf(variance / n + 1e-6f); + __syncthreads(); + + float2 gamma_val = __half22float2(__ldg(&gamma_ptr[tid])); + float2 beta_val = __half22float2(__ldg(&beta_ptr[tid])); + local_out_fp2.x = (local_out_fp2.x - s_mean) * s_variance * gamma_val.x + beta_val.x; + local_out_fp2.y = (local_out_fp2.y - s_mean) * s_variance * gamma_val.y + beta_val.y; + out_ptr[id] = __float22half2_rn(local_out_fp2); +} + + +template +__global__ +void add_bias_input_layernorm_v2(T* out, const T* __restrict input, const T* __restrict bias, + const T* __restrict gamma, const T* __restrict beta, int n) +{ + const int ite = 4; + const int tid = threadIdx.x; + const int bid = blockIdx.x; + + __shared__ float s_mean; + __shared__ float s_variance; + float mean = 0.0f; + float variance = 0.0f; + float local_out[ite]; + + float sum = 0.0f; + #pragma unroll + for(int i = 0; i < ite; i++) + { + int col_id = i * blockDim.x + tid; + int id = bid * n + col_id; + local_out[i] = (float)(out[id] + __ldg(&input[id]) + __ldg(&bias[col_id])); + sum += local_out[i]; + } + + mean = blockReduceSum(sum); + if(tid == 0) + s_mean = mean / n; + __syncthreads(); + + float var = 0.0f; + #pragma unroll + for(int i = 0; i < ite; i++) + { + float diff = local_out[i] - s_mean; + var += diff * diff; + } + + variance = blockReduceSum(var); + if(tid == 0) + s_variance = rsqrtf(variance / n + 1e-6f); + __syncthreads(); + + #pragma unroll + for(int i = 0; i < ite; i++) + { + int col_id = i * blockDim.x + tid; + int id = bid * n + col_id; + out[id] = (T)((local_out[i] - s_mean) * s_variance * (float)__ldg(&gamma[col_id]) + (float)__ldg(&beta[col_id])); + } +} + +template <> +__global__ +void add_bias_input_layernorm_v2(half* out, const half* __restrict input, const half* __restrict bias, + const half* __restrict gamma, const half* __restrict beta, int n) +{ + const int ite = 4; + const int tid = threadIdx.x; + const int bid = blockIdx.x; + __shared__ float s_mean; + __shared__ float s_variance; + float mean = 0.0f; + float variance = 0.0f; + half2 local_out_half2[ite]; + + half2* out_ptr = (half2*)out; + const half2* input_ptr = (const half2*)input; + const half2* bias_ptr = (const half2*)bias; + const half2* gamma_ptr = (const half2*)gamma; + const half2* beta_ptr = (const half2*)beta; + + // float sum = 0.0f; + half2 sum = __float2half2_rn(0.0f); + #pragma unroll + for(int i = 0; i < ite; i++) + { + int col_id = i * blockDim.x + tid; + int id = bid * n / 2 + col_id; + local_out_half2[i] = out_ptr[id] + __ldg(&input_ptr[id]) + __ldg(&bias_ptr[col_id]); + sum += local_out_half2[i]; + } + + mean = blockReduceSum((float)(sum.x + sum.y)); + if(threadIdx.x == 0) + s_mean = mean / n; + __syncthreads(); + + float var = 0.0f; + half2 s_mean_2 = __float2half2_rn(s_mean); + #pragma unroll + for(int i = 0; i < ite; i++) + { + local_out_half2[i] = local_out_half2[i] - s_mean_2; + float v1 = (float)local_out_half2[i].x; + float v2 = (float)local_out_half2[i].y; + var += v1 * v1 + v2 * v2; + } + + variance = blockReduceSum(var); + if(threadIdx.x == 0) + s_variance = rsqrtf(variance / n + 1e-6f); + __syncthreads(); + + half2 s_var_2 = __float2half2_rn(s_variance); + #pragma unroll + for(int i = 0; i < ite; i++) + { + int col_id = i * blockDim.x + tid; + int id = bid * n / 2 + col_id; + out_ptr[id] = local_out_half2[i] * s_var_2 * __ldg(&gamma_ptr[col_id]) + __ldg(&beta_ptr[col_id]); + } +} + +template +void add_bias_act_kernelLauncher(T* out, const T* bias, int m, int n, ActivationType activation_type, cudaStream_t stream) +{ + const int data_type_factor = 4 / sizeof(T); // 1 for fp32, 2 for fp16 + dim3 block, grid; + if(n / 4 / data_type_factor <= 1024) + { + block.x = n / 4 / data_type_factor; + grid.x = m; + } + else + { + block.x = 1024; + grid.x = ceil(m * n / 1024.); + } + + + if(activation_type == ActivationType::RELU) + add_bias_relu<<>>(out, bias, m, n / data_type_factor); + else if(activation_type == ActivationType::GELU) + add_bias_gelu<<>>(out, bias, m, n / data_type_factor); +} + +template +void add_bias_input_layernorm_kernelLauncher(T* out, const T* input, const T* bias, + const T* gamma, const T* beta, int m, int n, cudaStream_t stream) +{ + dim3 grid(m); + dim3 block(n); + assert(n <= 1024); + if(n == 768 || n == 1024) + add_bias_input_layernorm_v2<<>>(out, input, bias, gamma, beta, n); + else + add_bias_input_layernorm<<>>(out, input, bias, gamma, beta, m, n); +} + +template <> +void add_bias_input_layernorm_kernelLauncher(half* out, const half* input, const half* bias, + const half* gamma, const half* beta, int m, int n, cudaStream_t stream) +{ + dim3 grid(m); + dim3 block(n / 2); + assert(n / 2 <= 1024); + + if(m >= 512 && (n == 768 || n == 1024)) + add_bias_input_layernorm_v2<<>>(out, input, bias, gamma, beta, n); + else + add_bias_input_layernorm<<>>(out, input, bias, gamma, beta, m, n); +} + +template +__global__ +void add_bias_input_layernorm_2(const T* __restrict input, + const T* __restrict gamma, + const T* __restrict beta, + const T* __restrict bias, + T* output, T* norm_output, + int m, int n) +{ + int tid = threadIdx.x; + + __shared__ float s_mean; + __shared__ float s_variance; + float mean = 0.0f; + float variance = 0.0f; + + float local_sum = 0.0f; + for(int i = tid; i < n; i+= blockDim.x) + { + float local_out = (float)(__ldg(&input[blockIdx.x * n + i])); + local_out += (float)(output[blockIdx.x * n + i]); + local_out += (float)(__ldg(&bias[i])); + output[blockIdx.x * n + i] = (T)local_out; + local_sum += local_out; + } + + mean = blockReduceSum(local_sum); + + if(threadIdx.x == 0) + s_mean = mean / n; + __syncthreads(); + + float local_var_sum = 0.0f; + for(int i = tid; i < n; i+= blockDim.x) + { + float diff = (float)(__ldg(&output[blockIdx.x * n + i])) - s_mean; + local_var_sum += diff * diff; + } + variance = blockReduceSum(local_var_sum); + + if(threadIdx.x == 0) + s_variance = rsqrtf(variance / n + 1e-6); + __syncthreads(); + + for(int i = tid; i < n; i+= blockDim.x) + { + norm_output[blockIdx.x * n + i] = + (T)((( (float)output[blockIdx.x * n + i] - s_mean) * s_variance) * (float)(__ldg(&gamma[i])) + (float)(__ldg(&beta[i]))); + } +} + +template +void add_bias_input_layernorm_2_kernelLauncher( + const T* input, + const T* gamma, + const T* beta, + const T* bias, + T* output, + T* norm_output, + int m, int n, + cudaStream_t stream) +{ + dim3 grid(m); + dim3 block(min(n, 1024)); + + /* For general cases, n is equal to hidden_units, e.g., 512/1024. + Since we have warp shuffle inside the code, block.x % 32 should be 0. + */ + + if(n % 32 != 0) + block.x = 1024; + + block.x = block.x / (4 / sizeof(T)); // if using half, only need half of block.x + + /* should pay attention to the rsqrt precision*/ + add_bias_input_layernorm_2<<>>(input, gamma, beta, bias, output, norm_output, m, n); // For gpt-3 +} + +template +__global__ +void add_bias_input(T* output, const T* input, const T* bias, const int m, const int n) +{ + // This kernel can run with any block size and grid size + // Since the hidden dimension of GPT-3 would be larger than 1024 + const int bid = blockIdx.x; + const int blocks_per_row = n / blockDim.x; + const int col_index = (bid % blocks_per_row) * blockDim.x + threadIdx.x; + T bias_val = __ldg(&bias[col_index]); + for(int index = bid * blockDim.x + threadIdx.x; index < m * n; index += blockDim.x * gridDim.x) + { + output[index] = output[index] + input[index] + bias_val; + } +} + +template +void add_bias_input_kernelLauncher(T* output, const T* bias, const T* input, const int m, const int n, cudaStream_t stream) +{ + dim3 grid(min(m, 65536)); + dim3 block(min(n, 1024)); + + add_bias_input<<>>(output, input, bias, m, n); +} + +template +__global__ +void layer_norm_kernel_generalize(const T* __restrict input, + const T* __restrict gamma, + const T* __restrict beta, + T* output, + int m, int n) +{ + const int tid = threadIdx.x; + + __shared__ float s_mean; + __shared__ float s_variance; + float mean = 0.0f; + float variance = 0.0f; + + float local_sum = 0.0f; + for(int i = tid; i < n; i+= blockDim.x) + { + local_sum += (float)(__ldg(&input[blockIdx.x * n + i])); + } + + mean = blockReduceSum(local_sum); + + if(threadIdx.x == 0) + s_mean = mean / n; + __syncthreads(); + + float local_var_sum = 0.0f; + for(int i = tid; i < n; i+= blockDim.x) + { + float diff = (float)(__ldg(&input[blockIdx.x * n + i])) - s_mean; + local_var_sum += diff * diff; + } + variance = blockReduceSum(local_var_sum); + + if(threadIdx.x == 0) + s_variance = rsqrtf(variance / n + 1e-6); + + __syncthreads(); + + for(int i = tid; i < n; i+= blockDim.x) + { + output[blockIdx.x * n + i] = + (T)((( (float)input[blockIdx.x * n + i] - s_mean) * s_variance) * (float)(__ldg(&gamma[i])) + (float)(__ldg(&beta[i]))); + } +} + +template +void layer_norm( + const T* input, + const T* gamma, + const T* beta, + T* output, + int m, int n, + cudaStream_t stream) +{ + dim3 grid(m); + dim3 block(min(n, 1024)); + + /* For general cases, n is equal to hidden_units, e.g., 512/1024. + Since we have warp shuffle inside the code, block.x % 32 should be 0. + */ + if(n % 32 != 0) + block.x = 1024; + + block.x = block.x / (4 / sizeof(T)); // if using half, only need half of block.x + + /* should pay attention to the rsqrt precision*/ + layer_norm_kernel_generalize<<>>(input, gamma, beta, output, m, n); // For gpt-3 +} + +template void add_bias_act_kernelLauncher( + float* out, const float* bias, int m, int n, ActivationType activation_type, cudaStream_t stream); + +template void add_bias_input_layernorm_kernelLauncher( + float* out, const float* input, const float* bias, const float* gamma, const float* beta, + int m, int n, cudaStream_t stream); + +template void add_bias_act_kernelLauncher( + half* out, const half* bias, int m, int n, ActivationType activation_type, cudaStream_t stream); + +template void add_bias_input_layernorm_kernelLauncher( + half* out, const half* input, const half* bias, const half* gamma, const half* beta, + int m, int n, cudaStream_t stream); + +template void add_bias_input_layernorm_2_kernelLauncher( + const float* input, + const float* gamma, + const float* beta, + const float* bias, + float* output, + float* norm_output, + int m, int n, cudaStream_t stream); + +template void add_bias_input_layernorm_2_kernelLauncher( + const half* input, + const half* gamma, + const half* beta, + const half* bias, + half* output, + half* norm_output, + int m, int n, cudaStream_t stream); + +template void add_bias_input_kernelLauncher( + float* output, + const float* bias, + const float* input, + const int m, + const int n, + cudaStream_t stream); + +template void add_bias_input_kernelLauncher( + half* output, + const half* bias, + const half* input, + const int m, + const int n, + cudaStream_t stream); + +template void layer_norm( + const float* input, + const float* gamma, + const float* beta, + float* output, + int m, int n, + cudaStream_t stream); + +template void layer_norm( + const half* input, + const half* gamma, + const half* beta, + half* output, + int m, int n, + cudaStream_t stream); + +} // namespace fastertransformer \ No newline at end of file diff --git a/fastertransformer/cuda/transformer_kernels.cuh b/fastertransformer/cuda/transformer_kernels.cuh new file mode 100644 index 000000000..5136d83c8 --- /dev/null +++ b/fastertransformer/cuda/transformer_kernels.cuh @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once +#include +#include +#include "fastertransformer/utils/arguments.h" +#include +#include "fastertransformer/cuda/cuda_kernels.h" + +namespace fastertransformer +{ + +template +void add_bias_act_kernelLauncher(T* out, const T* bias, int m, int n, ActivationType activation_type, cudaStream_t stream); + +template +void add_bias_input_layernorm_kernelLauncher(T *out, const T *input_tensor, + const T *bias, const T *gamma, + const T *beta, int m, int n, + cudaStream_t stream); + +template +void add_bias_input_layernorm_2_kernelLauncher(const T *from_tensor, const T *gamma, + const T *beta, const T *bias, + T *output, T *norm_output_buf_, + const int m, const int n, cudaStream_t stream); + +template +void add_bias_input_kernelLauncher(T *output, const T *bias, const T *input, const int m, const int n, cudaStream_t stream); + +template +void layer_norm(const T *from_tensor, const T *gamma, + const T *beta, T *norm_from_tensor_buf_, const int m, const int n, cudaStream_t stream); + +} // namespace fastertransformer \ No newline at end of file diff --git a/fastertransformer/decoding_beamsearch.h b/fastertransformer/decoding_beamsearch.h index f726345d6..92a07398d 100644 --- a/fastertransformer/decoding_beamsearch.h +++ b/fastertransformer/decoding_beamsearch.h @@ -19,11 +19,12 @@ #pragma once -#include "fastertransformer/common.h" -#include "fastertransformer/allocator.h" +#include "fastertransformer/utils/common.h" +#include "fastertransformer/utils/functions.h" +#include "fastertransformer/utils/allocator.h" #include "fastertransformer/open_decoder.h" #include "fastertransformer/cuda/cuda_kernels.h" -#include "fastertransformer/arguments.h" +#include "fastertransformer/utils/arguments.h" #include namespace fastertransformer @@ -42,7 +43,7 @@ class DecodingBeamsearch const cudaDataType_t AType_ = Traits_::AType; const cudaDataType_t BType_ = Traits_::BType; const cudaDataType_t CType_ = Traits_::CType; - int cublasAlgo_[1] = {20}; + std::map cublasAlgoMap_; OpenDecoder *decoder_; DataType_ **K_cache_; @@ -65,6 +66,11 @@ class DecodingBeamsearch void *topK_kernel_workspace = nullptr; size_t topk_workspace_size_ = 0; + void *cublas_workspace_ = nullptr; + + DataType_ *padded_embedding_kernel; + DataType_ *padded_embedding_bias; + DataType_ *tmp_logits_buf_; public: DecodingBeamsearch(const IAllocator &allocator, const int batch_size, @@ -74,8 +80,9 @@ class DecodingBeamsearch const int memory_hidden_units, const int memory_max_seq_len, const int start_id, const int end_id, const float beam_search_diversity_rate = -0.0f, - const bool is_fuse_topk_softMax = false) : allocator_(allocator), - is_fuse_topk_softMax_(is_fuse_topk_softMax) + const bool is_fuse_topk_softMax = true, + const bool is_fuse_qkv = false) : allocator_(allocator), + is_fuse_topk_softMax_(is_fuse_topk_softMax) { #ifndef NDEBUG PRINT_FUNC_NAME_(); @@ -87,10 +94,15 @@ class DecodingBeamsearch args_.size_per_head_ = size_per_head; args_.hidden_units_ = head_num * size_per_head; args_.decoder_layers_ = decoder_layers; - args_.vocab_size_ = vocab_size; args_.start_id_ = start_id; args_.end_id_ = end_id; args_.beam_search_diversity_rate_ = beam_search_diversity_rate; + if(args_.beam_width_ > 16) is_fuse_topk_softMax_ = false; + args_.vocab_size_ = vocab_size; + if(std::is_same::value) + args_.vocab_size_padded_ = vocab_size; + else if(std::is_same::value) + args_.vocab_size_padded_ = (int)(ceil(vocab_size / 8.)) * 8; K_cache_ = new DataType_ *[2]; V_cache_ = new DataType_ *[2]; @@ -98,52 +110,77 @@ class DecodingBeamsearch K_mem_cache_ = new DataType_ *[args_.decoder_layers_]; V_mem_cache_ = new DataType_ *[args_.decoder_layers_]; - decoder_ = new OpenDecoder(batch_size * beam_width, memory_max_seq_len, - head_num, size_per_head, memory_hidden_units); + decoder_ = new OpenDecoder(head_num, size_per_head, memory_hidden_units, is_fuse_qkv); + decoder_->set_max_batch_size(batch_size * beam_width); - int from_tensor_size = args_.batch_size_ * args_.beam_width_ * args_.hidden_units_; // type T - int decoder_workspace_size = decoder_->getWorkspaceSize(); // type T - int decoder_normed_result_buffer_size = args_.batch_size_ * args_.beam_width_ * args_.hidden_units_; // type T - int cache_size = args_.batch_size_ * args_.beam_width_ * args_.seq_len_ * args_.hidden_units_; // type T - int mem_cache_size = args_.batch_size_ * args_.beam_width_ * memory_max_seq_len * args_.hidden_units_; // type T + size_t from_tensor_size = args_.batch_size_ * args_.beam_width_ * args_.hidden_units_; // type T + size_t decoder_workspace_size = decoder_->getWorkspaceSize(); // type T + size_t decoder_normed_result_buffer_size = args_.batch_size_ * args_.beam_width_ * args_.hidden_units_; // type T + size_t cache_size = args_.batch_size_ * args_.beam_width_ * args_.seq_len_ * args_.hidden_units_; // type T + size_t mem_cache_size = args_.batch_size_ * args_.beam_width_ * memory_max_seq_len * args_.hidden_units_; // type T - int logits_buf_size = args_.batch_size_ * args_.beam_width_ * args_.vocab_size_; // type float - int cum_log_buf_size = args_.batch_size_ * args_.beam_width_; // type float - int word_ids_buf_size = args_.batch_size_ * args_.beam_width_; //type int - int finished_buf_size = args_.batch_size_ * args_.beam_width_; //type bool - int finished_count_size = (int)(ceil(1 / 32.)) * 32; // type int + size_t logits_buf_size = args_.batch_size_ * args_.beam_width_ * args_.vocab_size_padded_; // type float + size_t cum_log_buf_size = args_.batch_size_ * args_.beam_width_; // type float + size_t word_ids_buf_size = args_.batch_size_ * args_.beam_width_; //type int + size_t finished_buf_size = args_.batch_size_ * args_.beam_width_; //type bool + size_t finished_count_size = (size_t)(ceil(1 / 32.)) * 32; // type int - int storage_size_per_beam = 2 * args_.beam_width_ + SMALL_TOP_K_SOFTMAX_MAX_VOC_PARTS * (2 * MAX_K + 2); + size_t storage_size_per_beam = 2 * args_.beam_width_ + SMALL_TOP_K_SOFTMAX_MAX_VOC_PARTS * (2 * MAX_K + 2); args_.temp_storage_size_ = args_.batch_size_ * args_.beam_width_ * storage_size_per_beam; // type float + args_.temp_storage_size_ = (size_t)( + ceil(args_.batch_size_ * args_.beam_width_ * args_.beam_width_ / 4.) * 4 * 2 + + ceil(args_.batch_size_ * args_.beam_width_ * SMALL_TOP_K_SOFTMAX_MAX_VOC_PARTS * (2 * MAX_K + 2) / 4.) * 4 + ); + size_t padded_embedding_kernel_size = args_.hidden_units_ * args_.vocab_size_padded_; + size_t padded_embedding_bias_size = args_.vocab_size_padded_; + if(std::is_same::value || (std::is_same::value && args_.vocab_size_padded_ == args_.vocab_size_)) + { + padded_embedding_kernel_size = 0; + padded_embedding_bias_size = 0; + } // prevent memory misalinged address - logits_buf_size = (int)(ceil(logits_buf_size / 4.)) * 4; - cum_log_buf_size = (int)(ceil(cum_log_buf_size / 4.)) * 4; - word_ids_buf_size = (int)(ceil(word_ids_buf_size / 4.)) * 4; - finished_buf_size = (int)(ceil(finished_buf_size / 32.)) * 32; - args_.temp_storage_size_ = (int)(ceil(args_.temp_storage_size_ / 4.)) * 4; + logits_buf_size = (size_t)(ceil(logits_buf_size / 4.)) * 4; + cum_log_buf_size = (size_t)(ceil(cum_log_buf_size / 4.)) * 4; + word_ids_buf_size = (size_t)(ceil(word_ids_buf_size / 4.)) * 4; + finished_buf_size = (size_t)(ceil(finished_buf_size / 32.)) * 32; + const size_t tmp_logits_buf_size = logits_buf_size; // get workspace size of topk kernel topK_kernelLauncher(topK_kernel_workspace, topk_workspace_size_, logits_buf_, word_ids_buf_, + finished_buf_, args_, 0); - int datatype_buf_size = from_tensor_size * 2 + decoder_workspace_size + + size_t datatype_buf_size = from_tensor_size * 2 + decoder_workspace_size + (cache_size * 4 + mem_cache_size * 2) * args_.decoder_layers_ + decoder_normed_result_buffer_size; buf_ = reinterpret_cast(allocator_.malloc( + ((sizeof(DataType_) == sizeof(half)) ? CUBLAS_WORKSPACE_SIZE : 0) + sizeof(DataType_) * datatype_buf_size + sizeof(float) * (logits_buf_size + cum_log_buf_size) + + sizeof(DataType_) * tmp_logits_buf_size + + sizeof(DataType_) * padded_embedding_kernel_size + + sizeof(float) * padded_embedding_bias_size + sizeof(int) * word_ids_buf_size + sizeof(bool) * finished_buf_size + topk_workspace_size_ + sizeof(float) * args_.temp_storage_size_ + // should be always float sizeof(int) * finished_count_size)); - from_tensor_[0] = (DataType_ *)buf_; + if (sizeof(DataType_) == sizeof(half)) + { + cublas_workspace_ = buf_; + from_tensor_[0] = (DataType_ *)((char*)cublas_workspace_ + CUBLAS_WORKSPACE_SIZE); + } + else + { + cublas_workspace_ = nullptr; + from_tensor_[0] = (DataType_ *)(buf_); + } from_tensor_[1] = (DataType_ *)(from_tensor_[0] + from_tensor_size); for (int i = 0; i < args_.decoder_layers_; ++i) @@ -152,11 +189,22 @@ class DecodingBeamsearch V_mem_cache_[i] = from_tensor_[1] + from_tensor_size + i * mem_cache_size * 2 + mem_cache_size; } - /* We use two-way buffer since we have to update KV buf at the end of each step. */ - K_cache_[0] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 0 * cache_size * args_.decoder_layers_; - K_cache_[1] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 1 * cache_size * args_.decoder_layers_; - V_cache_[0] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 2 * cache_size * args_.decoder_layers_; - V_cache_[1] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 3 * cache_size * args_.decoder_layers_; + if(args_.beam_width_ > 1) + { + /* We use two-way buffer since we have to update KV buf at the end of each step. */ + K_cache_[0] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 0 * cache_size * args_.decoder_layers_; + K_cache_[1] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 1 * cache_size * args_.decoder_layers_; + V_cache_[0] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 2 * cache_size * args_.decoder_layers_; + V_cache_[1] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 3 * cache_size * args_.decoder_layers_; + } + else + { + // if beam width is 1, we only need one buffer + K_cache_[0] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 0 * cache_size * args_.decoder_layers_; + K_cache_[1] = K_cache_[0]; + V_cache_[0] = V_mem_cache_[decoder_layers - 1] + mem_cache_size + 2 * cache_size * args_.decoder_layers_; + V_cache_[1] = V_cache_[0]; + } decoder_buf_ = V_cache_[1] + cache_size * args_.decoder_layers_; decoder_normed_result_buf_ = (decoder_buf_ + decoder_workspace_size); @@ -167,49 +215,45 @@ class DecodingBeamsearch temp_storage_ = (float *)(finished_buf_ + finished_buf_size); finished_count_buf_ = (int *)(temp_storage_ + args_.temp_storage_size_); topK_kernel_workspace = (void*)(finished_count_buf_ + finished_count_size); + padded_embedding_kernel = (DataType_*)((char*)topK_kernel_workspace + topk_workspace_size_); + padded_embedding_bias = (DataType_*)(padded_embedding_kernel + padded_embedding_kernel_size); + tmp_logits_buf_ = (DataType_*)(padded_embedding_bias + padded_embedding_bias_size); h_finished_buf_ = new bool[finished_buf_size]; - FILE *fd = fopen("decoding_gemm_config.in", "r"); - int err = 0; - if (fd == NULL) - printf("[WARNING] decoding_gemm_config.in is not found\n"); - else - { - err = fscanf(fd, "%d", &cublasAlgo_[0]); - fclose(fd); - } - if (err != 1) + int isConfigExist = access("decoding_gemm_config.in", 0); + if (isConfigExist == -1) { - printf("[WARNING] decoding loading GEMM algorithms error, using default GEMM algorithms!\n"); - if (Traits_::OpType == OperationType::FP32) - { - cublasAlgo_[0] = CUBLAS_GEMM_DEFAULT; - } - else - { - cublasAlgo_[0] = CUBLAS_GEMM_DEFAULT_TENSOR_OP; - } + printf("[WARNING] decoding_gemm_config.in is not found\n"); } else { + readAlgoFromConfig(cublasAlgoMap_, 1); // check that the gemm_config setting is runnable - if (Traits_::OpType == OperationType::FP32) + for (auto iter = cublasAlgoMap_.begin() ; iter != cublasAlgoMap_.end() ; iter++) { - if (cublasAlgo_[0] > CUBLAS_GEMM_ALGO23 || cublasAlgo_[0] < CUBLAS_GEMM_DEFAULT) + int algoId = iter->second.algoId; + int stages = iter->second.stages; + //only check for cublas + if (stages != -1) + continue; + if (Traits_::OpType == OperationType::FP32) { - // the algorithm is not for FP32 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", (int)cublasAlgo_[0]); - exit(-1); + if (algoId > CUBLAS_GEMM_ALGO23 || algoId < CUBLAS_GEMM_DEFAULT) + { + // the algorithm is not for FP32 + printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", algoId); + exit(-1); + } } - } - else - { - if (cublasAlgo_[0] > CUBLAS_GEMM_ALGO15_TENSOR_OP || cublasAlgo_[0] < CUBLAS_GEMM_DEFAULT_TENSOR_OP) + else { - // the algorithm is not for FP16 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", (int)cublasAlgo_[0]); - exit(-1); + if (algoId > CUBLAS_GEMM_ALGO15_TENSOR_OP || algoId < CUBLAS_GEMM_DEFAULT_TENSOR_OP) + { + // the algorithm is not for FP16 + printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", algoId); + exit(-1); + } } } } @@ -224,7 +268,9 @@ class DecodingBeamsearch #endif const int m = args_.batch_size_ * args_.beam_width_; const int k = args_.hidden_units_; - const int n = args_.vocab_size_; + const int n = args_.vocab_size_padded_; + const DataType_* embedding_kernel_ptr = nullptr; + const DataType_* embedding_bias_ptr = nullptr; /* sequence_length initialize to 0 @@ -235,6 +281,7 @@ class DecodingBeamsearch init_kernelLauncher(finished_buf_, decoding_params.sequence_length, word_ids_buf_, cum_log_buf_, args_.start_id_, args_.batch_size_, args_.beam_width_, decoding_params.stream); + #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); @@ -248,9 +295,36 @@ class DecodingBeamsearch // start_id_, batch_size_, beam_width_, decoding_params.stream); #endif + if(std::is_same::value || (std::is_same::value && args_.vocab_size_padded_ == args_.vocab_size_)) + { + embedding_kernel_ptr = (const DataType_ *)decoding_params.embedding_kernel; + embedding_bias_ptr = (const DataType_ *)decoding_params.embedding_bias; + } + else if(std::is_same::value) + { + + kernel_padding_kernelLauncher(padded_embedding_kernel, decoding_params.embedding_kernel, args_.hidden_units_, + args_.vocab_size_, args_.vocab_size_padded_, decoding_params.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + bias_padding_kernelLauncher(padded_embedding_bias, decoding_params.embedding_bias, + args_.vocab_size_, args_.vocab_size_padded_, decoding_params.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + embedding_kernel_ptr = padded_embedding_kernel; + embedding_bias_ptr = padded_embedding_bias; + } + int cache_size = m * args_.seq_len_ * args_.hidden_units_; // type T - for (int step = 1; step <= args_.seq_len_; ++step) + for (uint step = 1; step <= args_.seq_len_; ++step) { //we use two-way buffer int kv_cache_id = step & 0x1; @@ -281,7 +355,7 @@ class DecodingBeamsearch The decoder_buf_ is reused. */ - decoder_->initialize(param[layer], decoder_buf_); + decoder_->initialize(param[layer], decoder_buf_, cublas_workspace_); #ifndef NDEBUG cudaDeviceSynchronize(); @@ -291,34 +365,32 @@ class DecodingBeamsearch K_cache_[kv_cache_id] + layer * cache_size, V_cache_[kv_cache_id] + layer * cache_size, K_mem_cache_[layer], V_mem_cache_[layer], - decoding_params.memory_sequence_length, from_tensor_[out_id], step, - true); + decoding_params.memory_sequence_length, from_tensor_[out_id], step, args_.seq_len_, + true, finished_buf_); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif } - decoder_->decoder_norm1(from_tensor_[out_id], decoding_params.layernorm.gamma, - decoding_params.layernorm.beta, decoder_normed_result_buf_, m, k); - - float alpha = (float)1.0f; - float beta = (float)0.0f; - - check_cuda_error(cublasGemmEx(decoding_params.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - decoding_params.embedding_kernel, AType_, n, - decoder_normed_result_buf_, BType_, k, - &beta, - logits_buf_, CUDA_R_32F, n, -#ifdef CUDA11_MODE - CUBLAS_COMPUTE_32F_PEDANTIC, -#else - CUDA_R_32F, -#endif - static_cast(cublasAlgo_[0]))); + layer_norm(from_tensor_[out_id], decoding_params.layernorm.gamma, + decoding_params.layernorm.beta, decoder_normed_result_buf_, m, k, decoding_params.stream); + + DataType_ alpha = (DataType_)1.0f; + DataType_ beta = (DataType_)0.0f; + + cublasMM_cublasLtMM_wrapper_decoder(decoding_params.cublaslt_handle, + decoding_params.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + embedding_kernel_ptr, AType_, n, + decoder_normed_result_buf_, BType_, k, + &beta, + tmp_logits_buf_, CType_, n, + decoding_params.stream, cublasAlgoMap_, + cublas_workspace_); + #ifndef NDEBUG cudaDeviceSynchronize(); @@ -328,8 +400,8 @@ class DecodingBeamsearch // Beamsearch if (is_fuse_topk_softMax_ == true) { - topK_softMax(logits_buf_, - decoding_params.embedding_bias, + topK_softMax(tmp_logits_buf_, + embedding_bias_ptr, finished_buf_, cum_log_buf_, word_ids_buf_, @@ -356,7 +428,7 @@ class DecodingBeamsearch } else { - update_logits(logits_buf_, decoding_params.embedding_bias, args_.end_id_, finished_buf_, m, n, decoding_params.stream); + update_logits(logits_buf_, tmp_logits_buf_, embedding_bias_ptr, args_.end_id_, finished_buf_, m, n, decoding_params.stream); #ifndef NDEBUG cudaDeviceSynchronize(); @@ -367,12 +439,12 @@ class DecodingBeamsearch update_logits_kernel_check will compare the results of GPU and CPU. Note that update_logits_kernel_check contains update_logits and uses do not need to call it again. */ - // update_logits_kernel_check(logits_buf_, decoding_params.embedding_bias, args_.end_id_, finished_buf_, m, n, decoding_params.stream); + // update_logits_kernel_check(logits_buf_, tmp_logits_buf_, decoding_params.embedding_bias, args_.end_id_, finished_buf_, m, n, decoding_params.stream); #endif /* adding cum_log_buf_ to logits_buf_ */ broadcast_kernelLauncher(logits_buf_, cum_log_buf_, args_.batch_size_, - args_.beam_width_, args_.vocab_size_, decoding_params.stream); + args_.beam_width_, args_.vocab_size_padded_, decoding_params.stream); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); @@ -382,13 +454,14 @@ class DecodingBeamsearch broadcast_kernel_check will compare the results of GPU and CPU. Note that broadcast_kernel_check contains broadcast_kernelLauncher and uses do not need to call it again. */ - // broadcast_kernel_check(logits_buf_, cum_log_buf_, batch_size_, beam_width_, vocab_size_, decoding_params.stream); + // broadcast_kernel_check(logits_buf_, cum_log_buf_, batch_size_, beam_width_, args_.vocab_size_padded_, decoding_params.stream); #endif topK_kernelLauncher(topK_kernel_workspace, topk_workspace_size_, logits_buf_, word_ids_buf_, + finished_buf_, args_, decoding_params.stream); #ifndef NDEBUG @@ -401,7 +474,7 @@ class DecodingBeamsearch decoding_params.sequence_length, word_ids_buf_, decoding_params.output_ids + (step - 1) * m, - args_.batch_size_, args_.beam_width_, args_.vocab_size_, + args_.batch_size_, args_.beam_width_, args_.vocab_size_padded_, decoding_params.stream, args_.end_id_, finished_count_buf_); } @@ -410,21 +483,27 @@ class DecodingBeamsearch check_cuda_error(cudaGetLastError()); #endif - update_KV_cache_kernelLauncher(K_cache_, V_cache_, - decoding_params.parent_ids + (step - 1) * m, - args_.batch_size_, args_.beam_width_, args_.hidden_units_, step, - cache_size, args_.decoder_layers_, decoding_params.stream); + if(args_.beam_width_ > 1) + { + // chose which self cache to use + int decoder_max_seq_len = (decoder_->getCacheFormat() != 0)? args_.seq_len_ : -1; + update_KV_cache_kernelLauncher(K_cache_, V_cache_, + decoding_params.parent_ids + (step - 1) * m, + finished_buf_, + args_.batch_size_, args_.beam_width_, args_.head_num_, args_.size_per_head_, step, decoder_max_seq_len, + cache_size, args_.decoder_layers_, decoding_params.stream); #ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); /* User can check the update_KV_cache by update_KV_cache_kernel_check. update_KV_cache_kernel_check will compare the results of GPU and CPU. Note that update_KV_cache_kernel_check contains update_KV_cache and uses do not need to call it again. */ - // update_KV_cache_kernel_check(K_cache_, V_cache_, decoding_params.parent_ids + (step - 1) * batch_size_ * beam_width_, batch_size_, beam_width_, hidden_units_, step, cache_size, decoder_layers_, decoding_params.stream); + // update_KV_cache_kernel_check(K_cache_, V_cache_, decoding_params.parent_ids + (step - 1) * batch_size_ * beam_width_, batch_size_, beam_width_, head_num_, size_per_head_, step, cache_size, decoder_layers_, decoding_params.stream); #endif + } // TODO Find a better method to check the is_finished cudaMemcpy(h_finished_buf_, finished_buf_, sizeof(bool) * m, cudaMemcpyDeviceToHost); diff --git a/fastertransformer/decoding_sampling.h b/fastertransformer/decoding_sampling.h index b13ff8c27..171226b2d 100644 --- a/fastertransformer/decoding_sampling.h +++ b/fastertransformer/decoding_sampling.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,11 +19,12 @@ #pragma once -#include "fastertransformer/common.h" -#include "fastertransformer/allocator.h" +#include "fastertransformer/utils/common.h" +#include "fastertransformer/utils/functions.h" +#include "fastertransformer/utils/allocator.h" #include "fastertransformer/open_decoder.h" #include "fastertransformer/cuda/cuda_kernels.h" -#include "fastertransformer/arguments.h" +#include "fastertransformer/utils/arguments.h" #include namespace fastertransformer @@ -42,7 +43,7 @@ class DecodingSampling const cudaDataType_t AType_ = Traits_::AType; const cudaDataType_t BType_ = Traits_::BType; const cudaDataType_t CType_ = Traits_::CType; - int cublasAlgo_[1] = {20}; + std::map cublasAlgoMap_; OpenDecoder *decoder_; DataType_ **K_cache_; @@ -55,7 +56,7 @@ class DecodingSampling DataType_ *logits_buf_; int *word_ids_buf_; bool *finished_buf_; - + void *buf_; int *finished_count_buf_; bool *h_finished_buf_; @@ -64,8 +65,14 @@ class DecodingSampling size_t topk_workspace_size_ = 0; void *topp_workspace_ = nullptr; size_t topp_workspace_size_ = 0; + void *cublas_workspace_ = nullptr; + curandState_t *curandstate_buf_; int *topp_id_vals_buf_; int *topp_offset_buf_; + int *begin_topp_offset_buf_; + + DataType_ *padded_embedding_kernel; + DataType_ *padded_embedding_bias; public: DecodingSampling(const IAllocator &allocator, const int batch_size, @@ -75,7 +82,8 @@ class DecodingSampling const int memory_hidden_units, const int memory_max_seq_len, const int start_id, const int end_id, const int candidate_num = 0, - const float probability_threshold = 0.0) : allocator_(allocator) + const float probability_threshold = 0.0, + const int is_fuse_qkv = false) : allocator_(allocator) { args_.batch_size_ = batch_size; args_.seq_len_ = seq_len; @@ -84,6 +92,11 @@ class DecodingSampling args_.hidden_units_ = head_num * size_per_head; args_.decoder_layers_ = decoder_layers; args_.vocab_size_ = vocab_size; + if(std::is_same::value) + args_.vocab_size_padded_ = vocab_size; + else if(std::is_same::value) + args_.vocab_size_padded_ = (int)(ceil(vocab_size / 8.)) * 8; + args_.candidate_num_ = candidate_num; args_.probability_threshold_ = probability_threshold; args_.start_id_ = start_id; @@ -108,64 +121,90 @@ class DecodingSampling K_mem_cache_ = new DataType_ *[args_.decoder_layers_]; V_mem_cache_ = new DataType_ *[args_.decoder_layers_]; - decoder_ = new OpenDecoder(batch_size, memory_max_seq_len, - head_num, size_per_head, memory_hidden_units); - - int from_tensor_size = args_.batch_size_ * args_.hidden_units_; // type T - int decoder_workspace_size = decoder_->getWorkspaceSize(); // type T - int decoder_normed_result_buffer_size = args_.batch_size_ * args_.hidden_units_; // type T - int cache_size = args_.batch_size_ * args_.seq_len_ * args_.hidden_units_; // type T - int mem_cache_size = args_.batch_size_ * memory_max_seq_len * args_.hidden_units_; // type T - int logits_buf_size = args_.batch_size_ * args_.vocab_size_; // type T - - int word_ids_buf_size = args_.batch_size_; //type int - int finished_buf_size = args_.batch_size_; //type bool - int finished_count_size = (int)(ceil(1 / 32.)) * 32; // type int - - int topp_id_vals_buf_size = args_.batch_size_ * args_.vocab_size_; // type int - int topp_offset_buf_size = args_.batch_size_ + 1; // type int + decoder_ = new OpenDecoder(head_num, size_per_head, memory_hidden_units, is_fuse_qkv); + decoder_->set_max_batch_size(batch_size); + + size_t from_tensor_size = args_.batch_size_ * args_.hidden_units_; // type T + size_t decoder_workspace_size = decoder_->getWorkspaceSize(); // type T + size_t decoder_normed_result_buffer_size = args_.batch_size_ * args_.hidden_units_; // type T + size_t cache_size = args_.batch_size_ * args_.seq_len_ * args_.hidden_units_; // type T + size_t mem_cache_size = args_.batch_size_ * memory_max_seq_len * args_.hidden_units_; // type T + size_t logits_buf_size = args_.batch_size_ * args_.vocab_size_padded_; // type T + + size_t word_ids_buf_size = args_.batch_size_; //type int + size_t finished_buf_size = args_.batch_size_; //type bool + size_t finished_count_size = (size_t)(ceil(1 / 32.)) * 32; // type int + + size_t topp_id_vals_buf_size = args_.batch_size_ * args_.vocab_size_padded_; // type int + size_t topp_offset_buf_size = args_.batch_size_ + 1; // type int + size_t begin_topp_offset_buf_size = topp_offset_buf_size; + size_t curandState_size = args_.batch_size_; + size_t padded_embedding_kernel_size = args_.hidden_units_ * args_.vocab_size_padded_; + size_t padded_embedding_bias_size = args_.vocab_size_padded_; + if(std::is_same::value || (std::is_same::value && args_.vocab_size_ == args_.vocab_size_padded_)) + { + padded_embedding_kernel_size = 0; + padded_embedding_bias_size = 0; + } // prevent memory misalinged address - logits_buf_size = (int)(ceil(logits_buf_size / 4.)) * 4; - word_ids_buf_size = (int)(ceil(word_ids_buf_size / 4.)) * 4; - finished_buf_size = (int)(ceil(finished_buf_size / 32.)) * 32; - - topp_id_vals_buf_size = (int)(ceil(topp_id_vals_buf_size / 4.)) * 4; - topp_offset_buf_size = (int)(ceil(topp_offset_buf_size / 4.)) * 4; - topP_sampling_kernel_kernelLauncher(topp_workspace_, + logits_buf_size = (size_t)(ceil(logits_buf_size / 4.)) * 4; + word_ids_buf_size = (size_t)(ceil(word_ids_buf_size / 4.)) * 4; + finished_buf_size = (size_t)(ceil(finished_buf_size / 32.)) * 32; + + topp_id_vals_buf_size = (size_t)(ceil(topp_id_vals_buf_size / 4.)) * 4; + topp_offset_buf_size = (size_t)(ceil(topp_offset_buf_size / 4.)) * 4; + begin_topp_offset_buf_size = topp_offset_buf_size; + + topP_sampling_kernel_kernelLauncher_v2(topp_workspace_, topp_workspace_size_, logits_buf_, topp_id_vals_buf_, topp_offset_buf_, + begin_topp_offset_buf_, finished_buf_, - 0, + curandstate_buf_, args_, nullptr, nullptr, - args_.vocab_size_, - 0); - topK_sampling_kernel_kernelLauncher(topk_workspace_, - topk_workspace_size_, - logits_buf_, - nullptr, - nullptr, - finished_buf_, + args_.vocab_size_padded_, 0, - args_, - 0); - - int datatype_buf_size = from_tensor_size * 2 + decoder_workspace_size + + args_.batch_size_); + + topK_sampling_kernel_kernelLauncher_v2(topk_workspace_, + topk_workspace_size_, + logits_buf_, + nullptr, + nullptr, + finished_buf_, + curandstate_buf_, + args_, + 0, + args_.batch_size_); + + size_t datatype_buf_size = from_tensor_size * 2 + decoder_workspace_size + (cache_size * 4 + mem_cache_size * 2) * args_.decoder_layers_ + decoder_normed_result_buffer_size; buf_ = reinterpret_cast(allocator_.malloc( - sizeof(DataType_) * (datatype_buf_size + logits_buf_size) + + ( (sizeof(DataType_) == sizeof(half)) ? CUBLAS_WORKSPACE_SIZE : 0 ) + + sizeof(DataType_) * (datatype_buf_size + logits_buf_size) + + sizeof(DataType_) * (padded_embedding_kernel_size + padded_embedding_bias_size) + sizeof(int) * word_ids_buf_size + sizeof(bool) * finished_buf_size + sizeof(int) * finished_count_size + - sizeof(int) * (topp_id_vals_buf_size + topp_offset_buf_size) + - topp_workspace_size_ + topk_workspace_size_)); - - from_tensor_[0] = (DataType_ *)buf_; + sizeof(int) * (topp_id_vals_buf_size + 2 * topp_offset_buf_size) + + topp_workspace_size_ + topk_workspace_size_ + curandState_size * sizeof(curandState_t))); + + if (sizeof(DataType_) == sizeof(half)) + { + cublas_workspace_ = buf_; + from_tensor_[0] = (DataType_ *)((char*)cublas_workspace_ + CUBLAS_WORKSPACE_SIZE); + } + else + { + cublas_workspace_ = nullptr; + from_tensor_[0] = (DataType_ *)buf_; + } from_tensor_[1] = (DataType_ *)(from_tensor_[0] + from_tensor_size); for (int i = 0; i < args_.decoder_layers_; ++i) @@ -185,52 +224,49 @@ class DecodingSampling finished_buf_ = (bool *)(word_ids_buf_ + word_ids_buf_size); finished_count_buf_ = (int *)(finished_buf_ + finished_buf_size); topp_id_vals_buf_ = (int *)(finished_count_buf_ + finished_count_size); - topp_offset_buf_ = (int *)(topp_id_vals_buf_ + topp_id_vals_buf_size); + begin_topp_offset_buf_ = (int *)(topp_id_vals_buf_ + topp_id_vals_buf_size); + topp_offset_buf_ = (int *)(begin_topp_offset_buf_ + begin_topp_offset_buf_size); topp_workspace_ = (void*)(topp_offset_buf_ + topp_offset_buf_size); - topk_workspace_ = (void*)(topp_workspace_ + topp_workspace_size_); + topk_workspace_ = (void*)((char*)topp_workspace_ + topp_workspace_size_); + padded_embedding_kernel = (DataType_*)((char*)topk_workspace_ + topk_workspace_size_); + padded_embedding_bias = (DataType_*)(padded_embedding_kernel + padded_embedding_kernel_size); + curandstate_buf_ = (curandState_t*)(padded_embedding_bias + padded_embedding_bias_size); h_finished_buf_ = new bool[finished_buf_size]; - FILE *fd = fopen("decoding_gemm_config.in", "r"); - int err = 0; - if (fd == NULL) - printf("[WARNING] decoding_gemm_config.in is not found\n"); - else + int isConfigExist = access("decoding_gemm_config.in", 0); + if (isConfigExist == -1) { - err = fscanf(fd, "%d", &cublasAlgo_[0]); - fclose(fd); - } - if (err != 1) - { - printf("[WARNING] decoding loading GEMM algorithms error, using default GEMM algorithms!\n"); - if (Traits_::OpType == OperationType::FP32) - { - cublasAlgo_[0] = CUBLAS_GEMM_DEFAULT; - } - else - { - cublasAlgo_[0] = CUBLAS_GEMM_DEFAULT_TENSOR_OP; - } + printf("[WARNING] decoding_gemm_config.in is not found\n"); } else { + readAlgoFromConfig(cublasAlgoMap_, 1); // check that the gemm_config setting is runnable - if (Traits_::OpType == OperationType::FP32) + for (auto iter = cublasAlgoMap_.begin() ; iter != cublasAlgoMap_.end() ; iter++) { - if (cublasAlgo_[0] > CUBLAS_GEMM_ALGO23 || cublasAlgo_[0] < CUBLAS_GEMM_DEFAULT) + int algoId = iter->second.algoId; + int stages = iter->second.stages; + //only check for cublas + if (stages != -1) + continue; + if (Traits_::OpType == OperationType::FP32) { - // the algorithm is not for FP32 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", (int)cublasAlgo_[0]); - exit(-1); + if (algoId > CUBLAS_GEMM_ALGO23 || algoId < CUBLAS_GEMM_DEFAULT) + { + // the algorithm is not for FP32 + printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", algoId); + exit(-1); + } } - } - else - { - if (cublasAlgo_[0] > CUBLAS_GEMM_ALGO15_TENSOR_OP || cublasAlgo_[0] < CUBLAS_GEMM_DEFAULT_TENSOR_OP) + else { - // the algorithm is not for FP16 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", (int)cublasAlgo_[0]); - exit(-1); + if (algoId > CUBLAS_GEMM_ALGO15_TENSOR_OP || algoId < CUBLAS_GEMM_DEFAULT_TENSOR_OP) + { + // the algorithm is not for FP16 + printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", algoId); + exit(-1); + } } } } @@ -245,7 +281,9 @@ class DecodingSampling #endif const int m = args_.batch_size_; const int k = args_.hidden_units_; - const int n = args_.vocab_size_; + const int n = args_.vocab_size_padded_; + const DataType_* embedding_kernel_ptr = nullptr; + const DataType_* embedding_bias_ptr = nullptr; /* sequence_length initialize to 0 @@ -260,24 +298,54 @@ class DecodingSampling } else if (args_.probability_threshold_ != 0.0) { - topp_initialization_kernelLauncher(finished_buf_, - decoding_params.sequence_length, - word_ids_buf_, - topp_id_vals_buf_, - topp_offset_buf_, - args_.vocab_size_, - args_, - decoding_params.stream); + topp_initialization_kernelLauncher_v2(finished_buf_, + decoding_params.sequence_length, + word_ids_buf_, + topp_id_vals_buf_, + topp_offset_buf_, + begin_topp_offset_buf_, + args_.vocab_size_padded_, + args_, + decoding_params.stream); } + ker_curand_setupLauncher(curandstate_buf_, + args_, + decoding_params.stream); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif + if(std::is_same::value || (std::is_same::value && args_.vocab_size_ == args_.vocab_size_padded_)) + { + embedding_kernel_ptr = (const DataType_ *)decoding_params.embedding_kernel; + embedding_bias_ptr = (const DataType_ *)decoding_params.embedding_bias; + } + else if(std::is_same::value) + { + kernel_padding_kernelLauncher(padded_embedding_kernel, decoding_params.embedding_kernel, args_.hidden_units_, + args_.vocab_size_, args_.vocab_size_padded_, decoding_params.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + bias_padding_kernelLauncher(padded_embedding_bias, decoding_params.embedding_bias, + args_.vocab_size_, args_.vocab_size_padded_, decoding_params.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + embedding_kernel_ptr = padded_embedding_kernel; + embedding_bias_ptr = padded_embedding_bias; + } + int cache_size = args_.batch_size_ * args_.seq_len_ * args_.hidden_units_; // type T - for (int step = 1; step <= args_.seq_len_; ++step) + for (uint step = 1; step <= args_.seq_len_; ++step) { embedding_lookup_sine_position_encoding_kernel_launcher(from_tensor_[0], decoding_params.embedding_table, @@ -305,7 +373,7 @@ class DecodingSampling The decoder_buf_ is reused. */ - decoder_->initialize(param[layer], decoder_buf_); + decoder_->initialize(param[layer], decoder_buf_, cublas_workspace_); #ifndef NDEBUG cudaDeviceSynchronize(); @@ -315,30 +383,32 @@ class DecodingSampling K_cache_[0] + layer * cache_size, V_cache_[0] + layer * cache_size, K_mem_cache_[layer], V_mem_cache_[layer], - decoding_params.memory_sequence_length, from_tensor_[out_id], step, - true); + decoding_params.memory_sequence_length, from_tensor_[out_id], step, args_.seq_len_, + true, finished_buf_); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif } - decoder_->decoder_norm1(from_tensor_[out_id], decoding_params.layernorm.gamma, - decoding_params.layernorm.beta, decoder_normed_result_buf_, m, k); - + layer_norm(from_tensor_[out_id], decoding_params.layernorm.gamma, + decoding_params.layernorm.beta, decoder_normed_result_buf_, m, k, decoding_params.stream); + DataType_ alpha = (DataType_)1.0f; DataType_ beta = (DataType_)0.0f; - check_cuda_error(cublasGemmEx(decoding_params.cublas_handle, - CUBLAS_OP_N, CUBLAS_OP_N, - n, m, k, - &alpha, - decoding_params.embedding_kernel, AType_, n, - decoder_normed_result_buf_, BType_, k, - &beta, - logits_buf_, CType_, n, - computeType_, - static_cast(cublasAlgo_[0]))); + cublasMM_cublasLtMM_wrapper_decoder(decoding_params.cublaslt_handle, + decoding_params.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + embedding_kernel_ptr, AType_, n, + decoder_normed_result_buf_, BType_, k, + &beta, + logits_buf_, CType_, n, + decoding_params.stream, cublasAlgoMap_, + cublas_workspace_); + #ifndef NDEBUG cudaDeviceSynchronize(); @@ -349,42 +419,55 @@ class DecodingSampling { // top k sampling update_logits_without_softmax(logits_buf_, - decoding_params.embedding_bias_T, + embedding_bias_ptr, args_.end_id_, finished_buf_, m, n, decoding_params.stream); - topK_sampling_kernel_kernelLauncher(topk_workspace_, - topk_workspace_size_, - logits_buf_, - decoding_params.output_ids + (step - 1) * args_.batch_size_, - decoding_params.sequence_length, - finished_buf_, - step, // used as random number - args_, - decoding_params.stream); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + topK_sampling_kernel_kernelLauncher_v2(topk_workspace_, + topk_workspace_size_, + logits_buf_, + decoding_params.output_ids + (step - 1) * args_.batch_size_, + decoding_params.sequence_length, + finished_buf_, + curandstate_buf_, // used as random number + args_, + decoding_params.stream, + args_.batch_size_); } else if (args_.probability_threshold_ != 0.0) { // top p sampling softmax_kernelLauncher(logits_buf_, - decoding_params.embedding_bias_T, + embedding_bias_ptr, args_.end_id_, finished_buf_, - m, n, decoding_params.stream); + m, n, n, decoding_params.stream); - topP_sampling_kernel_kernelLauncher(topp_workspace_, - topp_workspace_size_, - logits_buf_, - topp_id_vals_buf_, - topp_offset_buf_, - finished_buf_, - step, - args_, - decoding_params.output_ids + (step - 1) * args_.batch_size_, - decoding_params.sequence_length, - n, - decoding_params.stream); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + topP_sampling_kernel_kernelLauncher_v2(topp_workspace_, + topp_workspace_size_, + logits_buf_, + topp_id_vals_buf_, + topp_offset_buf_, + begin_topp_offset_buf_, + finished_buf_, + curandstate_buf_, + args_, + decoding_params.output_ids + (step - 1) * args_.batch_size_, + decoding_params.sequence_length, + n, + decoding_params.stream, + args_.batch_size_); } word_ids_buf_ = decoding_params.output_ids + (step - 1) * args_.batch_size_; @@ -396,8 +479,8 @@ class DecodingSampling // TODO Find a better method to check the is_finished cudaMemcpy(h_finished_buf_, finished_buf_, sizeof(bool) * args_.batch_size_, cudaMemcpyDeviceToHost); - int sum = 0; - for (int i = 0; i < args_.batch_size_; i++) + uint sum = 0; + for (uint i = 0; i < args_.batch_size_; i++) { sum += (int)h_finished_buf_[i]; } diff --git a/fastertransformer/faster_transformer.h b/fastertransformer/faster_transformer.h deleted file mode 100644 index c969e3dc8..000000000 --- a/fastertransformer/faster_transformer.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * c++ interface of Faster Transformer - **/ - -#pragma once - -#include "fastertransformer/bert_encoder_transformer.h" -#include -namespace fastertransformer{ - - - -}//namespace fastertransformer diff --git a/fastertransformer/gemm_test/encoder_gemm_func.cc b/fastertransformer/gemm_test/encoder_gemm_func.cc index 7f074d9cd..6414b4459 100644 --- a/fastertransformer/gemm_test/encoder_gemm_func.cc +++ b/fastertransformer/gemm_test/encoder_gemm_func.cc @@ -15,26 +15,503 @@ */ #include "encoder_gemm_func.h" -#include "fastertransformer/common.h" +#include "fastertransformer/utils/common.h" #include namespace fastertransformer{ -double diffTime(timeval start, timeval end) +// Utility function to print customMatmulPerf_t structure +int printPerfStructure(int batch_size, int seq_len, int head_num, int size_per_head, int m, int n, int k, const customMatmulPerf_t &perf, FILE* fout, int is_fp16, int hasPrint) { + int algoId, tile, swizzle, customOption, numSplitsK, reductionScheme, stages; + + const cublasLtMatmulAlgo_t *matmulAlgo = &perf.algo; + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_ID, &algoId, sizeof(algoId), NULL); + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_TILE_ID, &tile, sizeof(tile), NULL); + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &numSplitsK, sizeof(numSplitsK), NULL); + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &reductionScheme, sizeof(reductionScheme), NULL); + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING, &swizzle, sizeof(swizzle), NULL); + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION, &customOption, sizeof(customOption), NULL); +#ifdef CUDA11_MODE + cublasLtMatmulAlgoConfigGetAttribute( matmulAlgo, CUBLASLT_ALGO_CONFIG_STAGES_ID, &stages, sizeof(stages), NULL); +#else + stages=0; +#endif + + printf("algo={ Id=%d, tileIdx=%d (%s) splitK=%d reduc=%d swizzle=%d custom=%d stages=%d} status %d " + "time %fms workspace=%d mathMode=%d waves=%f\n", + algoId, tile, matmulTileName[tile], + numSplitsK, reductionScheme, + swizzle, customOption, stages, + perf.status, + perf.time, + (int)perf.workspaceSize, + (int)perf.mathMode, + perf.wavesCount); + if (hasPrint == 0){ + fprintf(fout, "%d %d %d %d %d ### %d %d %d %d %d %d %d %d %d %d %d %d %f\n", batch_size, seq_len, head_num, size_per_head, is_fp16 ? HALF_DATATYPE:FLOAT_DATATYPE, + 1, m, n, k, algoId, customOption, tile, numSplitsK, swizzle, reductionScheme, (int)perf.workspaceSize, stages, perf.time); + return 1; + } + else{ + return hasPrint; + } + +} + +static inline bool +time_compare(const customMatmulPerf_t &perf_a, const customMatmulPerf_t &perf_b) { + return ((perf_a.status == CUBLAS_STATUS_SUCCESS) && (perf_a.time < perf_b.time)); +} + + +static cublasStatus_t +customMatmulRun(cublasLtHandle_t ltHandle, // to get the capabilities (required a GPU) + cublasLtMatmulDesc_t operationDesc, + const void *alpha, /* host or device pointer */ + const void *A, + cublasLtMatrixLayout_t Adesc, + const void *B, + cublasLtMatrixLayout_t Bdesc, + const void *beta, /* host or device pointer */ + const void *C, + cublasLtMatrixLayout_t Cdesc, + void *D, + cublasLtMatrixLayout_t Ddesc, + const cublasLtMatmulAlgo_t &algo, + int kernelRepeats, + void *workSpace, + size_t workSpaceSizeInBytes, + customMatmulPerf_t &perfResults, + cudaStream_t stream, + cudaEvent_t &startEvent, + cudaEvent_t &stopEvent) { - return (end.tv_sec - start.tv_sec) * 1000 + (end.tv_usec - start.tv_usec) * 0.001; + cublasLtMatmulHeuristicResult_t heurResult; + /* Looping over the Algo */ + int repeats = kernelRepeats; + cublasStatus_t algoStatus = cublasLtMatmulAlgoCheck( ltHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Ddesc, + &algo, + &heurResult); + + if (algoStatus == CUBLAS_STATUS_SUCCESS) { + if (heurResult.workspaceSize <= workSpaceSizeInBytes) { + cudaError_t err, err1, err2, err3; + err = cudaEventRecord(startEvent, stream); + for (int loop = 0; loop < repeats; loop++) { + cublasStatus_t oneRunStatus = cublasLtMatmul( ltHandle, + operationDesc, + alpha, + A, Adesc, + B, Bdesc, + beta, + C, Cdesc, + D, Ddesc, + &algo, + workSpace, + workSpaceSizeInBytes, + stream); + if (oneRunStatus != CUBLAS_STATUS_SUCCESS) { + algoStatus = oneRunStatus; + break; + } + } + err1 = cudaEventRecord(stopEvent, stream); + err2 = cudaEventSynchronize(stopEvent); + float time; + err3 = cudaEventElapsedTime(&time, startEvent, stopEvent); + if ((err != cudaSuccess) || (err1 != cudaSuccess) || (err2 != cudaSuccess) || (err3 != cudaSuccess)) { + algoStatus = CUBLAS_STATUS_INTERNAL_ERROR; + } + // For the moment only add successful findings + if (algoStatus == CUBLAS_STATUS_SUCCESS) { + perfResults.algo = algo; + perfResults.time = time/repeats; + perfResults.workspaceSize = heurResult.workspaceSize; + perfResults.wavesCount = heurResult.wavesCount; + } + } + else { + //printf("not enough workspace! %ld\n", heurResult.workspaceSize); + algoStatus = CUBLAS_STATUS_NOT_SUPPORTED; //Not enough workspace + } + } + + return algoStatus; } +template +int LtHgemmCustomFind(cublasLtHandle_t ltHandle, + int batch_size, + int seq_len, + int head_num, + int size_per_head, + int m, + int n, + int k, + const T *alpha, /* host pointer */ + const T *A, + const T *B, + const T *beta, /* host pointer */ + T *C, + void *workSpace, + size_t workSpaceSize, + FILE* fout, + customMatmulPerf_t perfResults[], + int AlgoCombinations) +{ + + cublasStatus_t status = CUBLAS_STATUS_SUCCESS; + cudaEvent_t startEvent; + cudaEvent_t stopEvent; + int is_fp16 = (sizeof(T) == sizeof(half) ? 1 : 0); + + cublasLtMatmulDesc_t operationDesc = NULL; + cublasLtMatrixLayout_t Adesc = NULL, Bdesc = NULL, Cdesc = NULL; + + cudaStream_t stream = 0; + // SplitK value that we are going to try when SplitK is supported for a given algo + const int splitKSequenceA[] = {2, 3, 4, 5, 6, 8, 12, 16, 32}; + // Let try a fixed number of combinations + int AlgoCount = 0; + int AlgoCountRestrict = 0; // workspace == 0 + int maxNumTraversal = 50; // max number of traversal + cublasLtMatmulAlgo_t algos[AlgoCombinations]; // 0 <= workspace <= 32MB + cublasLtMatmulAlgo_t algosRestrict[AlgoCombinations]; // workspace == 0 + int kernelRepeats = 100; //number of time the CUDA kernels will be run back to back + int nbAlgoIds = 0; // Number of algorithms actually returned by cublasLtMatmulAlgoGetIds function. + #define ALGO_IDS 100 // Number of algorithms requested. + int algoIdA[ALGO_IDS]; // Array containing the algorithm IDs returned by cublasLtMatmulAlgoGetIds function. + cudaDataType_t Atype, Btype, Ctype, scaleType; +#ifdef CUDA11_MODE + cublasComputeType_t computeType; +#else + cudaDataType_t computeType; +#endif + + if(sizeof(T) == sizeof(float)){ + scaleType = CUDA_R_32F, Atype = CUDA_R_32F, Btype = CUDA_R_32F, Ctype = CUDA_R_32F; +#ifdef CUDA11_MODE + computeType = CUBLAS_COMPUTE_32F; +#else + computeType = CUDA_R_32F; +#endif + }else{ + scaleType = CUDA_R_16F, Atype = CUDA_R_16F, Btype = CUDA_R_16F, Ctype = CUDA_R_16F; +#ifdef CUDA11_MODE + computeType = CUBLAS_COMPUTE_16F; +#else + computeType = CUDA_R_16F; +#endif + } + + // Create operation descriptor; see cublasLtMatmulDescAttributes_t for details about defaults; here we just need to + // set the transforms for A and B +#ifdef CUDA11_MODE + status = cublasLtMatmulDescCreate(&operationDesc, computeType, scaleType); // creates a matrix multiply descriptor +#else + status = cublasLtMatmulDescCreate(&operationDesc, computeType); +#endif + if (status != CUBLAS_STATUS_SUCCESS) goto CLEANUP; + + // Create matrix descriptors. We are good with the details here so no need to set any extra attributes + status = cublasLtMatrixLayoutCreate( + &Adesc, Atype, m, k, m); + if (status != CUBLAS_STATUS_SUCCESS) goto CLEANUP; + status = cublasLtMatrixLayoutCreate( + &Bdesc, Btype, k, n, k); + if (status != CUBLAS_STATUS_SUCCESS) goto CLEANUP; + + status = cublasLtMatrixLayoutCreate(&Cdesc, Ctype, m, n, m); + if (status != CUBLAS_STATUS_SUCCESS) goto CLEANUP; + + // Create CUDA event to time the execution time of each algo + if (cudaEventCreate(&startEvent, cudaEventBlockingSync) != cudaSuccess) { + goto CLEANUP; + } + if (cudaEventCreate(&stopEvent, cudaEventBlockingSync) != cudaSuccess) { + goto CLEANUP; + } + + // Request the 100 first AlgoId available + status = cublasLtMatmulAlgoGetIds( ltHandle, computeType, scaleType, Atype, Btype, Ctype, Ctype, ALGO_IDS, algoIdA, &nbAlgoIds); + if (status != CUBLAS_STATUS_SUCCESS) goto CLEANUP; + + // Loop over the Algo IDs + for (int idx = 0; (idx < nbAlgoIds) && (AlgoCount < AlgoCombinations); idx++) { + cublasLtMatmulAlgo_t algo; + size_t sizeWritten = 0; + /* Initialize algo structure with given Algp ID */ + status = cublasLtMatmulAlgoInit(ltHandle, computeType, scaleType, Atype, Btype, Ctype, Ctype, algoIdA[idx], &algo); + if (status != CUBLAS_STATUS_SUCCESS) { + continue; + } + // Query the tiles enums supported by that algo + cublasLtMatmulAlgoCapGetAttribute( &algo, CUBLASLT_ALGO_CAP_TILE_IDS, NULL, 0, &sizeWritten); + int nbTiles = int(sizeWritten/sizeof(int)); + int *tileA = new int[ nbTiles == 0 ? 1:nbTiles]; + if(nbTiles == 0){ + tileA[0] = CUBLASLT_MATMUL_TILE_UNDEFINED; + nbTiles = 1; + } +#ifdef CUDA11_MODE + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_STAGES_IDS, NULL, 0, &sizeWritten); + int nbStages = int(sizeWritten/sizeof(int)); + std::vector stagesA(nbStages == 0 ? 1 : nbStages); + if (nbStages == 0) { + stagesA[0] = CUBLASLT_MATMUL_STAGES_UNDEFINED; + nbStages = 1; + } else { + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_STAGES_IDS, stagesA.data(), sizeof(int)*nbStages, &sizeWritten); + } +#endif + int splitkSupport, redMask, swizzlingMax, customOptionMax; + // Retrieve Algo Capabilities attributes to be able to setup loop over the different combinations + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_TILE_IDS, tileA, sizeof(int)*nbTiles, &sizeWritten); + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_SPLITK_SUPPORT, &splitkSupport, sizeof(splitkSupport), &sizeWritten); + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_REDUCTION_SCHEME_MASK, &redMask, sizeof(redMask), &sizeWritten); + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_CTA_SWIZZLING_SUPPORT, &swizzlingMax, sizeof(swizzlingMax), &sizeWritten); + cublasLtMatmulAlgoCapGetAttribute(&algo, CUBLASLT_ALGO_CAP_CUSTOM_OPTION_MAX, &customOptionMax, sizeof(customOptionMax), &sizeWritten); + + /* Loop over the different tiles */ + for (int tileIdx = 0; tileIdx < nbTiles; tileIdx++) { +#ifdef CUDA11_MODE + /* Loop over different stages count */ + for (int stagesIdx = 0; stagesIdx < nbStages; stagesIdx++) { + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_STAGES_ID, &stagesA[stagesIdx], sizeof(stagesA[stagesIdx])); +#endif + /* Loop over the different custom option if any */ + for (int customOption = 0; customOption <= customOptionMax; customOption++) { + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CUSTOM_OPTION, &customOption, sizeof(customOption)); + /* Loop over the CTAs swizzling support */ + for (int k = 0; k <= swizzlingMax; k++) { + int splitK_trial = 0; + if (splitkSupport) { + splitK_trial += sizeof(splitKSequenceA) / sizeof(splitKSequenceA[0]); + } + // Loop over the splitK value over a fixed sequence splitKSequenceA in addtion to the case where splitK is not enabled + for (int l = 0; (l < (1 + splitK_trial)) && (AlgoCount < AlgoCombinations); l++) { + /* Setup attribute of the algo to run */ + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_TILE_ID, &tileA[tileIdx], sizeof(tileA[tileIdx])); + int splitK_val = 0; + int redScheme = CUBLASLT_REDUCTION_SCHEME_NONE; + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &splitK_val, sizeof(splitK_val)); + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_CTA_SWIZZLING, &k, sizeof(k)); + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &redScheme, sizeof(int)); + + if (l > 0) { // Split-K case + splitK_val = splitKSequenceA[l - 1]; + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_SPLITK_NUM, &splitKSequenceA[l - 1], sizeof(splitKSequenceA[l - 1])); + /* Going over all the reduction scheme */ + for (redScheme = 1 ; redScheme < (int)CUBLASLT_REDUCTION_SCHEME_MASK && (AlgoCount < AlgoCombinations); redScheme = redScheme << 1) { + if (redScheme & redMask) { + cublasLtMatmulAlgoConfigSetAttribute(&algo, CUBLASLT_ALGO_CONFIG_REDUCTION_SCHEME, &redScheme, sizeof(redScheme)); + + cublasLtMatmulHeuristicResult_t heurResult; + cublasStatus_t algoStatus = cublasLtMatmulAlgoCheck( ltHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Cdesc, + &algo, + &heurResult); + if (heurResult.workspaceSize > workSpaceSize) { + // printf("not enough workspace! %ld\n", heurResult.workspaceSize); + algoStatus = CUBLAS_STATUS_NOT_SUPPORTED; //Not enough workspace + }else if(heurResult.workspaceSize == 0){ + if(algoStatus == CUBLAS_STATUS_SUCCESS){ + algosRestrict[AlgoCountRestrict++] = algo; + } + } + if(algoStatus == CUBLAS_STATUS_SUCCESS){ + algos[AlgoCount++] = algo; + } + } // end if + } // end for + } else { // Non-splitK case + /* if user preference is ok with workspace */ + if (AlgoCount < AlgoCombinations) { + cublasLtMatmulHeuristicResult_t heurResult; + cublasStatus_t algoStatus = cublasLtMatmulAlgoCheck( ltHandle, + operationDesc, + Adesc, + Bdesc, + Cdesc, + Cdesc, + &algo, + &heurResult); + if (heurResult.workspaceSize > workSpaceSize) { + // printf("not enough workspace! %ld\n", heurResult.workspaceSize); + algoStatus = CUBLAS_STATUS_NOT_SUPPORTED; //Not enough workspace + }else if(heurResult.workspaceSize == 0){ + if(algoStatus == CUBLAS_STATUS_SUCCESS){ + algosRestrict[AlgoCountRestrict++] = algo; + } + } + if(algoStatus == CUBLAS_STATUS_SUCCESS){ + algos[AlgoCount++] = algo; + } + } + } + } // end l + } // end k + } //end customOption +#ifdef CUDA11_MODE + } // end stagesIdx +#endif + } // end tileIdx + delete [] tileA; + } // end idx + + printf("AlgoCount: %d\n", AlgoCount); + if(AlgoCount < maxNumTraversal){ + // 0 <= workspacesize <= 32MB + for(int i=0;i void generate_encoder_gemm_config(int batch_size, int seq_len, int head_num, int size_per_head, - void *buffer, + void *buffer_in, bool isAppend) { + void *cublas_workspace; + void *buffer; + int workSpaceSize; + if (std::is_same::value) + { + //cublas_workspace_ should be the start pointer of cudaMalloc() + //to ensure 16B alignemnet + cublas_workspace = buffer_in; + buffer = (void*)((char*)cublas_workspace + CUBLAS_WORKSPACE_SIZE); + workSpaceSize = CUBLAS_WORKSPACE_SIZE; + } + else + { + cublas_workspace = nullptr; + buffer = buffer_in; + workSpaceSize = 0; + } struct cudaDeviceProp prop; check_cuda_error(cudaGetDeviceProperties(&prop, 0)); @@ -42,6 +519,7 @@ void generate_encoder_gemm_config(int batch_size, //check config FILE *fd; + int line_count = 0; if (!isAppend) { fd = fopen(GEMM_CONFIG, "w+"); @@ -55,15 +533,18 @@ void generate_encoder_gemm_config(int batch_size, { config.push_back(std::string(line)); } - if (config.size() >= MAX_CONFIG_NUM*GEMM_NUM) + line_count = config.size(); + if (config.size() >= (MAX_CONFIG_NUM*GEMM_NUM + 1)) // 6 cublas/cublasLt, first row is not included { - int startIdx = config.size() - (MAX_CONFIG_NUM - 1)*GEMM_NUM; + int startIdx = config.size() - ((MAX_CONFIG_NUM - 1)*GEMM_NUM); fclose(fd); fd = fopen(GEMM_CONFIG, "w+"); - for (int i = startIdx ; i < config.size() ; i++) + fprintf(fd, "%s", config[0].c_str()); + for (uint i = startIdx ; i < config.size() ; i++) { fprintf(fd, "%s", config[i].c_str()); } + line_count = config.size() - (GEMM_NUM + 3); } } @@ -73,7 +554,7 @@ void generate_encoder_gemm_config(int batch_size, int K[gemm_num]; int batchCount[gemm_num] = {1,1,1,1,1,1}; char mess[gemm_num][256]; - + //gemm1 M[0] = batch_size * seq_len; K[0] = head_num * size_per_head; @@ -112,6 +593,8 @@ void generate_encoder_gemm_config(int batch_size, cublasHandle_t cublas_handle; check_cuda_error(cublasCreate(&cublas_handle)); + cublasLtHandle_t ltHandle; + check_cuda_error(cublasLtCreate(<Handle)); cudaDataType_t AType; cudaDataType_t BType; @@ -142,6 +625,11 @@ void generate_encoder_gemm_config(int batch_size, T beta = (T)0.0f; printf("***Encoder Gemm Testing Begin***\n"); + printf("***Cublas Gemm Testing Begin***\n"); + if (line_count == 0){ + fprintf(fd, "batch_size, seq_len, head_num, size_per_head dataType ### batchCount, n, m, k, algoId, "\ + "customOption, tile, numSplitsK, swizzle, reductionScheme, workspaceSize, stages, exec_time\n"); + } for(int i = 0; i < gemm_num; ++i) { // if(i != 0 && i != 5) continue; @@ -156,14 +644,14 @@ void generate_encoder_gemm_config(int batch_size, // array of pointer for batchedGemm T* harray[9]; harray[0] = (T*)buffer; - harray[1] = (T*)(buffer + sizeof(T) * m * k); - harray[2] = (T*)(buffer + 2 * sizeof(T) * m * k); - harray[3] = (T*)(buffer + 3 * sizeof(T) * m * k); - harray[4] = (T*)(buffer + 3 * sizeof(T) * m * k + sizeof(T) * k * n); - harray[5] = (T*)(buffer + 3 * sizeof(T) * m * k + 2 * sizeof(T) * k * n); - harray[6] = (T*)(buffer + 3 * sizeof(T) * m * k + 3 * sizeof(T) * k * n); - harray[7] = (T*)(buffer + 3 * sizeof(T) * m * k + 3 * sizeof(T) * k * n + sizeof(T) * m * n); - harray[8] = (T*)(buffer + 3 * sizeof(T) * m * k + 3 * sizeof(T) * k * n + 2 * sizeof(T) * m * n); + harray[1] = (T*)((char*)buffer + sizeof(T) * m * k); + harray[2] = (T*)((char*)buffer + 2 * sizeof(T) * m * k); + harray[3] = (T*)((char*)buffer + 3 * sizeof(T) * m * k); + harray[4] = (T*)((char*)buffer + 3 * sizeof(T) * m * k + sizeof(T) * k * n); + harray[5] = (T*)((char*)buffer + 3 * sizeof(T) * m * k + 2 * sizeof(T) * k * n); + harray[6] = (T*)((char*)buffer + 3 * sizeof(T) * m * k + 3 * sizeof(T) * k * n); + harray[7] = (T*)((char*)buffer + 3 * sizeof(T) * m * k + 3 * sizeof(T) * k * n + sizeof(T) * m * n); + harray[8] = (T*)((char*)buffer + 3 * sizeof(T) * m * k + 3 * sizeof(T) * k * n + 2 * sizeof(T) * m * n); T** darray = 0; check_cuda_error(cudaMalloc((void**)&darray, sizeof(T*) * 9)); @@ -254,10 +742,32 @@ void generate_encoder_gemm_config(int batch_size, int is_fp16 = 0; if (sizeof(T) == sizeof(half)) is_fp16 = 1; - fprintf(fd, "%d %d %d %d ### %d %d %d %d %d %d %f\n", batch_size, seq_len, head_num, size_per_head, batchCount[i], m, n, k, is_fp16, fast_algo, exec_time); + + //for fp16, we compare cublasLt + if(i < 3 && is_fp16 == 1){ + printf("***cublasLt Gemm Testing Beign***\n"); + // Let try a fixed number of combinations + int ALGO_COMBINATIONS = 5000; + customMatmulPerf_t perfResults[ALGO_COMBINATIONS]; + + LtHgemmCustomFind(ltHandle, batch_size, seq_len, head_num, size_per_head, n, m, k, &alpha, d_B, d_A, + &beta, d_C, cublas_workspace, workSpaceSize, fd, perfResults, ALGO_COMBINATIONS); + if(perfResults[0].time < exec_time){ + printPerfStructure(batch_size, seq_len, head_num, size_per_head, n, m, k, perfResults[0], fd, is_fp16, 0); + }else{ + fprintf(fd, "%d %d %d %d %d ### %d %d %d %d %d -1 -1 -1 -1 -1 -1 -1 %f\n", batch_size, seq_len, head_num, size_per_head, is_fp16 ? HALF_DATATYPE:FLOAT_DATATYPE, + batchCount[i], n, m, k, fast_algo, exec_time); + } + printf("***cublasLt Gemm Testing End***\n"); + } + else + { + fprintf(fd, "%d %d %d %d %d ### %d %d %d %d %d -1 -1 -1 -1 -1 -1 -1 %f\n", batch_size, seq_len, head_num, size_per_head, is_fp16 ? HALF_DATATYPE:FLOAT_DATATYPE, + batchCount[i], n, m, k, fast_algo, exec_time); + } cudaFree(darray); } - + printf("***cublas Gemm Testing End***\n\n"); fclose(fd); printf("***Encoder Gemm Testing End***\n"); return; @@ -275,7 +785,6 @@ size_t calGemmTestBufSizeInByte(int batch_size, int seq_len, int head_num, int s int m = batch_size*seq_len; int n = head_num*size_per_head; int k = n; - int batchCount; size_t size1 = 3*(m*k*sizeof(int8_t) + k*n*sizeof(int8_t) + m*n*sizeof(int)); size_t size2 = batch_size*head_num*(seq_len*size_per_head*sizeof(int8_t) + size_per_head*seq_len*sizeof(int8_t) + seq_len*seq_len*sizeof(int)); @@ -296,8 +805,10 @@ size_t calGemmTestBufSizeInByte(int batch_size, int seq_len, int head_num, int s size_t size3 = (m*k + k*4*n + m*4*n)*wordSize; buf_size_in_byte = size1 > size2 ? size1 : size2; buf_size_in_byte = buf_size_in_byte > size3 ? buf_size_in_byte : size3; + buf_size_in_byte += ((is_fp16 == 1) ? CUBLAS_WORKSPACE_SIZE : 0); } return buf_size_in_byte; } } + diff --git a/fastertransformer/gemm_test/encoder_igemm_func.cc b/fastertransformer/gemm_test/encoder_igemm_func.cc index b08beb3bc..96984a9e6 100644 --- a/fastertransformer/gemm_test/encoder_igemm_func.cc +++ b/fastertransformer/gemm_test/encoder_igemm_func.cc @@ -15,7 +15,7 @@ */ #include "encoder_igemm_func.h" -#include "fastertransformer/common.h" +#include "fastertransformer/utils/common.h" #include namespace fastertransformer{ @@ -90,10 +90,10 @@ int printPerfStructure(int m, int n, int k, const customMatmulPerf_t &perf, FILE (int)perf.workspaceSize, (int)perf.mathMode, perf.wavesCount); - + //chose the fastest algo that does not need workspace if ((int)perf.workspaceSize == 0 && hasPrint == 0){ - fprintf(fout, "%d %d %d %d ### 1 %d %d %d %d %d %d %d %d %d %d %d\n", batch_size_, seq_len_, head_num_, size_per_head_, m, n, k, algoId, customOption, tile, numSplitsK, swizzle, reductionScheme, (int)perf.workspaceSize, stages); + fprintf(fout, "%d %d %d %d %d ### 1 %d %d %d %d %d %d %d %d %d %d %d %f\n", batch_size_, seq_len_, head_num_, size_per_head_, INT8_DATATYPE, m, n, k, algoId, customOption, tile, numSplitsK, swizzle, reductionScheme, (int)perf.workspaceSize, stages, perf.time); return 1; } else{ @@ -128,9 +128,9 @@ int printBatchPerfStructure(int batchCount, int m, int n, int k, const customMat (int)perf.mathMode, perf.wavesCount); - //chose the fastest algo that does not need workspace + //chose the fastest algo that does not need workspace if ((int)perf.workspaceSize == 0 && hasPrint == 0){ - fprintf(fout, "%d %d %d %d ### %d %d %d %d %d %d %d %d %d %d %d %d\n",batch_size_, seq_len_, head_num_, size_per_head_, batchCount, m, n, k, algoId, customOption, tile, numSplitsK, swizzle, reductionScheme, (int)perf.workspaceSize, stages); + fprintf(fout, "%d %d %d %d %d ### %d %d %d %d %d %d %d %d %d %d %d %d %f\n",batch_size_, seq_len_, head_num_, size_per_head_, INT8_DATATYPE, batchCount, m, n, k, algoId, customOption, tile, numSplitsK, swizzle, reductionScheme, (int)perf.workspaceSize, stages, perf.time); return 1; } else{ @@ -209,7 +209,7 @@ customMatmulRun(cublasLtHandle_t ltHandle, // to get the capabilities (required } } else { - printf("not enough workspace! %ld\n", heurResult.workspaceSize); + //printf("not enough workspace! %ld\n", heurResult.workspaceSize); algoStatus = CUBLAS_STATUS_NOT_SUPPORTED; //Not enough workspace } } @@ -732,6 +732,7 @@ int batch_igemm_config(int batchCount, int m, int n, int k, FILE* fout, void* bu fout); //free memory cublasLtDestroy(ltHandle); + return 0; } int igemm_config(int m, int n, int k, FILE* fout, void* buffer){ @@ -760,6 +761,7 @@ int igemm_config(int m, int n, int k, FILE* fout, void* buffer){ fout); cublasLtDestroy(ltHandle); + return 0; } int generate_encoder_igemm_config(int batch_size, int seq_len, int head_num, int size_per_head, void *buffer, bool isAppend) @@ -780,6 +782,7 @@ int generate_encoder_igemm_config(int batch_size, int seq_len, int head_num, int if (!isAppend) { fout = fopen(IGEMM_CONFIG, "w+"); + fprintf(fout, "batch_size seq_len head_num size_per_head dataType ### batchCount m n k algoId customOption tile splitK_val swizzle reductionScheme workspaceSize stages exec_time\n"); } else { @@ -817,14 +820,28 @@ int generate_encoder_igemm_config(int batch_size, int seq_len, int head_num, int m = batch_size*seq_len; k = head_num*size_per_head; n = k; - batch_igemm_config(batchCount,m,n,k,fout,buffer); + if (n%32 != 0 || k%32 != 0) + { + printf("[WARNING] For INT8 gemm test, n, k should be multiples of 32 (n = %d, k = %d)\n", n, k); + } + else + { + batch_igemm_config(batchCount,m,n,k,fout,buffer); + } printf("\n-----------------------------\n"); m = seq_len; n = seq_len; k = size_per_head; batchCount = batch_size*head_num; - batch_igemm_config(batchCount,m,n,k,fout,buffer); + if (n%32 != 0 || k%32 != 0) + { + printf("[WARNING] For INT8 gemm test, n, k should be multiples of 32 (n = %d, k = %d)\n", n, k); + } + else + { + batch_igemm_config(batchCount,m,n,k,fout,buffer); + } printf("\n-----------------------------\n"); @@ -832,30 +849,58 @@ int generate_encoder_igemm_config(int batch_size, int seq_len, int head_num, int n = size_per_head; k = seq_len; batchCount = batch_size*head_num; - batch_igemm_config(batchCount,m,n,k,fout,buffer); + if (n%32 != 0 || k%32 != 0) + { + printf("[WARNING] For INT8 gemm test, n, k should be multiples of 32 (n = %d, k = %d)\n", n, k); + } + else + { + batch_igemm_config(batchCount,m,n,k,fout,buffer); + } printf("\n-----------------------------\n"); m = batch_size*seq_len; n = head_num*size_per_head; k = head_num*size_per_head; - - igemm_config(m,n,k,fout,buffer); + if (n%32 != 0 || k%32 != 0) + { + printf("[WARNING] For INT8 gemm test, n, k should be multiples of 32 (n = %d, k = %d)\n", n, k); + } + else + { + igemm_config(m,n,k,fout,buffer); + } printf("\n-----------------------------\n"); n = 4*n; - igemm_config(m,n,k,fout,buffer); + if (n%32 != 0 || k%32 != 0) + { + printf("[WARNING] For INT8 gemm test, n, k should be multiples of 32 (n = %d, k = %d)\n", n, k); + } + else + { + igemm_config(m,n,k,fout,buffer); + } printf("\n-----------------------------\n"); n = k; k = 4*n; - igemm_config(m,n,k,fout,buffer); + if (n%32 != 0 || k%32 != 0) + { + printf("[WARNING] For INT8 gemm test, n, k should be multiples of 32 (n = %d, k = %d)\n", n, k); + } + else + { + igemm_config(m,n,k,fout,buffer); + } fclose(fout); printf("\n-----------------------------\n"); printf("***Encoder IGemm Testing End***\n"); + return 0; } } diff --git a/fastertransformer/gemm_test/encoder_igemm_func.h b/fastertransformer/gemm_test/encoder_igemm_func.h index f284156eb..4d4ad1af4 100644 --- a/fastertransformer/gemm_test/encoder_igemm_func.h +++ b/fastertransformer/gemm_test/encoder_igemm_func.h @@ -31,6 +31,7 @@ typedef struct { int algoId, customOption, tile, splitK_val, swizzle, reductionScheme, workspaceSize; //only used in cublasLt >= 11.0 int stages; + float exec_time; } cublasLtMatmulAlgo_info; /* Structure to store information about different run trials */ typedef struct { @@ -74,7 +75,6 @@ const char * const matmulTileName[] = { "512x64" , }; -double diffTime(timeval start, timeval end); int generate_encoder_igemm_config(int batch_size, int seq_len, int head_num, int size_per_head, void* buffer, bool isAppend = true); diff --git a/fastertransformer/gpt.h b/fastertransformer/gpt.h new file mode 100644 index 000000000..1b89790d1 --- /dev/null +++ b/fastertransformer/gpt.h @@ -0,0 +1,835 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Decoder transformer + **/ + +#pragma once + +#include "fastertransformer/utils/common.h" +#include "fastertransformer/utils/functions.h" +#include "fastertransformer/utils/allocator.h" +#include "fastertransformer/utils/arguments.h" +#include "fastertransformer/cuda/cuda_kernels.h" +#include "fastertransformer/open_decoder.h" +#include +#include +#include "fastertransformer/utils/nvtx_utils.h" + +namespace fastertransformer +{ + +template +class DecodingGpt +{ +private: + typedef DecoderTransformerTraits Traits_; + typedef typename Traits_::DataType DataType_; + const IAllocator &allocator_; + struct GptArguments args_; + TensorParallelParam t_parallel_param_; + LayerParallelParam l_parallel_param_; + + const cudaDataType_t computeType_ = Traits_::computeType; + const cudaDataType_t AType_ = Traits_::AType; + const cudaDataType_t BType_ = Traits_::BType; + const cudaDataType_t CType_ = Traits_::CType; + std::map cublasAlgoMap_; + + DataType_ *embedding_kernel_padded_; + + OpenDecoder *decoder_; + DataType_ **K_cache_; + DataType_ **V_cache_; + DataType_ *from_tensor_[2]; + DataType_ *decoder_buf_; + DataType_ *decoder_normed_result_buf_; + DataType_ *logits_buf_; + void *buf_; + + void *topk_workspace_ = nullptr; + size_t topk_workspace_size_ = 0; + void *topp_workspace_ = nullptr; + size_t topp_workspace_size_ = 0; + void *topk_topp_workspace_ = nullptr; + size_t topk_topp_workspace_size_ = 0; + void *cublas_workspace_ = nullptr; + int *topp_id_vals_buf_; + int *topp_offset_buf_; + curandState_t *curandstate_buf_; + int *begin_topp_offset_buf_; + + size_t nccl_buf_size_; + DataType_ *nccl_logits_buf_; + + bool *finished_buf_; + bool *h_finished_buf_; + +public: + DecodingGpt(const IAllocator &allocator, const int batch_size, + const int seq_len, + const int head_num, const int size_per_head, + const int vocab_size, const int decoder_layers, + const int start_id, const int end_id, + const int candidate_num = 1, + const float probability_threshold = 0.0, + const float temperature = 1.0, + const int tensor_para_size = 1, + const int layer_para_size = 1, + const bool is_fuse_QKV = true) : allocator_(allocator) + { +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + assert(temperature != 0.0); + assert(candidate_num > 0 || probability_threshold > 0.0); + assert(decoder_layers % layer_para_size == 0); + + args_.batch_size_ = batch_size; + args_.seq_len_ = seq_len; + args_.head_num_ = head_num; + args_.size_per_head_ = size_per_head; + args_.hidden_units_ = head_num * size_per_head; + args_.decoder_layers_ = decoder_layers; + args_.vocab_size_ = vocab_size; + args_.start_id_ = start_id; + args_.end_id_ = end_id; + args_.candidate_num_ = candidate_num; + args_.probability_threshold_ = probability_threshold; + args_.temperature_ = temperature; + + K_cache_ = new DataType_ *[1]; + V_cache_ = new DataType_ *[1]; + + decoder_ = new OpenDecoder(args_.head_num_, size_per_head, 0 /* memory_hidden_units */, is_fuse_QKV); + decoder_->set_max_batch_size(args_.batch_size_); + + args_.vocab_size_padded_ = div_up(args_.vocab_size_, 64) * 64; + + size_t from_tensor_size = args_.batch_size_ * args_.hidden_units_; // type T + size_t decoder_workspace_size = (size_t)decoder_->getWorkspaceSize(); // type T + size_t decoder_normed_result_buffer_size = args_.batch_size_ * args_.hidden_units_; // type T + // cache costs lots of memory, so we only store part of them when we use multi-gpu for inference + size_t cache_size = args_.batch_size_ * args_.seq_len_ * args_.hidden_units_ / tensor_para_size; // type T + size_t logits_buf_size = args_.batch_size_ * args_.vocab_size_padded_; // type T + + size_t topp_id_vals_buf_size = args_.batch_size_ * args_.vocab_size_padded_; // type int + size_t topp_offset_buf_size = args_.batch_size_ + 1; + size_t begin_topp_offset_buf_size = topp_offset_buf_size; + size_t curandState_size = args_.batch_size_; + size_t finished_buf_size = args_.batch_size_; + + const int MEM_C = 128; + size_t embedding_kernel_transposed_padded_size = args_.hidden_units_ * args_.vocab_size_padded_; + embedding_kernel_transposed_padded_size = div_up(embedding_kernel_transposed_padded_size, MEM_C) * MEM_C; + + // prevent memory misalinged address + logits_buf_size = (size_t)(ceil(logits_buf_size / 4.)) * 4; + + topp_id_vals_buf_size = (size_t)(ceil(topp_id_vals_buf_size / 4.)) * 4; + topp_offset_buf_size = (size_t)(ceil(topp_offset_buf_size / 4.)) * 4; + begin_topp_offset_buf_size = topp_offset_buf_size; + curandState_size = (size_t)(ceil(curandState_size / 32.)) * 32; + finished_buf_size = (size_t)(ceil(finished_buf_size / 32.)) * 32; + + topP_sampling_kernel_kernelLauncher_v2(topp_workspace_, + topp_workspace_size_, + logits_buf_, + topp_id_vals_buf_, + topp_offset_buf_, + begin_topp_offset_buf_, + nullptr, + curandstate_buf_, + args_, + nullptr, + nullptr, + args_.vocab_size_padded_, + 0, + args_.batch_size_); + + topK_sampling_kernel_kernelLauncher_v2(topk_workspace_, + topk_workspace_size_, + logits_buf_, + nullptr, + nullptr, + nullptr, + curandstate_buf_, + args_, + 0, + args_.batch_size_); + + topK_topP_sampling_kernel_kernelLauncher_v2(topk_topp_workspace_, + topk_topp_workspace_size_, + nullptr, + logits_buf_, + nullptr, + curandstate_buf_, + args_, + 0, + args_.batch_size_); + + size_t datatype_buf_size = from_tensor_size * 2 + decoder_workspace_size + + cache_size * 2 * (args_.decoder_layers_ / layer_para_size) + decoder_normed_result_buffer_size; + + nccl_buf_size_ = args_.batch_size_ * args_.vocab_size_padded_; + nccl_buf_size_ = (size_t)(ceil(nccl_buf_size_ / 4.)) * 4; + + buf_ = reinterpret_cast(allocator_.malloc( + ((sizeof(DataType_) == sizeof(half)) ? CUBLAS_WORKSPACE_SIZE : 0) + + sizeof(DataType_) * embedding_kernel_transposed_padded_size + + sizeof(DataType_) * (datatype_buf_size + logits_buf_size) + + sizeof(int) * (topp_id_vals_buf_size + topp_offset_buf_size + begin_topp_offset_buf_size) + + topp_workspace_size_ + topk_workspace_size_ + topk_topp_workspace_size_ + sizeof(DataType_) * nccl_buf_size_ + + finished_buf_size + curandState_size * sizeof(curandState_t))); + + if (sizeof(DataType_) == sizeof(half)) + { + cublas_workspace_ = buf_; + embedding_kernel_padded_ = (DataType_ *)((char*)cublas_workspace_ + CUBLAS_WORKSPACE_SIZE); + } + else + { + cublas_workspace_ = nullptr; + embedding_kernel_padded_ = (DataType_ *)buf_; + } + from_tensor_[0] = (DataType_ *)(embedding_kernel_padded_ + embedding_kernel_transposed_padded_size); + from_tensor_[1] = (DataType_ *)(from_tensor_[0] + from_tensor_size); + + K_cache_[0] = from_tensor_[1] + from_tensor_size + 0 * cache_size * args_.decoder_layers_ / layer_para_size; + V_cache_[0] = from_tensor_[1] + from_tensor_size + 1 * cache_size * args_.decoder_layers_ / layer_para_size; + + decoder_buf_ = V_cache_[0] + cache_size * args_.decoder_layers_ / layer_para_size; + decoder_normed_result_buf_ = (decoder_buf_ + decoder_workspace_size); + logits_buf_ = decoder_normed_result_buf_ + decoder_normed_result_buffer_size; + topp_id_vals_buf_ = (int *)((DataType_*)logits_buf_ + logits_buf_size); + begin_topp_offset_buf_ = (int *)(topp_id_vals_buf_ + topp_id_vals_buf_size); + topp_offset_buf_ = (int *)((int*)begin_topp_offset_buf_ + begin_topp_offset_buf_size); + topp_workspace_ = (void *)((int*)topp_offset_buf_ + topp_offset_buf_size); + topk_workspace_ = (void *)((char*)topp_workspace_ + topp_workspace_size_); + topk_topp_workspace_ = (void *)((char*)topk_workspace_ + topk_workspace_size_); + nccl_logits_buf_ = (DataType_ *)((char*)topk_topp_workspace_ + topk_topp_workspace_size_); + curandstate_buf_ = (curandState_t*)(nccl_logits_buf_ + nccl_buf_size_); + finished_buf_ = (bool*)(curandstate_buf_ + curandState_size); + h_finished_buf_ = new bool[args_.batch_size_]; + + cudaMemset(embedding_kernel_padded_, 0, embedding_kernel_transposed_padded_size * sizeof(DataType_)); + + int isConfigExist = access("decoding_gemm_config.in", 0); + if (isConfigExist == -1) + printf("[WARNING] decoding_gemm_config.in is not found\n"); + else + { + readAlgoFromConfig(cublasAlgoMap_, 1); + // check that the gemm_config setting is runnable + for (auto iter = cublasAlgoMap_.begin() ; iter != cublasAlgoMap_.end() ; iter++) + { + int algoId = iter->second.algoId; + int stages = iter->second.stages; + //only check for cublas + if (stages != -1) + continue; + if (Traits_::OpType == OperationType::FP32) + { + if (algoId > CUBLAS_GEMM_ALGO23 || algoId < CUBLAS_GEMM_DEFAULT) + { + // the algorithm is not for FP32 + printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", algoId); + exit(-1); + } + } + else + { + if (algoId > CUBLAS_GEMM_ALGO15_TENSOR_OP || algoId < CUBLAS_GEMM_DEFAULT_TENSOR_OP) + { + // the algorithm is not for FP16 + printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", algoId); + exit(-1); + } + } + } + } + } + + void set_tensor_parallel_param(const TensorParallelParam param) + { + t_parallel_param_ = param; + decoder_->set_tensor_parallel_param(param); + } + + void set_layer_parallel_param(const LayerParallelParam param) + { + l_parallel_param_ = param; + decoder_->set_layer_parallel_param(param); + } + + void forward_context(const DecoderInitParam *decoder_param, + const DecodingInitParam decoding_params) + { + cudaMemsetAsync(decoding_params.output_ids, 0, sizeof(int) * args_.batch_size_ * args_.seq_len_, decoding_params.stream); +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + const int input_len = decoding_params.request_input_len; + const int max_input_len = decoding_params.max_input_len; + const int request_batch_size = decoding_params.request_batch_size; + + // d_start_ids: [batch * seqlen] + if(input_len == 1) + { + cudaMemcpyAsync(decoding_params.output_ids, decoding_params.d_start_ids, + sizeof(int) * request_batch_size, cudaMemcpyDeviceToDevice, decoding_params.stream); + return; + } + const int local_batch_size = ceil(request_batch_size * 1.0 / l_parallel_param_.world_size); + const int m = local_batch_size * input_len; + const int h_1 = args_.hidden_units_; + + DataType_* from_tensor[2]; + DataType_* decoder_output; + DataType_* decoder_workspace; + void *buf = reinterpret_cast(allocator_.malloc( + decoder_->getContextWorkspaceSize(input_len, local_batch_size) + + (m * h_1 + 2 * request_batch_size * input_len * h_1) * sizeof(DataType_) + )); + + from_tensor[0] = (DataType_*) buf; + from_tensor[1] = from_tensor[0] + request_batch_size * input_len * h_1; + decoder_output = from_tensor[1] + request_batch_size * input_len * h_1; + decoder_workspace = decoder_output + m * h_1; + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + if(l_parallel_param_.rank == 0) + { + PUSH_RANGE("Before Transformer/Embedding") + start_id_embedding_position_lookups_kernel_launcher(from_tensor[0], + decoding_params.output_ids, + decoding_params.embedding_table, + decoding_params.position_encoding_table, + decoding_params.d_start_ids, + 1, + input_len, + max_input_len, + request_batch_size, + args_.hidden_units_, + decoding_params.stream); + POP_RANGE +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } + + int ite_num = (int)(ceil(request_batch_size * 1.0 / local_batch_size)); + for(int ite = 0; ite < ite_num; ite++) + { + int in_id, out_id; + for (int layer = 0; layer < args_.decoder_layers_; ++layer) + { + if(l_parallel_param_.is_valid(layer)) + { + in_id = layer & 0x1; + out_id = 1 - in_id; + + if(layer == l_parallel_param_.layers_per_group * l_parallel_param_.rank && layer != 0 && l_parallel_param_.world_size > 1) + { + const int size = m * t_parallel_param_.local_hidden_units_; + nccl_recv(from_tensor[in_id] + ite * m * h_1 + size * t_parallel_param_.rank, size, l_parallel_param_.rank - 1, + l_parallel_param_.nccl_comm, decoding_params.stream); + all2all_gather(from_tensor[in_id] + ite * m * h_1, from_tensor[in_id] + ite * m * h_1, size, + t_parallel_param_, decoding_params.stream); + } + + decoder_->initialize(decoder_param[layer], decoder_buf_, cublas_workspace_, false); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + int dummy_decoder_max_seq_len = args_.seq_len_; + // int dummy_decoder_max_seq_len = -1; + size_t cache_offset; + if(dummy_decoder_max_seq_len == -1) + { + cache_offset = (layer - l_parallel_param_.layers_per_group * l_parallel_param_.rank) * + args_.batch_size_ * args_.seq_len_ * t_parallel_param_.local_hidden_units_; + } + else + { + cache_offset = (layer - l_parallel_param_.layers_per_group * l_parallel_param_.rank) * + args_.batch_size_ * args_.seq_len_ * t_parallel_param_.local_hidden_units_ + + ite * local_batch_size * args_.seq_len_ * t_parallel_param_.local_hidden_units_; + } + decoder_->forward_context(decoder_workspace, + from_tensor[out_id] + ite * m * h_1, + K_cache_[0] + cache_offset, + V_cache_[0] + cache_offset, + from_tensor[in_id] + ite * m * h_1, + decoding_params.d_attn_mask + ite * local_batch_size * input_len * input_len, + local_batch_size, + input_len, + ite, + dummy_decoder_max_seq_len, + layer == args_.decoder_layers_ - 1); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + if(layer == l_parallel_param_.layers_per_group * (l_parallel_param_.rank + 1) - 1 && layer != args_.decoder_layers_ - 1 && l_parallel_param_.world_size > 1) + { + const int size = m * t_parallel_param_.local_hidden_units_; + nccl_send(from_tensor[out_id] + ite * m * h_1 + size * t_parallel_param_.rank, size, l_parallel_param_.rank + 1, + l_parallel_param_.nccl_comm, decoding_params.stream); + } + } + } // end of for loop of layer + } // end of for loop of ite + allocator_.free(buf); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } + + void forward(const DecoderInitParam *decoder_param, + DecodingInitParam decoding_params) + { +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + const int input_len = decoding_params.request_input_len; + const int max_input_len = decoding_params.max_input_len; + const int request_batch_size = decoding_params.request_batch_size; + const int max_len = (decoding_params.request_output_len > 0 && input_len + decoding_params.request_output_len <= args_.seq_len_) ? + input_len + decoding_params.request_output_len : + args_.seq_len_; + + assert(request_batch_size <= args_.batch_size_); + assert(request_batch_size % l_parallel_param_.local_batch_size == 0); + const int m = request_batch_size; + const int k = args_.hidden_units_; + const DataType_* embedding_kernel_ptr = nullptr; + + if (args_.probability_threshold_ != 0.0) + { + topp_initialization_kernelLauncher_v2(finished_buf_, + nullptr, + nullptr, + topp_id_vals_buf_, + topp_offset_buf_, + begin_topp_offset_buf_, + args_.candidate_num_ > 0 ? args_.candidate_num_ : args_.vocab_size_padded_, + args_, + decoding_params.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } + ker_curand_setupLauncher(curandstate_buf_, + args_, + decoding_params.stream); + + if(std::is_same::value || (std::is_same::value && args_.vocab_size_padded_ == args_.vocab_size_)) + { + embedding_kernel_ptr = (const DataType_ *)decoding_params.embedding_kernel; + } + else + { + cudaMemcpyAsync(embedding_kernel_padded_, decoding_params.embedding_kernel, + sizeof(DataType_) * args_.vocab_size_ * args_.hidden_units_, cudaMemcpyDeviceToDevice, decoding_params.stream); + embedding_kernel_ptr = (const DataType_ *)embedding_kernel_padded_; + } +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + const int local_batch = l_parallel_param_.local_batch_size; + for (size_t step = input_len; step < max_len; ++step) + { + const int ite_num = request_batch_size / local_batch; + for(size_t ite = 0; ite < ite_num; ite++) + { + if(l_parallel_param_.rank == 0 && l_parallel_param_.world_size > 1) + { + if(step != (size_t)input_len) + { + PUSH_RANGE("token/recv") + nccl_recv(decoding_params.output_ids + (step - 1) * m + ite * local_batch, local_batch, + l_parallel_param_.world_size - 1, l_parallel_param_.nccl_comm, decoding_params.stream); + POP_RANGE + } + } + + if(l_parallel_param_.rank < l_parallel_param_.world_size - 1 && l_parallel_param_.world_size > 1) + { + if(step != (size_t)input_len) + { + nccl_broadcast(finished_buf_ + ite * local_batch, local_batch, l_parallel_param_.world_size - 1, l_parallel_param_, decoding_params.stream); + } + } + if(ite == 0) + { + cudaMemcpyAsync(h_finished_buf_, finished_buf_, sizeof(bool) * request_batch_size, cudaMemcpyDeviceToHost, decoding_params.stream); + uint sum = 0; + for (uint i = 0; i < request_batch_size; i++) + { + sum += (int)h_finished_buf_[i]; + } + if (sum == request_batch_size) + break; + } + + int *word_ids_buf_ = decoding_params.output_ids + (step - 1) * m + local_batch * ite; + if(l_parallel_param_.rank == 0) + { + PUSH_RANGE("Before Transformer/Embedding") + embedding_position_lookups_kernel_launcher(from_tensor_[0], + decoding_params.embedding_table, + decoding_params.position_encoding_table, + word_ids_buf_, + local_batch, + args_.hidden_units_, + step, + decoding_params.stream); + POP_RANGE +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } + + //we use two-way buffer + int from_id, out_id; + for (int layer = 0; layer < args_.decoder_layers_; ++layer) + { + if(l_parallel_param_.is_valid(layer)) + { + /* + For the first layer (layer-0), from_id is 0. We also stored the embedding lookup + result in from_tensor_[0] + */ + from_id = layer & 0x1; + out_id = 1 - from_id; + + if(layer == l_parallel_param_.layers_per_group * l_parallel_param_.rank && layer != 0 && l_parallel_param_.world_size > 1) + { + const int size = local_batch * t_parallel_param_.local_hidden_units_; + nccl_recv(from_tensor_[from_id] + size * t_parallel_param_.rank, size, l_parallel_param_.rank - 1, + l_parallel_param_.nccl_comm, decoding_params.stream); + all2all_gather(from_tensor_[from_id], from_tensor_[from_id], size, + t_parallel_param_, decoding_params.stream); + } + + /* + We use one decoder_ object to process multiple decoder layers. + + At the beginning of each decoder layer, we initialize the decoder object + with corresponding weights and decoder_buf_. + + The decoder_buf_ is reused. + */ + decoder_->initialize(decoder_param[layer], decoder_buf_, cublas_workspace_, false); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + int dummy_decoder_max_seq_len = args_.seq_len_; + // int dummy_decoder_max_seq_len = -1; + size_t cache_offset; + if(dummy_decoder_max_seq_len == -1) + { + cache_offset = (layer - l_parallel_param_.layers_per_group * l_parallel_param_.rank) * + args_.batch_size_ * args_.seq_len_ * t_parallel_param_.local_hidden_units_ + + ite * local_batch * t_parallel_param_.local_hidden_units_; + } + else + { + cache_offset = (layer - l_parallel_param_.layers_per_group * l_parallel_param_.rank) * + args_.batch_size_ * args_.seq_len_ * t_parallel_param_.local_hidden_units_ + + ite * local_batch * args_.seq_len_ * t_parallel_param_.local_hidden_units_; + } + decoder_->forward(from_tensor_[from_id], + nullptr, // memory_tensor should be nullptr + K_cache_[0] + cache_offset, + V_cache_[0] + cache_offset, + nullptr, nullptr, // key_mem_cache_ and value_mem_cache_ should be nullptr + nullptr, // memory_sequence_length should be nullptr + from_tensor_[out_id], step, dummy_decoder_max_seq_len, + false, + finished_buf_ + ite * local_batch); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + if(layer == l_parallel_param_.layers_per_group * (l_parallel_param_.rank + 1) - 1 && layer != args_.decoder_layers_ - 1 && l_parallel_param_.world_size > 1) + { + const size_t size = local_batch * t_parallel_param_.local_hidden_units_; + nccl_send(from_tensor_[out_id] + size * t_parallel_param_.rank, size, l_parallel_param_.rank + 1, + l_parallel_param_.nccl_comm, decoding_params.stream); + } + } + } + + if(l_parallel_param_.rank == l_parallel_param_.world_size - 1) + { + + layer_norm(from_tensor_[out_id], + decoding_params.layernorm.gamma, + decoding_params.layernorm.beta, + decoder_normed_result_buf_, + local_batch, + k, + decoding_params.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + DataType_ alpha = DataType_(1.0f); + DataType_ beta = DataType_(0.0f); + assert(args_.vocab_size_padded_ % t_parallel_param_.world_size == 0); + int n = args_.vocab_size_padded_ / t_parallel_param_.world_size; + + if(t_parallel_param_.world_size == 1) + { + PUSH_RANGE("After Transformer/GEMM") + cublasMM_cublasLtMM_wrapper_decoder(decoding_params.cublaslt_handle, + decoding_params.cublas_handle, + CUBLAS_OP_T, CUBLAS_OP_N, + n, local_batch, k, + &alpha, + embedding_kernel_ptr, AType_, k, + decoder_normed_result_buf_, BType_, k, + &beta, + logits_buf_, CType_, n, + decoding_params.stream, cublasAlgoMap_, + cublas_workspace_); + POP_RANGE + } + else + { + PUSH_RANGE("After Transformer/GEMM") + cublasMM_cublasLtMM_wrapper_decoder(decoding_params.cublaslt_handle, + decoding_params.cublas_handle, + CUBLAS_OP_T, CUBLAS_OP_N, + n, local_batch, k, + &alpha, + embedding_kernel_ptr + t_parallel_param_.rank * n * k, + AType_, k, + decoder_normed_result_buf_, BType_, k, + &beta, + nccl_logits_buf_ + t_parallel_param_.rank * local_batch * n, + CType_, n, + decoding_params.stream, cublasAlgoMap_, + cublas_workspace_); + POP_RANGE + } + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + if(t_parallel_param_.world_size == 1) + { + apply_temperature_penalty_kernelLauncher(logits_buf_, + (DataType_) args_.temperature_, + local_batch, + args_.vocab_size_, + n, + decoding_params.stream); + } + else + { + if(t_parallel_param_.rank == t_parallel_param_.world_size - 1) + { + apply_temperature_penalty_kernelLauncher(nccl_logits_buf_ + t_parallel_param_.rank * local_batch * n, + (DataType_) args_.temperature_, + local_batch, + args_.vocab_size_ - n * t_parallel_param_.rank, + n, + decoding_params.stream); + } + else + { + apply_temperature_penalty_kernelLauncher(nccl_logits_buf_ + t_parallel_param_.rank * local_batch * n, + (DataType_) args_.temperature_, + local_batch, + n, + n, + decoding_params.stream); + } + } + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + // reduce and concat the reuslt + if(t_parallel_param_.world_size > 1) + { + PUSH_RANGE("After Transformer/all2all_gather") + all2all_gather(nccl_logits_buf_, nccl_logits_buf_, local_batch * n, + t_parallel_param_, decoding_params.stream); + POP_RANGE + + transpose_axis_01_kernelLauncher(logits_buf_, nccl_logits_buf_, + t_parallel_param_.world_size, local_batch, n, decoding_params.stream); + } + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + n = args_.vocab_size_padded_; + // Sampling + if(args_.candidate_num_ > 0 && args_.probability_threshold_ == 0.0) + { + PUSH_RANGE("After Transformer/Sampling") + // top k sampling + topK_sampling_kernel_kernelLauncher_v2(topk_workspace_, + topk_workspace_size_, + logits_buf_, + decoding_params.output_ids + step * m + ite * local_batch, + nullptr, + finished_buf_ + ite * local_batch, + curandstate_buf_, // used as random number + args_, + decoding_params.stream, + local_batch); + POP_RANGE + } + else if(args_.candidate_num_ == 0 && args_.probability_threshold_ > 0.0f) + { + PUSH_RANGE("After Transformer/Sampling") + // top p sampling + softmax_kernelLauncher(logits_buf_, + (DataType_*) nullptr, + args_.end_id_, + finished_buf_ + ite * local_batch, + local_batch, + args_.vocab_size_padded_, + args_.vocab_size_, + decoding_params.stream); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + topP_sampling_kernel_kernelLauncher_v2(topp_workspace_, + topp_workspace_size_, + logits_buf_, + topp_id_vals_buf_, + topp_offset_buf_, + begin_topp_offset_buf_, + finished_buf_ + ite * local_batch, + curandstate_buf_, + args_, + decoding_params.output_ids + step * m + ite * local_batch, + nullptr, + n, + decoding_params.stream, + local_batch); + + POP_RANGE + } + else if(args_.candidate_num_ > 0 && args_.probability_threshold_ > 0.0f) + { + PUSH_RANGE("After Transformer/Sampling") + topK_topP_sampling_kernel_kernelLauncher_v2(topk_topp_workspace_, + topk_topp_workspace_size_, + decoding_params.output_ids + step * m + ite * local_batch, + logits_buf_, + finished_buf_ + ite * local_batch, + curandstate_buf_, + args_, + decoding_params.stream, + local_batch); + POP_RANGE + } +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } + if(step < (size_t)max_input_len) + { + // Replace the sampled id by start ids + set_start_ids_kernelLauncher(decoding_params.output_ids, decoding_params.d_start_ids, max_input_len, + step, ite, request_batch_size, local_batch, args_.end_id_, decoding_params.stream); + } + + if(l_parallel_param_.rank == l_parallel_param_.world_size - 1 && l_parallel_param_.world_size > 1) + { + PUSH_RANGE("token/send") + nccl_send(decoding_params.output_ids + step * m + ite * local_batch, local_batch, 0, l_parallel_param_.nccl_comm, decoding_params.stream); + POP_RANGE + } + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + + if(l_parallel_param_.rank == l_parallel_param_.world_size - 1 && l_parallel_param_.world_size > 1 && step < max_len - 1) + { + nccl_broadcast(finished_buf_ + ite * local_batch, local_batch, l_parallel_param_.world_size - 1, l_parallel_param_, decoding_params.stream); + } +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } // end for ite for loop + } // end for decoding step for loop + if(l_parallel_param_.rank == 0 && l_parallel_param_.world_size > 1) + { + for(size_t ite = 0; ite < request_batch_size / local_batch; ite++) + { + nccl_recv(decoding_params.output_ids + (max_len - 1) * m + ite * local_batch, + local_batch, l_parallel_param_.world_size - 1, + l_parallel_param_.nccl_comm, decoding_params.stream); + } + } + } // end of forward + + virtual ~DecodingGpt() + { + delete[] K_cache_; + delete[] V_cache_; + delete decoder_; + allocator_.free(buf_); + delete [] h_finished_buf_; + } + + inline int get_num_layer() {return args_.decoder_layers_;} + + inline void set_local_batch_size(int local_batch) + { + l_parallel_param_.local_batch_size = local_batch; + decoder_->set_local_batch_size(local_batch); + } +}; + +} //namespace fastertransformer \ No newline at end of file diff --git a/fastertransformer/gpt2.h b/fastertransformer/gpt2.h deleted file mode 100644 index a7a6adeee..000000000 --- a/fastertransformer/gpt2.h +++ /dev/null @@ -1,512 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Decoder transformer - **/ - -#pragma once - -#include "fastertransformer/common.h" -#include "fastertransformer/allocator.h" -#include "fastertransformer/open_decoder.h" -#include "fastertransformer/cuda/cuda_kernels.h" -#include "fastertransformer/arguments.h" -#include -#include - -#define EMBEDDING_TRANSPOSE_OPT 0 // TODO This feature has bug. - -namespace fastertransformer -{ - -template -class DecodingGpt2 -{ -private: - typedef DecoderTransformerTraits Traits_; - typedef typename Traits_::DataType DataType_; - const IAllocator &allocator_; - struct Gpt2Arguments args_; - - const cudaDataType_t computeType_ = Traits_::computeType; - const cudaDataType_t AType_ = Traits_::AType; - const cudaDataType_t BType_ = Traits_::BType; - const cudaDataType_t CType_ = Traits_::CType; - int cublasAlgo_[1] = {20}; - - DataType_ *embedding_kernel_transposed_padded_; - - OpenDecoder *decoder_; - DataType_ **K_cache_; - DataType_ **V_cache_; - DataType_ *from_tensor_[2]; - DataType_ *decoder_buf_; - DataType_ *decoder_normed_result_buf_; - DataType_ *logits_buf_; - void *buf_; - - void *topk_workspace_ = nullptr; - size_t topk_workspace_size_ = 0; - void *topp_workspace_ = nullptr; - size_t topp_workspace_size_ = 0; - void *topk_topp_workspace_ = nullptr; - size_t topk_topp_workspace_size_ = 0; - int *topp_id_vals_buf_; - int *topp_offset_buf_; - -public: - DecodingGpt2(const IAllocator &allocator, const int batch_size, - const int seq_len, - const int head_num, const int size_per_head, - const int vocab_size, const int decoder_layers, - const int start_id, const int end_id, - const int *start_ids = nullptr, const int start_len = -1, - const int candidate_num = 1, - const float probability_threshold = 0.0, - const float temperature = 1.0) : allocator_(allocator) - { -#ifndef NDEBUG - PRINT_FUNC_NAME_(); -#endif - assert(temperature != 0.0); - assert(candidate_num > 0 || probability_threshold > 0.0); - - args_.batch_size_ = batch_size; - args_.seq_len_ = seq_len; - args_.head_num_ = head_num; - args_.size_per_head_ = size_per_head; - args_.hidden_units_ = head_num * size_per_head; - args_.decoder_layers_ = decoder_layers; - args_.vocab_size_ = vocab_size; - args_.start_id_ = start_id; - args_.end_id_ = end_id; - args_.candidate_num_ = candidate_num; - args_.probability_threshold_ = probability_threshold; - args_.temperature_ = temperature; - - // Convert the start_ids to 2D and transpose the - // start_ids from [batch_size, start_len] to [start_len, batch_size] - if (start_ids != nullptr && start_len > 0) - { - args_.start_len_ = start_len; - args_.start_ids_ = new int*[start_len]; - for(int i = 0; i < start_len; i++) - { - args_.start_ids_[i] = new int[batch_size]; - for(int j = 0; j < batch_size; j++) - { - args_.start_ids_[i][j] = start_ids[j * start_len + i]; - } - } - } - else - { - // fill the start_ids by start_id - args_.start_len_ = 1; - args_.start_ids_ = new int*[start_len]; - args_.start_ids_[0] = new int[batch_size]; - for(int j = 0; j < batch_size; j++) - { - args_.start_ids_[0][j] = args_.start_id_; - } - } - - K_cache_ = new DataType_ *[1]; - V_cache_ = new DataType_ *[1]; - - decoder_ = new OpenDecoder(batch_size * 1, 0 /* memory_max_seq_len */, - head_num, size_per_head, 0 /* memory_hidden_units */ ); - -#if EMBEDDING_TRANSPOSE_OPT == 1 - args_.vocab_size_padded_ = div_up(args_.vocab_size_, 8) * 8; -#else - args_.vocab_size_padded_ = args_.vocab_size_; -#endif - - int from_tensor_size = args_.batch_size_ * args_.hidden_units_; // type T - int decoder_workspace_size = decoder_->getWorkspaceSize(); // type T - int decoder_normed_result_buffer_size = args_.batch_size_ * args_.hidden_units_; // type T - int cache_size = args_.batch_size_ * args_.seq_len_ * args_.hidden_units_; // type T - int logits_buf_size = args_.batch_size_ * args_.vocab_size_padded_; // type T - - int topp_id_vals_buf_size = args_.batch_size_ * args_.vocab_size_; // type int - int topp_offset_buf_size = args_.batch_size_ + 1; - - const int MEM_C = 128; - /*from_tensor_size = div_up(from_tensor_size, MEM_C) * MEM_C; - decoder_workspace_size = div_up(decoder_workspace_size, MEM_C) * MEM_C; - decoder_normed_result_buffer_size = div_up(decoder_normed_result_buffer_size, MEM_C) * MEM_C; - cache_size = div_up(cache_size, MEM_C) * MEM_C; - - logits_buf_size = div_up(logits_buf_size, MEM_C) * MEM_C; - cum_log_buf_size = div_up(cum_log_buf_size, MEM_C) * MEM_C; - finished_buf_size = div_up(finished_buf_size, MEM_C) * MEM_C; - - topk_ids_buf_size = div_up(topk_ids_buf_size, MEM_C) * MEM_C; - topk_val_buf_size = div_up(topk_val_buf_size, MEM_C) * MEM_C; - args_.temp_storage_size_ = div_up(args_.temp_storage_size_, MEM_C) * MEM_C; */ - - int embedding_kernel_transposed_padded_size = args_.hidden_units_ * args_.vocab_size_padded_; - embedding_kernel_transposed_padded_size = div_up(embedding_kernel_transposed_padded_size, MEM_C) * MEM_C; - - // prevent memory misalinged address - logits_buf_size = (int)(ceil(logits_buf_size / 4.)) * 4; - - topp_id_vals_buf_size = (int)(ceil(topp_id_vals_buf_size / 4.)) * 4; - topp_offset_buf_size = (int)(ceil(topp_offset_buf_size / 4.)) * 4; - - topP_sampling_kernel_kernelLauncher(topp_workspace_, - topp_workspace_size_, - logits_buf_, - topp_id_vals_buf_, - topp_offset_buf_, - nullptr, - 0, - args_, - nullptr, - nullptr, - args_.vocab_size_, - 0); - topK_sampling_kernel_kernelLauncher(topk_workspace_, - topk_workspace_size_, - logits_buf_, - nullptr, - nullptr, - nullptr, - 0, - args_, - 0); - topK_topP_sampling_kernel_kernelLauncher(topk_topp_workspace_, - topk_topp_workspace_size_, - nullptr, - logits_buf_, - 0, - args_, - 0); - - int datatype_buf_size = from_tensor_size * 2 + decoder_workspace_size + - cache_size * 2 * args_.decoder_layers_ + decoder_normed_result_buffer_size; - - buf_ = reinterpret_cast(allocator_.malloc( -#if EMBEDDING_TRANSPOSE_OPT == 1 - sizeof(DataType_) * embedding_kernel_transposed_padded_size + -#endif - sizeof(DataType_) * (datatype_buf_size + logits_buf_size) + - sizeof(int) * (topp_id_vals_buf_size + topp_offset_buf_size) + - topp_workspace_size_ + topk_workspace_size_ + topk_topp_workspace_size_)); - -#if EMBEDDING_TRANSPOSE_OPT == 1 - embedding_kernel_transposed_padded_ = (DataType_ *)buf_; - from_tensor_[0] = (DataType_ *)(embedding_kernel_transposed_padded_ + embedding_kernel_transposed_padded_size); -#else - from_tensor_[0] = (DataType_ *)buf_; -#endif - from_tensor_[1] = (DataType_ *)(from_tensor_[0] + from_tensor_size); - - /* We use two-way buffer since we have to update KV buf at the end of each step. */ - K_cache_[0] = from_tensor_[1] + from_tensor_size + 0 * cache_size * args_.decoder_layers_; - V_cache_[0] = from_tensor_[1] + from_tensor_size + 1 * cache_size * args_.decoder_layers_; - - decoder_buf_ = V_cache_[0] + cache_size * args_.decoder_layers_; - decoder_normed_result_buf_ = (decoder_buf_ + decoder_workspace_size); - logits_buf_ = decoder_normed_result_buf_ + decoder_normed_result_buffer_size; - topp_id_vals_buf_ = (int *)(logits_buf_ + logits_buf_size); - topp_offset_buf_ = (int *)(topp_id_vals_buf_ + topp_id_vals_buf_size); - topp_workspace_ = (void *)(topp_offset_buf_ + topp_offset_buf_size); - topk_workspace_ = (void *)(topp_workspace_ + topp_workspace_size_); - topk_topp_workspace_ = (void *)(topk_workspace_ + topk_workspace_size_); - -#if EMBEDDING_TRANSPOSE_OPT == 1 - cudaMemset(embedding_kernel_transposed_padded_, 0, embedding_kernel_transposed_padded_size * sizeof(DataType_)); -#endif - - cudaDeviceSynchronize(); - - FILE *fd = fopen("decoding_gemm_config.in", "r"); - int err = 0; - if (fd == NULL) - printf("[WARNING] decoding_gemm_config.in is not found\n"); - else - { - err = fscanf(fd, "%d", &cublasAlgo_[0]); - fclose(fd); - } - if (err != 1) - { - printf("[WARNING] decoding loading GEMM algorithms error, using default GEMM algorithms!\n"); - if (Traits_::OpType == OperationType::FP32) - { - cublasAlgo_[0] = CUBLAS_GEMM_DEFAULT; - } - else - { - cublasAlgo_[0] = CUBLAS_GEMM_DEFAULT_TENSOR_OP; - } - } - else - { - // check that the gemm_config setting is runnable - if (Traits_::OpType == OperationType::FP32) - { - if (cublasAlgo_[0] > CUBLAS_GEMM_ALGO23 || cublasAlgo_[0] < CUBLAS_GEMM_DEFAULT) - { - // the algorithm is not for FP32 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", (int)cublasAlgo_[0]); - exit(-1); - } - } - else - { - if (cublasAlgo_[0] > CUBLAS_GEMM_ALGO15_TENSOR_OP || cublasAlgo_[0] < CUBLAS_GEMM_DEFAULT_TENSOR_OP) - { - // the algorithm is not for FP16 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", (int)cublasAlgo_[0]); - exit(-1); - } - } - } - } - - void forward(const DecoderInitParam *param, - DecodingInitParam decoding_params) - { - -#ifndef NDEBUG - PRINT_FUNC_NAME_(); -#endif - const int m = args_.batch_size_; - const int k = args_.hidden_units_; - const int n = args_.vocab_size_; - - /* - sequence_length initialize to 0 - finished: false - word_ids: start_id_ - cum_log_probs (for eacm beam, the first element is 0). e.g., [0 -inf -inf -inf][0 -inf -inf -inf] - */ - - /* Initialize the first output_ids */ - - check_cuda_error(cudaMemcpyAsync(decoding_params.output_ids, args_.start_ids_[0], m*sizeof(int), cudaMemcpyHostToDevice, decoding_params.stream)); - if (args_.probability_threshold_ != 0.0) - { - topp_initialization_kernelLauncher(nullptr, - nullptr, - nullptr, - topp_id_vals_buf_, - topp_offset_buf_, - args_.candidate_num_ > 0 ? args_.candidate_num_ : args_.vocab_size_, - args_, - decoding_params.stream); - } - -#if EMBEDDING_TRANSPOSE_OPT == 1 - transpose(embedding_kernel_transposed_padded_, decoding_params.embedding_kernel, 1, - args_.vocab_size_, args_.hidden_units_, 0, decoding_params.stream); -#endif -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - - int cache_size = m * args_.seq_len_ * args_.hidden_units_; // type T - - bool do_beamsearch = false; - for (int step = 1; step < args_.seq_len_; ++step) - { - int *word_ids_buf_ = decoding_params.output_ids + (step - 1) * m; - do_beamsearch = step >= args_.start_len_; - //we use two-way buffer - embedding_position_lookups_kernel_launcher(from_tensor_[0], - decoding_params.embedding_table, - decoding_params.position_encoding_table, - word_ids_buf_, - m, - args_.hidden_units_, - step, - decoding_params.stream); -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - int from_id, out_id; - for (int layer = 0; layer < args_.decoder_layers_; ++layer) - { - /* - For the first layer (layer-0), from_id is 0. We also stored the embedding lookup - result in from_tensor_[0] - */ - from_id = layer & 0x1; - out_id = 1 - from_id; - - /* - We use one decoder_ object to process multiple decoder layers. - - At the beginning of each decoder layer, we initialize the decoder object - with corresponding weights and decoder_buf_. - - The decoder_buf_ is reused. - */ - decoder_->initialize(param[layer], decoder_buf_); - -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - decoder_->forward(from_tensor_[from_id], - nullptr, // memory_tensor should be nullptr - K_cache_[0] + layer * cache_size, - V_cache_[0] + layer * cache_size, - nullptr, nullptr, // key_mem_cache_ and value_mem_cache_ should be nullptr - nullptr, // memory_sequence_length should be nullptr - from_tensor_[out_id], step, - false); - -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - } - decoder_->decoder_norm1(from_tensor_[out_id], decoding_params.layernorm.gamma, - decoding_params.layernorm.beta, decoder_normed_result_buf_, m, k); - -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - - DataType_ alpha = DataType_(1.0f); - DataType_ beta = DataType_(0.0f); - - cublasGemmAlgo_t cublasAlgo = static_cast(cublasAlgo_[0]); - check_cuda_error(cublasGemmEx(decoding_params.cublas_handle, -#if EMBEDDING_TRANSPOSE_OPT == 1 - CUBLAS_OP_N, CUBLAS_OP_N, - args_.vocab_size_padded_, m, k, - &alpha, - embedding_kernel_transposed_padded_, - AType_, args_.vocab_size_padded_, //n -#else - CUBLAS_OP_T, CUBLAS_OP_N, - n, m, k, - &alpha, - decoding_params.embedding_kernel, - AType_, k, -#endif - decoder_normed_result_buf_, BType_, k, - &beta, - logits_buf_, CType_, -#if EMBEDDING_TRANSPOSE_OPT == 1 - args_.vocab_size_padded_, -#else - n, -#endif - computeType_, - cublasAlgo)); - -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - - apply_temperature_penalty_kernelLauncher(logits_buf_, - (DataType_) args_.temperature_, - m, - n, - decoding_params.stream); - int random_num = rand(); - if (do_beamsearch) - { - // Sampling - if(args_.candidate_num_ > 0 && args_.probability_threshold_ == 0.0) - { - // top k sampling - topK_sampling_kernel_kernelLauncher(topk_workspace_, - topk_workspace_size_, - logits_buf_, - decoding_params.output_ids + step * m, - nullptr, - nullptr, - random_num, - args_, - decoding_params.stream); - } - else if(args_.candidate_num_ == 0 && args_.probability_threshold_ > 0.0f) - { - // top p sampling - softmax_kernelLauncher(logits_buf_, - (DataType_*) nullptr, - args_.end_id_, - nullptr, - m, - n, - decoding_params.stream); -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - topP_sampling_kernel_kernelLauncher(topp_workspace_, - topp_workspace_size_, - logits_buf_, - topp_id_vals_buf_, - topp_offset_buf_, - nullptr, - random_num, - args_, - decoding_params.output_ids + step * m, - nullptr, - n, - decoding_params.stream); - } - else if(args_.candidate_num_ > 0 && args_.probability_threshold_ > 0.0f) - { - topK_topP_sampling_kernel_kernelLauncher(topk_topp_workspace_, - topk_topp_workspace_size_, - decoding_params.output_ids + step * m, - logits_buf_, - random_num, - args_, - decoding_params.stream); - } -#ifndef NDEBUG - cudaDeviceSynchronize(); - check_cuda_error(cudaGetLastError()); -#endif - } - else - { - // else of do_beamsearch (set pre-determined word ids) - check_cuda_error(cudaMemcpyAsync(decoding_params.output_ids + step*m, args_.start_ids_[step], - m*sizeof(int), cudaMemcpyHostToDevice, decoding_params.stream)); - } - } // end for decoding step for llop - } // end of forward - - virtual ~DecodingGpt2() - { - delete[] K_cache_; - delete[] V_cache_; - delete decoder_; - allocator_.free(buf_); - for(int i = 0; i < args_.start_len_; i++) - { - delete [] args_.start_ids_[i]; - } - delete [] args_.start_ids_; - } -}; - -} //namespace fastertransformer diff --git a/fastertransformer/open_decoder.h b/fastertransformer/open_decoder.h index 8b0ce610c..dfdce555c 100644 --- a/fastertransformer/open_decoder.h +++ b/fastertransformer/open_decoder.h @@ -18,18 +18,31 @@ **/ #pragma once -#include "fastertransformer/allocator.h" -#include "fastertransformer/common.h" -#include "fastertransformer/common_structure.h" +#include "fastertransformer/cuda/cuda_kernels.h" +#include "fastertransformer/cuda/attention_kernels.cuh" +#include "fastertransformer/cuda/transformer_kernels.cuh" +#include "fastertransformer/cuda/open_decoder.cuh" +#include "fastertransformer/utils/nvtx_utils.h" +#include "fastertransformer/utils/allocator.h" +#include "fastertransformer/utils/common.h" +#include "fastertransformer/utils/functions.h" +#include "fastertransformer/utils/common_structure.h" #include #include #include +#include "fastertransformer/utils/nvtx_utils.h" +#include "fastertransformer/utils/nccl_utils.h" + +// use new attention implementation with [B, H, Dh/x, L, x] cache format for the keys + // and [B, H, L, Dh] for values + + #define USE_CACHE_BATCH_MAJOR_ATTENTION 1 namespace fastertransformer { template -class DecoderInitParam +class DecoderInitParam : public AbstractParam { public: /* weights for masked_multi_head_attention */ @@ -42,7 +55,11 @@ class DecoderInitParam LayerNormWeight ffn_layernorm; FFNWeight ffn; cublasHandle_t cublas_handle; + cublasLtHandle_t cublaslt_handle; cudaStream_t stream; + + int request_batch_size = -1; + int request_max_mem_seq_len = -1; }; template @@ -65,15 +82,16 @@ class OpenDecoder typedef DecoderTransformerTraits Traits_; typedef typename Traits_::DataType DataType_; DecoderInitParam param_; + TensorParallelParam t_parallel_param_; + LayerParallelParam l_parallel_param_; const cudaDataType_t computeType_ = Traits_::computeType; const cudaDataType_t AType_ = Traits_::AType; const cudaDataType_t BType_ = Traits_::BType; const cudaDataType_t CType_ = Traits_::CType; - int cublasAlgo_[5]; + std::map cublasAlgoMap_; - int batch_size_; - int max_seq_len_; + int max_batch_size_ = -1; int head_num_; int size_per_head_; int hidden_units_; @@ -88,115 +106,142 @@ class OpenDecoder DataType_ **qkv_kernel_; DataType_ **qkv_input_; DataType_ **qkv_buf_; + void* cublas_workspace_ = nullptr; - bool is_fuse_QKV; - + bool is_fuse_QKV_in_batched_gemm_; + const bool is_fuse_QKV_in_normal_gemm_; public: - OpenDecoder(int batch_size, int seq_len, - int head_num, int size_per_head, - int memory_hidden_units) : batch_size_(batch_size), - max_seq_len_(seq_len), head_num_(head_num), - size_per_head_(size_per_head), - memory_hidden_units_(memory_hidden_units) + + void judgeFusedQKV() + { + is_fuse_QKV_in_batched_gemm_ = false; + int m, n, k, dataType; + if (std::is_same::value) + dataType = HALF_DATATYPE; + else + dataType = FLOAT_DATATYPE; + + m = l_parallel_param_.local_batch_size; + n = t_parallel_param_.local_hidden_units_; + k = hidden_units_; + char mark[256], mark2[256]; + sprintf(mark, "1_%d_%d_%d_%d", n, m, k, dataType); + sprintf(mark2, "3_%d_%d_%d_%d", n, m, k, dataType); + if ( + cublasAlgoMap_.find(mark) != cublasAlgoMap_.end() && + cublasAlgoMap_.find(mark2) != cublasAlgoMap_.end() && + 3*cublasAlgoMap_[mark].exec_time > cublasAlgoMap_[mark2].exec_time + ) + { + is_fuse_QKV_in_batched_gemm_ = true; + } + } + + + OpenDecoder(int head_num, int size_per_head, + int memory_hidden_units, + bool is_fuse_QKV_in_normal_gemm = false) : + head_num_(head_num), + size_per_head_(size_per_head), + memory_hidden_units_(memory_hidden_units), + is_fuse_QKV_in_normal_gemm_(is_fuse_QKV_in_normal_gemm) { #ifndef NDEBUG PRINT_FUNC_NAME_(); #endif hidden_units_ = head_num_ * size_per_head_; + t_parallel_param_.local_head_num_ = head_num_; + t_parallel_param_.local_hidden_units_ = hidden_units_; - FILE *fd = fopen("decoding_gemm_config.in", "r"); - int err = 0; - if (fd == NULL) + int isConfigExist = access("decoding_gemm_config.in", 0); + if (isConfigExist == -1) { printf("[WARNING] decoding_gemm_config.in is not found\n"); } else { - // First number is a setting for gemm in Decoding, which computes the embedding output. - // so we need to skip the number - float split_time, fused_time; - err = fscanf(fd, "%*d %*f %d %f %d %*f %d %*f %d %*f %d %f", &cublasAlgo_[0], &split_time, &cublasAlgo_[1], - &cublasAlgo_[2], &cublasAlgo_[3], &cublasAlgo_[4], &fused_time); - is_fuse_QKV = fused_time < split_time * 3 ? true : false; - fclose(fd); - } - if (err != 7) - { - // printf("[WARNING] decoder loading GEMM algorithms error, using default GEMM algorithms!\n"); - int default_algo; - if (Traits_::OpType == OperationType::FP32) - { - default_algo = CUBLAS_GEMM_DEFAULT; - } - else - { - default_algo = CUBLAS_GEMM_DEFAULT_TENSOR_OP; - } - for (int i = 0; i < 5; i++) - cublasAlgo_[i] = default_algo; - is_fuse_QKV = false; - } - else - { + readAlgoFromConfig(cublasAlgoMap_); // check that the gemm_config setting is runnable - if (Traits_::OpType == OperationType::FP32) + for (auto iter = cublasAlgoMap_.begin() ; iter != cublasAlgoMap_.end() ; iter++) { - for (int i = 0; i < 5; i++) + int algoId = iter->second.algoId; + int stages = iter->second.stages; + //only check for cublas + if (stages != -1) + continue; + if (Traits_::OpType == OperationType::FP32) { - if (cublasAlgo_[i] > CUBLAS_GEMM_ALGO23 || cublasAlgo_[i] < CUBLAS_GEMM_DEFAULT) + if (algoId > CUBLAS_GEMM_ALGO23 || algoId < CUBLAS_GEMM_DEFAULT) { // the algorithm is not for FP32 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", (int)cublasAlgo_[i]); + printf("[ERROR] cuBLAS Algorithm %d is not used in FP32. \n", algoId); exit(-1); } } - } - else - { - for (int i = 0; i < 5; i++) + else { - if (cublasAlgo_[i] > CUBLAS_GEMM_ALGO15_TENSOR_OP || cublasAlgo_[i] < CUBLAS_GEMM_DEFAULT_TENSOR_OP) + if (algoId > CUBLAS_GEMM_ALGO15_TENSOR_OP || algoId < CUBLAS_GEMM_DEFAULT_TENSOR_OP) { // the algorithm is not for FP16 - printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", (int)cublasAlgo_[i]); + printf("[ERROR] cuBLAS Algorithm %d is not used in FP16. \n", algoId); exit(-1); } } } } + judgeFusedQKV(); + } + + inline void set_max_batch_size(int batch_size) + { + max_batch_size_ = batch_size; } int getWorkspaceSize() { - int buf_size = batch_size_ * hidden_units_; - return 13 * buf_size + sizeof(DataType_ *) * 9; + assert(max_batch_size_ != -1); + return 13 * max_batch_size_ * hidden_units_ + sizeof(DataType_ *) * 9; + } + + void set_tensor_parallel_param(const TensorParallelParam param) + { + t_parallel_param_ = param; } - void initialize(DecoderInitParam param, DataType_ *buf) + void set_layer_parallel_param(const LayerParallelParam param) + { + l_parallel_param_ = param; + } + + void initialize(DecoderInitParam param, DataType_ *buf, void *cublas_workapsce, bool set_local_batch = true) { #ifndef NDEBUG - // PRINT_FUNC_NAME_(); + PRINT_FUNC_NAME_(); #endif param_ = param; - const int buf_size = batch_size_ * hidden_units_; + if(l_parallel_param_.local_batch_size == -1 || set_local_batch == true) l_parallel_param_.local_batch_size = param_.request_batch_size; + const int buf_size = max_batch_size_ * hidden_units_; + //cublas_workspace_ should be the start pointer of cudaMalloc() + //to ensure 16B alignemnet + cublas_workspace_ = cublas_workapsce; norm_from_tensor_buf_ = buf; query_buf_ = buf + buf_size; //store the query values (from_tensor * Q) in both masked and multi-head attention - key_buf_ = buf + 2 * buf_size; - value_buf_ = buf + 3 * buf_size; - context_buf_ = buf + 4 * buf_size; //store the context result (softmax(qk)v) in both masked and multi-head attention + key_buf_ = query_buf_ + buf_size; + value_buf_ = key_buf_ + buf_size; + context_buf_ = value_buf_ + buf_size; //store the context result (softmax(qk)v) in both masked and multi-head attention - masked_output_buf_ = buf + 5 * buf_size; //masked_attention_output - norm_masked_output_buf_ = buf + 6 * buf_size; //norm(masked_attention_output) + masked_output_buf_ = context_buf_ + buf_size; //masked_attention_output + norm_masked_output_buf_ = masked_output_buf_ + buf_size; //norm(masked_attention_output) - cross_output_buf_ = buf + 7 * buf_size; //mutli-head attention_output - norm_cross_output_buf_ = buf + 8 * buf_size; //norm(multi-head attention_output) - ffn_inner_buf_ = buf + 9 * buf_size; //4 buf size to store inner product + cross_output_buf_ = norm_masked_output_buf_ + buf_size; //mutli-head attention_output + norm_cross_output_buf_ = cross_output_buf_ + buf_size; //norm(multi-head attention_output) + ffn_inner_buf_ = norm_cross_output_buf_ + buf_size; //4 buf size to store inner product qkv_kernel_ = (DataType_ **)(ffn_inner_buf_ + 4 * buf_size); qkv_input_ = qkv_kernel_ + 3; qkv_buf_ = qkv_input_ + 3; - if (is_fuse_QKV == true) + if (is_fuse_QKV_in_normal_gemm_ == false && is_fuse_QKV_in_batched_gemm_ == true) { const DataType_ *hA[]{param_.self_attention.query_weight.kernel, param_.self_attention.key_weight.kernel, @@ -211,30 +256,32 @@ class OpenDecoder DataType_ *key_cache_, DataType_ *value_cache_, DataType_ *key_mem_cache_, DataType_ *value_mem_cache_, const int *memory_sequence_length, DataType_ *decoder_output, const int step, - const bool is_cross_attention) + const int decoder_max_seq_len, const bool is_cross_attention, const bool* finished = nullptr) { #ifndef NDEBUG - // PRINT_FUNC_NAME_(); + PRINT_FUNC_NAME_(); #endif - const int m = batch_size_; - const int n = hidden_units_; - + const int m = l_parallel_param_.local_batch_size; try { /* masked multi-head attention */ /* layernorm(from_tensor) -> norm_from_tensor_buf_ */ - decoder_norm1(from_tensor, - param_.self_layernorm.gamma, - param_.self_layernorm.beta, - norm_from_tensor_buf_, - m, - n); + + layer_norm(from_tensor, + param_.self_layernorm.gamma, + param_.self_layernorm.beta, + norm_from_tensor_buf_, + m, + hidden_units_, + param_.stream); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif - masked_multi_head_attention(norm_from_tensor_buf_, key_cache_, value_cache_, masked_output_buf_, step); + PUSH_RANGE("Transformer/slf_attn") + masked_multi_head_attention(norm_from_tensor_buf_, key_cache_, value_cache_, masked_output_buf_, finished, step, decoder_max_seq_len); + POP_RANGE #ifndef NDEBUG cudaDeviceSynchronize(); @@ -248,12 +295,12 @@ class OpenDecoder masked_output_buf_ + from_tensor -> masked_output_buf_ norm(masked_output_buf_) -> norm_masked_output_buf_ */ - decoder_norm2(from_tensor, - param_.cross_layernorm.gamma, - param_.cross_layernorm.beta, - param_.self_attention.attention_output_weight.bias, - masked_output_buf_, - norm_masked_output_buf_, m, n); + add_bias_input_layernorm_2_kernelLauncher(from_tensor, + param_.cross_layernorm.gamma, + param_.cross_layernorm.beta, + param_.self_attention.attention_output_weight.bias, + masked_output_buf_, + norm_masked_output_buf_, m, hidden_units_, param_.stream); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); @@ -262,7 +309,7 @@ class OpenDecoder /* cross attention with memory */ cross_multi_head_attention(norm_masked_output_buf_, memory_tensor, key_mem_cache_, value_mem_cache_, cross_output_buf_, - memory_sequence_length, max_seq_len_, step); + memory_sequence_length, finished, param_.request_max_mem_seq_len, step); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); @@ -271,42 +318,45 @@ class OpenDecoder cross_output_buf_ + bias + masked_output_buf_ -> cross_output_buf_ norm(cross_otuput_buf) -> normed_last_context (input for ffn) */ - decoder_norm2(masked_output_buf_, - param_.ffn_layernorm.gamma, - param_.ffn_layernorm.beta, - param_.cross_attention.attention_output_weight.bias, - cross_output_buf_, - norm_cross_output_buf_, m, n); + add_bias_input_layernorm_2_kernelLauncher(masked_output_buf_, + param_.ffn_layernorm.gamma, + param_.ffn_layernorm.beta, + param_.cross_attention.attention_output_weight.bias, + cross_output_buf_, + norm_cross_output_buf_, m, hidden_units_, param_.stream); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif - ffn(norm_cross_output_buf_, ffn_inner_buf_, decoder_output, m, 4 * n, n, ActivationType::RELU); + ffn(norm_cross_output_buf_, ffn_inner_buf_, decoder_output, m, 4 * t_parallel_param_.local_hidden_units_, hidden_units_, ActivationType::RELU); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif - add_bias_input(decoder_output, cross_output_buf_, m, n); + add_bias_input_kernelLauncher(decoder_output, param_.ffn.output_weight.bias, cross_output_buf_, m, hidden_units_, param_.stream); } else { - decoder_norm2(from_tensor, - param_.ffn_layernorm.gamma, - param_.ffn_layernorm.beta, - param_.self_attention.attention_output_weight.bias, - masked_output_buf_, - norm_masked_output_buf_, m, n); + add_bias_input_layernorm_2_kernelLauncher(from_tensor, + param_.ffn_layernorm.gamma, + param_.ffn_layernorm.beta, + param_.self_attention.attention_output_weight.bias, + masked_output_buf_, + norm_masked_output_buf_, m, hidden_units_, param_.stream); #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif // For GPT-2 decoder - ffn(norm_masked_output_buf_, ffn_inner_buf_, decoder_output, m, 4 * n, n, ActivationType::GELU); + PUSH_RANGE("Transformer/MLP") + ffn(norm_masked_output_buf_, ffn_inner_buf_, decoder_output, m, 4 * t_parallel_param_.local_hidden_units_, hidden_units_, ActivationType::GELU); + POP_RANGE + #ifndef NDEBUG cudaDeviceSynchronize(); check_cuda_error(cudaGetLastError()); #endif - add_bias_input(decoder_output, masked_output_buf_, m, n); + add_bias_input_kernelLauncher(decoder_output, param_.ffn.output_weight.bias, masked_output_buf_, m, hidden_units_, param_.stream); } #ifndef NDEBUG cudaDeviceSynchronize(); @@ -319,26 +369,575 @@ class OpenDecoder throw error; } } + + size_t getContextWorkspaceSize(const int seq_len, const int local_batch_size) + { + const size_t m = local_batch_size * seq_len; + const size_t qk_buf_size = (size_t)(ceil(local_batch_size * t_parallel_param_.local_head_num_ * seq_len * seq_len / 4.)) * 4; + const size_t attn_work_space_size = 3 * m * hidden_units_ /* Q, K, V */ + + 3 * m * t_parallel_param_.local_hidden_units_ /* q_buf, k_buf, v_buf */ + + qk_buf_size + + 2 * m * t_parallel_param_.local_hidden_units_ /* trans_attn, attn */; + return (m * hidden_units_ * 3 + + attn_work_space_size + + m * t_parallel_param_.local_hidden_units_ * 4 /* ffn buffer */ ) * sizeof(DataType_); + } + + // use to compute the context of gpt model + void forward_context(DataType_* workspace, + DataType_ *decoder_output, + DataType_ *key_cache_, + DataType_ *value_cache_, + const DataType_ *from_tensor, + const DataType_ *d_attn_mask, + const int local_batch_size, + const int seq_len, + const int ite, + const int max_seq_len, + const bool is_final) + { +#ifndef NDEBUG + PRINT_FUNC_NAME_(); +#endif + try + { + const int m = local_batch_size * seq_len; + const int qk_buf_size = (int)(ceil(local_batch_size * t_parallel_param_.local_head_num_ * seq_len * seq_len / 4.)) * 4; + const int attn_work_space_size = 3 * m * hidden_units_ /* Q, K, V */ + + 3 * m * t_parallel_param_.local_hidden_units_ /* q_buf, k_buf, v_buf */ + + qk_buf_size + + 2 * m * t_parallel_param_.local_hidden_units_ /* trans_attn, attn */; + + // set workspace + DataType_* norm_from_tensor_buf = (DataType_*)workspace; + DataType_* attention_workspace = norm_from_tensor_buf + m * hidden_units_; + DataType_* masked_output_buf = attention_workspace + attn_work_space_size; + DataType_* norm_masked_output_buf = masked_output_buf + m * hidden_units_; + DataType_* ffn_inner_buf = norm_masked_output_buf + m * hidden_units_; + + layer_norm(from_tensor, + param_.self_layernorm.gamma, + param_.self_layernorm.beta, + norm_from_tensor_buf, + m, + hidden_units_, + param_.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + PUSH_RANGE("Transformer/slf_attn") + unfused_masked_multi_head_attention(attention_workspace, + norm_from_tensor_buf, + key_cache_, + value_cache_, + masked_output_buf, + d_attn_mask, + local_batch_size, + seq_len, + ite, + max_seq_len, + is_final); + if(is_final) return; + POP_RANGE +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + add_bias_input_layernorm_2_kernelLauncher(from_tensor, + param_.ffn_layernorm.gamma, + param_.ffn_layernorm.beta, + param_.self_attention.attention_output_weight.bias, + masked_output_buf, + norm_masked_output_buf, m, hidden_units_, param_.stream); +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + // For GPT decoder + PUSH_RANGE("Transformer/MLP"); + ffn(norm_masked_output_buf, ffn_inner_buf, decoder_output, m, 4 * t_parallel_param_.local_hidden_units_, hidden_units_, ActivationType::GELU); + POP_RANGE +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + add_bias_input_kernelLauncher(decoder_output, param_.ffn.output_weight.bias, masked_output_buf, m, hidden_units_, param_.stream); + +#ifndef NDEBUG + cudaDeviceSynchronize(); + check_cuda_error(cudaGetLastError()); +#endif + } + catch (std::runtime_error &error) + { + throw error; + } + } + void masked_multi_head_attention(const DataType_ *from_tensor, DataType_ *key_cache_, - DataType_ *value_cache_, DataType_ *decoder_output, const int step); + DataType_ *value_cache_, DataType_ *decoder_output, + const bool* finished, const int step, const int max_seq_len) + { + int m = l_parallel_param_.local_batch_size; + int n = t_parallel_param_.local_hidden_units_; + int k = hidden_units_; + + // chose which attention to use + int decoder_max_seq_len = (getCacheFormat() != 0)? max_seq_len : -1; + + DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; + if(is_fuse_QKV_in_normal_gemm_ == true) + { + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + 3*n, m, k, + &alpha, + param_.self_attention.query_weight.kernel , AType_, 3*n, + from_tensor, BType_, k, + &beta, + query_buf_, CType_, 3*n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + fusedQKV_masked_attention_dispatch( + query_buf_, + param_.self_attention.query_weight.bias, + key_cache_, + value_cache_, + context_buf_, finished, param_.request_batch_size, l_parallel_param_.local_batch_size, + t_parallel_param_.local_head_num_, size_per_head_, step, decoder_max_seq_len, param_.stream); + } + else + { + if(is_fuse_QKV_in_batched_gemm_ == true) + { + cublasGemmAlgo_t cublasAlgo = static_cast(getAlgoIdFromMap(cublasAlgoMap_, 3, n, m, k, std::is_same::value ? FLOAT_DATATYPE : HALF_DATATYPE)); + check_cuda_error(cublasGemmBatchedEx(param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + (const void* const*) qkv_kernel_, AType_, n, + (const void* const*) qkv_input_, BType_, k, + &beta, + (void* const*)qkv_buf_, CType_, n, + 3, + computeType_, + cublasAlgo)); + } + else + { + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.query_weight.kernel , AType_, n, + from_tensor, BType_, k, + &beta, + query_buf_, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.key_weight.kernel, AType_, n, + from_tensor, BType_, k, + &beta, + key_buf_, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.value_weight.kernel, AType_, n, + from_tensor, BType_, k, + &beta, + value_buf_, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + } + masked_attention_dispatch( + key_buf_, value_buf_, + query_buf_, param_.self_attention.query_weight.bias, + key_cache_, param_.self_attention.key_weight.bias, + value_cache_, param_.self_attention.value_weight.bias, + context_buf_, finished, param_.request_batch_size, l_parallel_param_.local_batch_size, + t_parallel_param_.local_head_num_, size_per_head_, step, decoder_max_seq_len, param_.stream); + } + + k = t_parallel_param_.local_hidden_units_; + n = hidden_units_; + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.attention_output_weight.kernel, AType_, n, + context_buf_, BType_, k, + &beta, + decoder_output, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + PUSH_RANGE("Transformer/slf_attn/all2all_reduce") + all2all_reduce_sum(decoder_output, decoder_output, m*n, + t_parallel_param_, param_.stream); + POP_RANGE + } + + /* attention with source sentence */ void cross_multi_head_attention(const DataType_ *from_tensor, const DataType_ *memory_tensor, DataType_ *key_mem_cache_, DataType_ *value_mem_cache_, - DataType_ *decoder_output, const int *memory_sequence_length, - const int max_seq_len, const int step); + DataType_ *decoder_output, const int *memory_sequence_length, const bool* finished, + const int max_seq_len, const int step) + { + int m = param_.request_batch_size; + int n = t_parallel_param_.local_hidden_units_; + int k = hidden_units_; + + DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; + + //reuse the query_buf + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.cross_attention.query_weight.kernel, AType_, n, + from_tensor, BType_, k, + &beta, + query_buf_, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + if(step == 1) + { + m *= max_seq_len; + k = memory_hidden_units_; + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.cross_attention.key_weight.kernel, AType_, n, + memory_tensor, BType_, k, + &beta, + key_mem_cache_, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.cross_attention.value_weight.kernel, AType_, n, + memory_tensor, BType_, k, + &beta, + value_mem_cache_, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + k = t_parallel_param_.local_hidden_units_; + } + + cross_attention_dispatch( + query_buf_, param_.cross_attention.query_weight.bias, + key_mem_cache_, param_.cross_attention.key_weight.bias, + value_mem_cache_, param_.cross_attention.value_weight.bias, + memory_sequence_length, context_buf_, finished, param_.request_batch_size, + head_num_, size_per_head_, step, max_seq_len, param_.stream); + + m = param_.request_batch_size; + n = hidden_units_; + k = t_parallel_param_.local_hidden_units_; + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.cross_attention.attention_output_weight.kernel, AType_, n, + context_buf_, BType_, k, + &beta, + decoder_output, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + } + void ffn(const DataType_ *input, DataType_ *ffn_inner, DataType_ *output, - const int m, const int inner_size, const int n, ActivationType activation_type); + const int m, const int inner_size, const int n, ActivationType activation_type) + { + int m1 = m, k1 = n, n1 = inner_size; + DataType_ alpha = (DataType_)1.0f; + DataType_ beta = (DataType_)0.0f; + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n1, m1, k1, + &alpha, + param_.ffn.intermediate_weight.kernel, AType_, n1, + input, BType_, k1, + &beta, + ffn_inner, CType_, n1, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + add_bias_act_kernelLauncher(ffn_inner, param_.ffn.intermediate_weight.bias, m1, inner_size, activation_type, param_.stream); + + int m2 = m, n2 = n, k2 = inner_size; + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n2, m2, k2, + &alpha, + param_.ffn.output_weight.kernel, AType_, n2, + ffn_inner, BType_, k2, + &beta, + output, CType_, n2, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + PUSH_RANGE("Transformer/MLP/all2all_reduce") + all2all_reduce_sum(output, output, m*n, + t_parallel_param_, param_.stream); + POP_RANGE + } + + void unfused_masked_multi_head_attention(DataType_ *workspace, + const DataType_* from_tensor, + DataType_* key_cache_, + DataType_* value_cache_, + DataType_* decoder_output, + const DataType_* attr_mask, + const int local_batch_size, + const int seq_len, + const int ite, + const int max_seq_len, + const bool is_final) + { + const DataType_ scalar = 1 / sqrtf(size_per_head_ * 1.0f); + const int m = local_batch_size * seq_len; + + const int qk_buf_size = (int)(ceil(local_batch_size * t_parallel_param_.local_head_num_ * seq_len * seq_len / 4.)) * 4; + + DataType_* Q = workspace; + DataType_* K = Q + m * hidden_units_; + DataType_* V = K + m * hidden_units_; + DataType_* q_buf = V + m * hidden_units_; + DataType_* k_buf = q_buf + m * t_parallel_param_.local_hidden_units_; + DataType_* v_buf = k_buf + m * t_parallel_param_.local_hidden_units_; + DataType_* qk_buf = v_buf + m * t_parallel_param_.local_hidden_units_; + DataType_* attn_trans_out = qk_buf + qk_buf_size; + DataType_* attn_out = attn_trans_out + m * t_parallel_param_.local_hidden_units_; + + DataType_ alpha = (DataType_)1.0f, beta = (DataType_)0.0f; + + if(is_fuse_QKV_in_normal_gemm_ == true) + { + const int n = t_parallel_param_.local_hidden_units_; + const int k = hidden_units_; + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + 3*n, m, k, + &alpha, + param_.self_attention.query_weight.kernel , AType_, 3*n, + from_tensor, BType_, k, + &beta, + Q, CType_, 3*n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + add_fusedQKV_bias_transpose_kernelLauncher( + q_buf, k_buf, v_buf, + Q, param_.self_attention.query_weight.bias, + local_batch_size, seq_len, + t_parallel_param_.local_head_num_, + size_per_head_, param_.stream); + } + else + { + const int n = t_parallel_param_.local_hidden_units_; + const int k = hidden_units_; + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.query_weight.kernel , AType_, n, + from_tensor, BType_, k, + &beta, + Q, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.key_weight.kernel , AType_, n, + from_tensor, BType_, k, + &beta, + K, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.value_weight.kernel , AType_, n, + from_tensor, BType_, k, + &beta, + V, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + add_QKV_bias_transpose_kernelLauncher(q_buf, k_buf, v_buf, + Q, param_.self_attention.query_weight.bias, + K, param_.self_attention.key_weight.bias, + V, param_.self_attention.value_weight.bias, + local_batch_size, seq_len, + t_parallel_param_.local_head_num_, + size_per_head_, param_.stream); + } + + // !!! need to implement cget_cache_config + if(max_seq_len == -1 || USE_CACHE_BATCH_MAJOR_ATTENTION == 0 ) + { + transpose_4d_kernelLauncher(key_cache_, k_buf, + local_batch_size, + seq_len, + size_per_head_, + t_parallel_param_.local_hidden_units_, + t_parallel_param_.local_head_num_, + param_.request_batch_size, + ite, + param_.stream); + + transpose_4d_kernelLauncher(value_cache_, v_buf, + local_batch_size, + seq_len, + size_per_head_, + t_parallel_param_.local_hidden_units_, + t_parallel_param_.local_head_num_, + param_.request_batch_size, + ite, + param_.stream); + } + else if (USE_CACHE_BATCH_MAJOR_ATTENTION == 1) + { + // Use batch major + // put k/v_buf from shape [B, H, L, Dh] + // to cache [B, H, Dh/x, L, x] and [B, H, L, Dh/x, x] + transpose_4d_batch_major_kernelLauncher(key_cache_, value_cache_, + k_buf, v_buf, + local_batch_size, + seq_len, + max_seq_len, + size_per_head_, + t_parallel_param_.local_head_num_, + param_.stream); + } + else + { + printf("[ERROR] Can not decide on the cache config \n"); + exit(-1); + } - void decoder_norm1(const DataType_ *from_tensor, const DataType_ *gamma, - const DataType_ *beta, DataType_ *norm_from_tensor_buf_, const int m, const int n); + if(is_final) return; + + cublasGemmAlgo_t cublasAlgo = static_cast(getAlgoIdFromMap(cublasAlgoMap_, local_batch_size * t_parallel_param_.local_head_num_, seq_len, seq_len, size_per_head_, std::is_same::value ? FLOAT_DATATYPE : HALF_DATATYPE)); + + check_cuda_error(cublasGemmStridedBatchedEx(param_.cublas_handle, + CUBLAS_OP_T, CUBLAS_OP_N, + seq_len, seq_len, size_per_head_, + &alpha, + k_buf, AType_, size_per_head_, seq_len * size_per_head_, + q_buf, BType_, size_per_head_, seq_len * size_per_head_, + &beta, + qk_buf, CType_, seq_len, seq_len * seq_len, + local_batch_size * t_parallel_param_.local_head_num_, + computeType_, + cublasAlgo)); + + attn_softmax_kernelLauncher(qk_buf, + attr_mask, + local_batch_size, + seq_len, + t_parallel_param_.local_head_num_, + scalar, + param_.stream); + + cublasAlgo = static_cast(getAlgoIdFromMap(cublasAlgoMap_, local_batch_size * t_parallel_param_.local_head_num_, size_per_head_, seq_len, seq_len, std::is_same::value ? FLOAT_DATATYPE : HALF_DATATYPE)); + + check_cuda_error(cublasGemmStridedBatchedEx(param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + size_per_head_, seq_len, seq_len, + &alpha, + v_buf, AType_, size_per_head_, seq_len * size_per_head_, + qk_buf, BType_, seq_len, seq_len * seq_len, + &beta, + attn_trans_out, CType_, size_per_head_, seq_len * size_per_head_, + local_batch_size * t_parallel_param_.local_head_num_, + computeType_, + cublasAlgo)); + + transpose_kernelLauncher(attn_out, + attn_trans_out, + local_batch_size, + seq_len, + t_parallel_param_.local_head_num_, + size_per_head_, + param_.stream); - void decoder_norm2(const DataType_ *from_tensor, const DataType_ *gamma, - const DataType_ *beta, const DataType_ *bias, - DataType_ *output, DataType_ *norm_output_buf_, - const int m, const int n); + { + const int k = t_parallel_param_.local_hidden_units_; + const int n = hidden_units_; + + cublasMM_cublasLtMM_wrapper_decoder(param_.cublaslt_handle, + param_.cublas_handle, + CUBLAS_OP_N, CUBLAS_OP_N, + n, m, k, + &alpha, + param_.self_attention.attention_output_weight.kernel, AType_, n, + attn_out, BType_, k, + &beta, + decoder_output, CType_, n, + param_.stream, cublasAlgoMap_, + cublas_workspace_); + + PUSH_RANGE("Transformer/slf_attn/all2all_reduce") + all2all_reduce_sum(decoder_output, decoder_output, m*n, + t_parallel_param_, param_.stream); + POP_RANGE + } + } - void add_bias_input(DataType_ *output, const DataType_ *input, const int m, const int n); + int getCacheFormat() + { + int x = (Traits_::OpType == OperationType::FP32)? 4 : 8; + return (USE_CACHE_BATCH_MAJOR_ATTENTION == 1 && size_per_head_ % x == 0)? x : 0; + } ~OpenDecoder() { @@ -355,5 +954,11 @@ class OpenDecoder norm_cross_output_buf_ = nullptr; ffn_inner_buf_ = nullptr; } + + inline void set_local_batch_size(int local_batch) + { + l_parallel_param_.local_batch_size = local_batch; + } }; + } //namespace fastertransformer diff --git a/fastertransformer/standard_encoder.h b/fastertransformer/standard_encoder.h new file mode 100644 index 000000000..98aa1430e --- /dev/null +++ b/fastertransformer/standard_encoder.h @@ -0,0 +1,787 @@ +/* + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Standard Encoder transformer + **/ + +#pragma once + +#include +#include "fastertransformer/utils/allocator.h" +#include "fastertransformer/utils/common_structure.h" +#include "fastertransformer/cuda/cuda_kernels.h" +#include "fastertransformer/cuda/cuda_int8_kernels.h" +#include "fastertransformer/cuda/open_attention.h" +#include "fastertransformer/gemm_test/encoder_gemm_func.h" +#include "fastertransformer/gemm_test/encoder_igemm_func.h" +#include "fastertransformer/utils/functions.h" + +namespace fastertransformer +{ + +template +class EncoderInitParam +{ +public: + const T *from_tensor = nullptr; + const T *to_tensor = nullptr; + + LayerNormWeight input_layernorm; + AttentionWeight self_attention; + const T *attr_mask = nullptr; + LayerNormWeight self_layernorm; + + FFNWeight ffn; + + T *transformer_out; + cublasHandle_t cublas_handle = nullptr; + cublasLtHandle_t cublaslt_handle = nullptr; + cudaStream_t stream = 0; + + const int* sequence_id_offset = nullptr; + int valid_word_num = -1; + int layer_idx = 0; + int layer_num = 12; + + //Part 1: + // First 80 are for activation amaxs. For each activation amax, there are 4 values: amax, amax/127.0f, amax/127.0f/127.0f, 127.0f/amax -- input_amax 0-3 , Q_aftergemm_amax 4-7, Qbias_amax 8-11, K_aftergemm_amax 12-15, Kbias_amax 16-19, V_aftergemm_amax 20-23, Vbias_amax 24-27, bmm1_amax 28-31, Softmax_amax 32-35, bmm2_amax 36-39, Proj_aftergemm_scale 40-43, ProjBiasNorm_amax 44-47, FC1_aftergemm_amax 48-51, F1Bias_amax 52-55, FC2_aftergemm_amax 56-59, F2BiasNorm_amax 60-63, reserve 64-79 + //Part 2: + // Kernel amaxs, for each kernel amax list, there are output_channel values : query_weight_amax_list, key_weight_amax_list, value_weight_amax_list, proj_weight_amax_list, FC1_weight_amax_list, FC2_weight_amax_list + //Part 3: + // Int8 gemm deQFactor list (8 values): Q_deQ_scale, K_deQ_scale, V_deQ_scale, bmm1_deQ_scale, bmm2_deQ_scale, FC0_deQ_scale, FC1_deQ_scale, FC2_deQ_scale + //Part 4: + // Amax used in trt fused mha kernel (3 values) : QKVbias_amax, Softmax_amax, bmm2_amax + const float *amaxList = nullptr; + const int* trt_seqlen_offset = nullptr; + int trt_seqlen_size = -1; +}; + +template class MultiHeadAttention_> +class OpenEncoderTraits; + +template

    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