- 글쓴시간
- 분류 기술,IT/스테이블 디퓨전
FP16과 FP32 가 어떤 차이가 있을까 궁금해서 한번 테스트 했다. 결론을 먼저 말하자면, 그냥 FP16 사용하자. 사용하는데에는 결과물에 차이 없고 메모리를 더 적게 사용하기 때문에, FP16 사용해야 한다.
nVidia RTX 2060 에서 테스트했다. 참고로 20 시리즈는 FP16 이 FP32 보다 연산능력이 2배 좋다. 30 시리즈부터 FP16 과 FP32 연산능력이 동일하다.
이미지크기는 504 x 960 으로 했다.
① FP32 체크포인트, FP32 실행
chilloutmix_NiPrunedFp32Fix FP32 5.1G -> 5.9G -> 7.7G -> 5.1G Total progress: 100%|██████████████████████████████████████████████████████████████████| 28/28 [00:46<00:00, 1.48s/it]
② FP32 체크포인트, FP16 변환
chilloutmix_NiPrunedFp32Fix FP32 -> FP16 2.6 -> 10.1 -> 8.9G -> 3.0G 100%|████████████████████████████████████████████████████████████████████████████████| 28/28 [00:28<00:00, 1.01s/it] Total progress: 100%|██████████████████████████████████████████████████████████████████| 28/28 [00:24<00:00, 1.15it/s] Total progress: 100%|██████████████████████████████████████████████████████████████████| 28/28 [00:24<00:00, 1.57it/s]
③ FP32 체크포인트, FP16 실행
chilloutmix_NiPrunedFp32Fix FP16 3.0G -> 3.3G -> 5.1G -> 3.0G Total progress: 100%|██████████████████████████████████████████████████████████████████| 28/28 [00:17<00:00, 1.61it/s]
④ FP16 체크포인트, FP16 실행
chilloutmix_NiPrunedFp16Fix FP16 3.0G -> 3.3G -> 3.0G Total progress: 100%|██████████████████████████████████████████████████████████████████| 28/28 [00:17<00:00, 1.62it/s]
② 은 FP32로 학습한 체크포인트를 FP16 으로 수행하기 전에 FP16 으로 변환하는데, 처음 체크포인트 변환시 10.1G, VAE 변환시 8.9G 를 소비한다. 재 실행시에는 변환작업이 없다.
생성한 이미지
①
③
④
메모리 사용
①
②③
④
------------
참고: GT1030, --lowvram
이미지크기: 384 x 768
① FP16 체크포인트, FP32 실행
chilloutmix_NiPrunedFp16Fix FP32 1952MiB
Total progress: 100%|██████████████████████████████████████████████████████████████████| 20/20 [08:10<00:00, 25.61s/it]
② FP16 체크포인트, FP16실행
chilloutmix_NiPrunedFp16Fix FP16 1350MiB
Total progress: 100%|██████████████████████████████████████████████████████████████████| 20/20 [05:10<00:00, 16.15s/it]