mixed precision training
2018.11.06 06:56
train (math) 는 FP16 으로 하고 storage 는 FP32 로 해서 BVLC Caffe 에서도 잘 동작하는듯.
정확도는 아직 더 test 해봐야한다. scale factor 는 100~1000 이 적당한듯.
NVCaffe 에서 trainval.prototxt 에 아래와 같이 추가
default_forward_type: FLOAT16
default_backward_type: FLOAT16
default_forward_math: FLOAT
default_backward_math: FLOAT
global_grad_scale:100
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
1656 | rsynccp | WHRIA | 2023.02.20 | 49 |
1655 | color pallate | WHRIA | 2019.04.07 | 50 |
1654 | cloudfront | WHRIA | 2023.04.09 | 50 |
1653 | 싸이월드도 없어지는구나 | WHRIA | 2015.10.10 | 51 |
1652 | boost 1.35 build | WHRIA | 2016.05.01 | 51 |
1651 | software validation [1] | WHRIA | 2020.05.10 | 51 |
1650 | amp distributed pytorch [1] | WHRIA | 2020.07.14 | 51 |
1649 | WOL shutdown | WHRIA | 2016.01.22 | 52 |
1648 | psexec | WHRIA | 2016.07.28 | 52 |
1647 | center % crop | WHRIA | 2018.12.27 | 52 |
1646 | 멀티캐스트 | WHRIA | 2015.11.03 | 53 |
1645 | startup | WHRIA | 2020.05.08 | 53 |
1644 | 이율초재 | WHRIA | 2014.10.20 | 54 |
1643 | 증시의 허풍 예언들 | WHRIA | 2015.11.20 | 55 |
1642 | DD-WRT 펌웨어로 버팔로 G450H 를 업그레이드 | WHRIA | 2015.11.22 | 56 |
MIXED 셋팅
default_forward_type: FLOAT16
default_backward_type: FLOAT16
default_forward_math: FLOAT
default_backward_math: FLOAT
FP32
default_forward_type: FLOAT
default_backward_type: FLOAT
default_forward_math: FLOAT
default_backward_math: FLOAT
FP16
default_forward_type: FLOAT16
default_backward_type: FLOAT16
default_forward_math: FLOAT16
default_backward_math: FLOAT16
CUDA 8.0 으로 하면 속도 향상이 없다.
CUDA10.0 기준, cudnn 7.4.1, ResNeXt-50 , 100 iter
FP32 - 82 sec, 4779
FP16 - 69 sec+ test 오래걸림 , 2623
Mixed - store 16bit - 69 sec, 2623
Mixed - store 32bit - 69 sec, 2769
solver_data_type: FLOAT16 가 16bit 인 경우 memory 를 약간 더 잡아먹는다.
Mixed train 하는 경우
pascal 에서 속도가 30% 향상있고 메모리는 50% 감소한다.