? ?? ????(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?? ? ? ??? ?? ?? ?? ??? ??? ??? ?? ???? ??? ??????.

??? ?? ??
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 ?? ??? ??? ???? ?? ?????? ?????.

- ???? ?? ?? ?? ?? ??? ?????.
- ??? ??? ?????? ???? ????? ?? ??? ? ??? ??? ?? ? ????.
- QAT? ???? ??? ? ??? ?? ?????.
- ?? ??? ??? ???? ?????? ?? ???? ??? ???? ?????.
- ??? ???? DeepStream SDK ?? ???? ?? ? ?? .etlt ?? ? INT8 ?? ??? ???? TensorRT ??? ?????. ???? ???? TensorRT ??? ??? ? ???, ? ??? ???? ??? ?????? ??? ? ????.
- ?? ???? ??? 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 mAP | PTQ? ?? INT8 mAP | QAT? ?? INT8 mAP | |
PeopleNet-ResNet18 | 78.37 | 59.06 | 78.06 |
PeopleNet-ResNet34 | 80.2 | 62 | 79.57 |
? 1. QAT ?? INT8 ??? ??? PTQ INT8 ??? ??? ??.
??? ?? ????? ?? INT8 ??? ??? ???? ??? ? ??? ?? ??? ?????? ??? ?? ?? ??? ?????. ? 2? FP16 ? INT8 ???? ?? ? PeopleNet ??? T4 ?? ??? ?????. ? ? ???? ????? ?? FPS? 2? ??? ??? ?? ? ? ????. ?, ?? ????? GPU? ???? ?? ?? ???? ??? ?? ????? ? ?? ?? ? ????.
FP16 ?? ??(FPS) | INT8 ?? ??(FPS) | |
PeopleNet-ResNet18 | 762 | 1517 |
PeopleNet-ResNet34 | 513 | 1038 |
? 2. INT8 ?? ??? ??? FP16.
??? ??? ?? ??? ?? 1? ??? ???? ???? QAT? ???? ??? ??? INT8 ???? ??? ???? ????. ?? ??? ?? ????? ???? ?? ???????.

??
??? ?? ??? ???? ????? ?? ? ?? ???? INT8 ??? ?? DNN? ???? ? ??? ???. ?? ?? ?? ??? ??? ????? FP16 ?? FP32? ?? ???? ???? ? ??? ???. PTQ? ??? TAO Toolkit? ?? ????? INT8 ???? ???? ??? ???? QAT? ??? ??? ?????.
? ?????? PeopleNet ??? QAT? ???? ??? ???? ???? ?? ??? ??????, TAO Toolkit?? ???? ?? ?? ?? ?? ? ?? ??? ?? ????. QAT? ?? ??? ??? TAO Toolkit ?? ???? ?? ?????? ??????.?
? ???? ??? SDK? ???? ?? ???, ?? ???, ?? ??, ??, ?? ??, ???? NVIDIA ??? ???? ??? ??? ??? ??? ? ????. ?? ??? ???? NVIDIA? ?? ????? ???? ? ??? ??? ??? ?????? ???? ??? ??? ???.