• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • ??? ?? ?? ? NVIDIA TAO Toolkit? ??? INT8 ??? ??

    Reading Time: 8 minutes

    ? ?? ????(DNN) ??? ??? ???? ???? ???? ?? ???????? ????? ?????. ???? ?? ??, ?? ? ???? ??? ? ????. ????? ??? ??? NVIDIA DGX1? ?? ??? ??? ????? ?? ???? ?????? ?? ??? ?? ?? ???? GPU? ??? ???? ?????.

    ??? ???? ?? ?? ??? 32?? ??? ???? ???? ?? ? ?? ?? ??? ?????. ??? ??? ??? ??? ??? ???? ?? ????? ??? ???? ?? ??? ????. ???? ?? ???? 8?? ??? ???? ?? ?????. ??? ?? ? ???? ?????? ?? ?? ???? ?? ??? ?? ?? ???? ??? ? ??? ????.

    ? ?????? INT8 ???? ???? ?? ??? ?? ?????. ?? ?? ???? QAT(??? ?? ??)?? ???? ??? ?????.

    ?? ???

    ???? ? ?? ??? ???? ????? ??? ? ?? ???? ???? ???????. ????? DNN ?? ? ??? IEEE ???? ?? ??? ??? ??? 32???? ?? ??? ?? ???? ??? ??? ??? ?????. ??? ??? ?? ?? ???? ??????.

    ???? DNN? ??? ??? ??? ?? ?? ??? ?? ? NVIDIA V100 ?? A100 GPU? ???? ?????? ?????? ???? ??? ?? ??? ? ??? ???? ? ????. ??? ?? ?? ??? ??? ??? ???? ??? ?? ??? ?? ?? ?????? ???? ?? ??? ????. ??? ???, ???, ?? ??? ???? 32?? ?? ??? ??? DNN ??? ???? ?? ??? ???? ????? ????.

    ??? ??? ??? ??? ??? ??? ???? ?? ??? ??? ?? ?? ???? ??? ??? ? ????. ??? ???? ??? ??? ???? 16?? ?? ??? ??? ????? ???? ???? ???????. ? ?? ???? ? 1.2~1.5? ??????, ??? ??? ? ?? ??? ??? ??? ???? ?? ?????. ?? ??? ?? ??? ? ??? ?? 8?? ?? ??? ?? ?? ?? ???? ??????. ? ?? ??? ??? 4? ? ?? ???? ? 2~4? ?? ??? ???.

    8?? ???? ??? ? ??? ??? ????? ??? ?????? ??? ?? ???????. ??? ?? ?? ??? ?? ??? ??? ??? ?? ?? ??? ?????. ?? ??? ??? ?????.

    32?? ??? ???? ?? ??? ? ?? ??? ??? ??? 8?? ???? ??? ???? ????? ??? ?????. ?? ?? ??? ??? ??? ? ??? ??? ??? ????. ?? ?? ?? ???? ???? ???? ???? ??? ?? ??? ?? ???? ??? ????? ???? ???.

    NVIDIA TAO Toolkit? ? ?? ??? PTQ(Post-Training Quantization) ? QAT?? ? ?? ???? ???? ?? ??? ?? ??? ?????? ?????.

    ?? ? ???

    ???? ? ? ??? ? ???? TAO Toolkit?? ??? ? ??? ?????. ??? 32?? ?? ??? ??? ??? ???? ???? ?? ?????. ????? ?? ???? ??? ??? ? ??? TensorRT INT8 ???? ???? ???? ?????.

    TensorRT? IInt8EntropyCalibratorV2? INT8 ??? ??? ? ??? ?????. TensorRT? INT8 ??? ??? ???? ??? ?? ??? ??? C++? ??? INT8 ??? ??????. ?? ?? ? ?? ??? ?? ??? ??? TAO Toolkit ?? ???? ??????.

    PTQ? ??? ??? ?? ????? ??? ????? ??? ??? ???? ????? ? ?? ??? ??? ? ??? ??? ??? ????. ??? ? ????? ?? ???? ??? ??? ? ?? ??? ????. ??? ?? ? ??? NGC? PeopleNet ?? ???. ? ??? FP32 ??? ???? ??? ?????? TensorRT INT8 ???? ???? ???? ???????. ??? ? ?? TensorRT ??? ?? 1?? ? ? ??? ?? ?? ?? ??? ??? ??? ?? ???? ??? ??????.

    ?? 1. PTQ INT8 ??? ?? ?? ??.

    ??? ?? ??

    QAT??? DNN? ??? ? ?? ???? ?? ??? ?? ???? ???, ??? ??? ? ??? ??? ?????. ?? ???? ?? ????? ??? ???? ?? ??? ??? ??????? ?? ???????. ?? ?? ?? ??? ??? ??? ??? ????, ? ??? ??? ??? ?? ?? ?????? ?????. ??? QAT? ?? ?? ??? ??? ????? ? ??? ?? ?? ? ??? ???? ??? ??? ?????.

    ??? ?? ??? ??? ??????? ?? ?? ???? ???? ????? ?????. ?? ??? ???? DNN ??? ???? ?? FakeQuantization ??? ???? QDQ(Quantize-Dequantize) ??? ?? ??? ??? ???? ?? ??? ???? ???.

    ?? ??? ?? ??? ??? ??? ??? ??? QDQ ??? ??? ?????. ??? ??? TensorRT ?? ???? ?? ???? ?? ??? ??? ?? ??? ??? ??? QDQ ??? ????? ?????. ?? ??, TensorRT? Conv -> Bias -> ReLU ? Conv -> Bias -> BatchNmalization -> ReLU ??? ??? ?????. ? ?? QDQ ???? ???? ?? ReLU ???? ?? Tensor?? ??? ????. ??? ??? ??? ?? ??? ?????.

    ?? ??? ?? ??? ???? ??? ?? ????. ?? ?? ?? ??? ?? ????? ????? ??? ??? ?? Tensor? 8?? ??? ??? ???? ??? ??, 8?? ???? ??? ? ?? ??? ???? ? ??? ???? ??? ? ? ????. ??? ??? ????? ???? ??? ?? ? ?????.

    TAO Toolkit? ???? ??? ?? ?? ????

    TAO Toolkit?? ??? ???? ??? ?? ??? ???? ????. TAO Toolkit? ???? QAT ??? ??? ?? ?? ??? ??????. ??? ???? ????? ?? ?? ??? training_config ?? ??? ???? ?????. ??? ?? train ??? ?? ???? ?? ???? ????? ????? ??? ?? ?? ??? ? ???? ???? ????? ??? ????? ?????. ?? 2? QAT?? INT8 ?? ??? ??? ???? ?? ?????? ?????.

    ?? 2. TAO Toolkit QAT ?????.
    1. ???? ?? ?? ?? ?? ??? ?????.
    2. ??? ??? ?????? ???? ????? ?? ??? ? ??? ??? ?? ? ????.
    3. QAT? ???? ??? ? ??? ?? ?????.
    4. ?? ??? ??? ???? ?????? ?? ???? ??? ???? ?????.
    5. ??? ???? DeepStream SDK ?? ???? ?? ? ?? .etlt ?? ? INT8 ?? ??? ???? TensorRT ??? ?????. ???? ???? TensorRT ??? ??? ? ???, ? ??? ???? ??? ?????? ??? ? ????.
    6. ?? ???? ??? TensorRT ??? ?????. QAT? ?? ? MaskRCNN ??? ???? ????.

    ?? ?? ?? ???? ?? ???(8?? ??)? ?? ??? ??? TAO Toolkit PeopleNet ??? QAT ?? ??? ???? ??? ?? ?????. PeopleNet ??? ?? ??? ???? ???? DetectNet_v2 ??? ???? ?? ?? ??? ???NVIDIA TAO Toolkit?? ??? ?? ??? ??? ??? ??? ??????.

    ??? ?? ?????? ?? DetectNet_v2 ??? ???? ?????? ?? ?? ????? ??? ???? ?? ????.

    ????? ??? ???? ??? ?? ??? model_config ?? ??? ?????? ??? ?????.

    • ????? ??? ?? ??? ???? ?????.
    • ?? ????? ?? ??? ????? load_graph ???? true? ?????.

    ?? ?? ????? ????? ?? ??? ?????.

    model_config {
      pretrained_model_file: "/path/to/pruned/model"
      load_graph: true
      num_layers: 34
      arch: "resnet"
      use_batch_norm: true
      objective_set {
        bbox {
          scale: 35.0
          offset: 0.5
        }
        cov {
        }
      }
      training_precision {
        backend_floatx: FLOAT32
      }
    }

    ???? ??? ?? ??? training_config ?? ??? ?????? enable_qat ???? ?????.

    training_config {
      batch_size_per_gpu: 24
      num_epochs: 120
      enable_qat: true
      learning_rate {
        soft_start_annealing_schedule {
          min_learning_rate: 5e-06
          max_learning_rate: 0.0005
          soft_start: 0.1
          annealing: 0.7
        }
      }
      regularizer {
        type: L1
        weight: 3e-09
      }
      optimizer {
        adam {
          epsilon: 9.9e-09
          beta1: 0.9
          beta2: 0.999
        }
      }
      cost_scaling {
        initial_exponent: 20.0
        increment: 0.005
        decrement: 1.0
      }
      checkpoint_interval: 10
    }

    ??? ?? ?? ?? ??? ?????? ?? ??? ??? ?? ?? ??? ???? ?? ? ????.

    • dataset_config
    • evaluation_config
    • augmentation_config
    • postprocessing_config
    • bbox_rasterizer_config
    • cost_function_config

    ??? ?? ??? ?? ??? ??? NVIDIA TAO Toolkit? ??? ??? ?? ?? ??? ???? ? TAO Toolkit ???? ???? ??????.

    ? ??? ?? ??? ????? ????? ?? ??? train ??? ?????. train ??? ?? ?? ??? ??? ??? ????.

    tao train detectnet_v2 -e $spec_file_path \
                           -r $experiment_dir_pruned_qat \
                           -k $KEY \
                           -n $model_file_string \
                           --gpus $N

    ?? ??? ?????.

    • $KEY: ??? ??? ? ??????.
    • $experiment_dir_pruned_qat: ?? ?? ????? ?? UNIX ??? ?????.
    • $N: ?? ?? ??? GPU ????.
    • $spec_file_path: UNIX ???? ?? ?? ?? ?????.
    • $model_file_string: ?? ??? ??? ?? ???? ?? ?? ??? ??? ?????.
      • ?? ??? $experiment_dir_pruned_qat/weights/$model_file_string.tlt?? ??? ? ????.

    ??? ???? evaluate ??? ???? ?? ??????? ??? ???? ? ??? ???? ??? ? ????.

    tao evaluate detectnet_v2 \
                 -e $spec_file_path \
                 -m $experiment_dir_pruned_qat/weights/$model_file_string.tlt \
                 -k $KEY \

    ???? ?? ???(AP)? Pascal VOC ????? ??? Pascal VOC ?? ??? ?? ???? ??? ?? ???(mAP) ???? ?? ????? ?????. QAT ? QAT ??? ???? ?? ??? ???? ??? ?? ??? ??? ? ???? ?? ??? ?????.

    ??? ???? mAP? QAT? ????? ?? ??? ??? mAP? ?????. ??? ????? ??? ??? ??? export ??? ???? ? ?? ? ????. export ??? ???? ??? ?? ?? ???? ?? ???? ???? ?? ??? ??? ?? ?? ?? ??? ???? ?? calibration_cache ??? ?? .etlt ?? ??? ?????. etlt_model ??? calibration_cache ??? ???? ?? ???? ????(8??) TensorRT ??? ????? DeepStream SDK? ?? ??? ? ????.

    ?? ?? ????? export ??? ?? ??? ?????.

    tao export detectnet_v2
               -m $experiment_dir_pruned_qat/weights/$model_file_string.tlt \
               -o $output_model_path \
               -k $KEY \
               --data_type int8 \
               --batch_size N \
               --cal_cache_file $calibration_cache_file \
               --engine_file $engine_file_path

    ?? ??? ?????.

    • $output_model_path: ?? .etlt ?? ??? UNIX ?????.
    • $KEY: ??? ???? .etlt ?? ??? ???? ??? ????.
    • –data_type: TensorRT ??? ???(?? ??? ???? ?? INT8? ??? ??).
    • N: ?? TensorRT ??? ?? ?? ????.
    • $calibration_cache_file: ??? Tensor? ?? ???? ???? ?? ?? ??? UNIX ?????.
    • $engine_file_path: ?? TensorRT ?? ??? UNIX ?????.

    export ??? ???? ??? ??? export ??? ??? ????? ??? ???? ?? ??? ? ????. ? ??? ?? ???? ????? .etlt ?? ??? calibration_cache? ?? ???? ?? ????? ???? ?????.

    Jetson ????? ??? ?, ??? ????? calibration_cache ??? ? ?? ?? ???? ?? JetPack ??? TensorRT ??? ?????. ?? ?? JP4.4? ?? ? ?? ??? TensorRT ?? ??? 7000?? 7100?? ???????.

    QAT ?? ?? ?? ??? ?? x86 ?? GPU(NVIDIA T4, V100 ? A100) ? NVIDIA Jetson ???(AGX Xavier ? Xavier NX)??? ??? ? ????.

    ??? ??? export ??? ???? ??? ??? DLA? INT8 ???? ???? ?? ?? ???? ????. DLA? ? ??? ????? QAT ?? .tlt ?? ???? PTQ? ???? ?? ?? ??? ???? ???. ??? ??? export ?? ? ???? force_ptq ???? ?????. DetectNet_v2 ??? ???? ?? ? ??? ??? ?? ?? export ??? ?? ??? ????.

    tao export detectnet_v2 \
    -e $spec_file_path \
    -m $experiment_dir_pruned_qat/weights/$model_file_string.tlt \
    -o $output_model_path \
    -k $KEY \
    --data_type int8 \
    --batch_size N \
    --cal_cache_file $calibration_cache_file \
    --engine_file $engine_file_path \
    --force_ptq

    force_ptq ??? ???? ??? ??? ??? ???? QAT ?? ???? TensorRT IInt8EntroplyCalibrator2? ???? ??? ??? ?????. ? ???? ??? ?? ?? ??? ?? ???? ?????. GPU? ??, DLA? ?? Conv-> Bias -> ReLU ? Conv -> Bias -> BatchNormalization -> ReLU ??? ?? ???? ???? ????. ??? ?? ?? ???? ??? ???? ?????. detectnet_v2 ????? ??, ??, ????, ???? ? ???? ??? ?? ??? ??? TAO Toolkit Getting Started Guide? ?????.

    INT8 ??? ???? DLA? PeopleNet v2.0 ??? ???? ?? export? force_ptq ??? ???? ??? ???? ???? evaluate? ???? ??? ??????. ? ??? ??? ?? ??? ?? ?? ??????.

    ??

    ? 1? PTQ? ???? INT8 ??? ??? FP32 ?? ??? ???? QAT? ??? INT8 ??? ?? ??? ??? ?????. ??? ?? FP32 ???? ?? ?????.

    QAT? ???? ??? ?? ?? ?? FP32? ??? ??? ??? 1% ?????. ??? ???? PTQ? ???? ???? ?? ??? ??? ??? ? ?? ???. QAT? INT8 ???? ??? ???? ?? ???? ?? ?????.  

     ?? FP32 mAPPTQ? ?? INT8 mAPQAT? ?? INT8 mAP
    PeopleNet-ResNet1878.3759.0678.06
    PeopleNet-ResNet3480.26279.57

    ? 1. QAT ?? INT8 ??? ??? PTQ INT8 ??? ??? ??.

    ??? ?? ????? ?? INT8 ??? ??? ???? ??? ? ??? ?? ??? ?????? ??? ?? ?? ??? ?????. ? 2? FP16 ? INT8 ???? ?? ? PeopleNet ??? T4 ?? ??? ?????. ? ? ???? ????? ?? FPS? 2? ??? ??? ?? ? ? ????. ?, ?? ????? GPU? ???? ?? ?? ???? ??? ?? ????? ? ?? ?? ? ????.

     FP16 ?? ??(FPS)INT8 ?? ??(FPS)
    PeopleNet-ResNet187621517
    PeopleNet-ResNet345131038

    ? 2. INT8 ?? ??? ??? FP16.

    ??? ??? ?? ??? ?? 1? ??? ???? ???? QAT? ???? ??? ??? INT8 ???? ??? ???? ????. ?? ??? ?? ????? ???? ?? ???????.

    ?? 3. QAT ?? ??? ??? INT8 ??.

    ??

    ??? ?? ??? ???? ????? ?? ? ?? ???? INT8 ??? ?? DNN? ???? ? ??? ???. ?? ?? ?? ??? ??? ????? FP16 ?? FP32? ?? ???? ???? ? ??? ???. PTQ? ??? TAO Toolkit? ?? ????? INT8 ???? ???? ??? ???? QAT? ??? ??? ?????.

    ? ?????? PeopleNet ??? QAT? ???? ??? ???? ???? ?? ??? ??????, TAO Toolkit?? ???? ?? ?? ?? ?? ? ?? ??? ?? ????. QAT? ?? ??? ??? TAO Toolkit ?? ???? ?? ?????? ??????.?

    ? ???? ??? SDK? ???? ?? ???, ?? ???, ?? ??, ??, ?? ??, ???? NVIDIA ??? ???? ??? ??? ??? ??? ? ????. ?? ??? ???? NVIDIA? ?? ????? ???? ? ??? ??? ??? ?????? ???? ??? ??? ???.

    Discuss (0)
    +1

    Tags

    ?? ???

    人人超碰97caoporen国产