결론
4000번대에 효과가 확실하다고 알려진 [xformers, cuda11 dll, torch 2 및 xformers rebuild] 외에는
다 해골물이더라. 오히려 성능을 떨어뜨린다.
webui-user.bat | @echo off
rem git pull
set PYTHON= set GIT= set VENV_DIR= set COMMANDLINE_ARGS=--xformers --opt-split-attention
rem set TORCH_COMMAND=pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu118 rem https://pytorch.org/get-started/locally/
call webui.bat |
실행 시 | venv\Scripts\activate |
최대 속도 | 21.8177 it/s (최대 오차 범위 0.2884 it/s) |
성능 상승 요인 | 2번. --xformers 를 인수에 추가 5번. cudnn-windows-x86_64-8.8.1.3_cuda11-archive dll 교체 6번. torch 2.0, xformers rebuild |
성능 하락 요인 | 7번(해골물). nvidia 제어판(NVIDIA Control Panel)/ 3D 설정/ 3D 설정 관리/ 전역 설정/ 전원 관리 모드: "최고 성능 선호" 로 변경 8번(해골물). 크롬 브라우저/ 설정/ 시스템/ 하드웨어 가속 사용/ 비활성화 9번. xformers rebuild 후, venv\Scripts\activate 없이 실행 11번. --autolaunch 를 인수에 추가 |
성능과 무관한 요인 | 1번. vae 추가 시, 오차 범위 이내 증가. 3번. --opt-split-attention 를 인수에 추가 시, 오차 범위 이내 감소. 12번. --theme dark 를 인수에 추가 시, 오차 범위 이내 감소. |
잔여 RAM 관리 | --opt-split-attention 를 인수에 추가 하고, 모델 로드 직후에 RAMMAP-Empty Standby List 실행 후 그림을 뽑으면 그림 뽑은 뒤에도 대기 메모리의 양이 유의미하게 적었다. |
환경
HW | 메인보드: VGA 연결 PCIe4.0 x16 OS: Windows 10 RAM: DDR4 SSD: PCIe4.0x4 (64GT/s) CPU: AMD PCIe4.0 |
OS | 그래픽 설정/ 하드웨어 가속 GPU 일정 예약: 비활성화 그래픽 카드 드라이버 최신 버전 (2023-03-13 기준) CUDA 11.8 및 C++ 빌드 툴은 이미 설치되어 있는 상태 제어판\하드웨어 및 소리\전원 옵션\전원 관리 옵션 설정 편집\고급 전원 관리 옵션: 이미 '고성능'. 세부옵션 모두 마찬가지 |
webUI | version: 2023-03-12 오후 11:28 시점의 최신 버전 negative 없음 실행 위치와 모델 경로 모두 SSD 에 두고 실행 |
index 별 성능 테스트
매 실험 시작할 때 마다 RAMMAP Empty Standby List 실행
- VAE 넣었더니 Automatic 대비 vae-ft-mse-840000-ema-pruned.ckpt 에서 0.0517 it/s 증가하였다.
- 빌드 없이 --xformers 를 인수에 추가했더니 1.301 it/s 증가하였다.
- 위 조건에 --opt-split-attention 를 인수에 추가했더니 0.0763 it/s 증가하였다. 30회 실행 후 잔여 메모리가 pure webUI 와 비슷한 수준(439MB) 로 줄었다.
- 위 조건에 --opt-channelslast 를 인수에 추가했더니 0.7923 it/s 감소하였다.
- 직전 최고치 9.7673 (COMMANDLINE_ARGS=--xformers --opt-split-attention) 설정에 cudnn-windows-x86_64-8.8.1.3_cuda11-archive dll 를 넣었더니, 8.314 it/s 증가하였다.
- 위 조건에 'venv 폴더 삭제, torch 2.0, xformers 삭제, xformers build' 했더니, 3.7364 it/s 증가하였다. (현재 최고치 21.8177 it/s). 이 값이 지나치게 잘 나왔을 가능성이 있다.
- 위 조건에 'nvidia 제어판(NVIDIA Control Panel)/ 3D 설정/ 3D 설정 관리/ 전역 설정/ 전원 관리 모드: "최고 성능 선호" 로 변경' 하니, 0.482 it/s 감소하였다. 주로 Cuda 를 많이 쓰기에 3D 설정과 무관하거나 3D를 고성능으로 올릴 시 악영향을 받는 것으로 보인다.
- 직전 최고치 21.8177 (xformers build) 에서 '크롬 브라우저/ 설정/ 시스템/ 하드웨어 가속 사용/ 비활성화' 했더니, 0.324 it/s 감소하였다.
- 직전 최고치 21.8177 (xformers build) 에서 'venv\Scripts\activate 없이 실행' 하니, 0.464 it/s 감소하였다.
- 직전 최고치 21.8177 (xformers build) 와 동일 조건으로 실험 시, 0.2884 it/s 감소하였다. 최대 오차 범위.
- 직전 최고치 21.8177 (xformers build) 에서 '--autolaunch 를 인수에 추가' 하니, 0.7 it/s 감소하였다.
- 직전 최고치 21.8177 (xformers build) 에서 '--theme dark 를 인수에 추가' 하니, 0.1344 it/s 감소하였다. 오차 범위(0.2884) 이내로 성능에 무관하다.
실험은 batch count 30 회씩 함
index | Generate time | 옵션 | 효과 | 변화 | 30개 평균 속도(it/s) | 속도차(it/s) |
0 | 2023-03-12 오후 11:28 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE False(Automatic) | - | ui-config.json: "txt2img/Batch count/value": 30, | =8.3383 it/s (5.02+ 8.40+ 8.43+ 8.50+ 8.45+ 8.45+ 8.54+ 8.48+ 8.43+ 8.45+ 8.46+ 8.46+ 8.50+ 8.46+ 8.44+ 8.49+ 8.43+ 8.36+ 8.53+ 8.46+ 8.47+ 8.49+ 8.51+ 8.39+ 8.51+ 8.47+ 8.48+8.37+ 8.28+ 8.44)/30= RAMMAP Empty Standby List 실행 | - |
1 | 2023-03-12 오후 11:37 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True | 상승 | VAE: vae-ft-mse-840000-ema-pruned.ckpt | =8.39 it/s (7.87+ 8.42+ 8.44+ 8.44+ 8.32+ 8.39+ 8.46+ 8.45+ 8.40+ 8.41+ 8.43+ 8.42+ 8.45+ 8.34+ 8.44+ 8.40+ 8.41+ 8.44+ 8.43+ 8.41+ 8.33+ 8.41+ 8.44+ 8.42+ 8.38+ 8.28+ 8.42+ 8.42+ 8.40+ 8.43)/30 RAMMAP Empty Standby List 실행 | 8.39-8.3383=0.0517 증가 |
2 | 2023-03-12 오후 11:46 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers | 상승 | set COMMANDLINE_ARGS=--xformers | =9.6910 it/s (5.17+ 9.81+ 9.95+ 9.96+ 9.79+ 9.77+ 10.18+ 9.75+ 9.68+ 10.09+ 9.99+ 9.82+ 9.57+ 9.60+ 10.01+ 9.81+ 9.76+ 9.89+ 9.88+ 9.62+ 9.79+ 9.92+ 9.97+ 9.94+ 9.81+ 9.83+ 9.79+ 9.73+ 9.91+ 9.94)/30
RAMMAP Empty Standby List 실행 | 9.6910-8.39=1.301 증가 |
3 | 2023-03-12 오후 11:56 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention | 상승 | --opt-split-attention | =9.7673 it/s (4.98+ 9.92+ 10.10+ 9.93+ 9.87+ 9.76+ 10.19+ 9.77+ 9.95+ 10.00+ 9.90+ 9.84+ 9.90+ 9.87+ 10.16+ 9.66+ 9.78+ 9.80+ 9.96+ 9.71+ 9.79+ 9.85+ 10.05+ 10.21+ 10.07+ 9.95+ 9.91+ 10.01+ 10.16+ 9.97)/30 30회 실행 후 잔여 메모리가 크게 줄었다 RAMMAP Empty Standby List 실행 | 9.7673-9.6910=0.0763 증가 |
4 | 2023-03-13 오전 12:06 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention --opt-channelslast | 하락 | --opt-channelslast | =8.975 it/s (4.94+ 9.09+ 9.18+ 9.10+ 9.30+ 8.89+ 9.21+ 9.19+ 9.00+ 9.05+ 9.34+ 9.09+ 9.17+ 9.05+ 8.99+ 9.05+ 9.09+ 9.20+ 9.15+ 9.17+ 8.85+ 9.25+ 9.21+ 8.96+ 9.06+ 9.14+ 9.08+ 9.07+ 9.04+ 9.34)/30 잔여 메모리 체크 하지 않음 RAMMAP Empty Standby List 실행 | 8.975- 9.7673=-0.7923 감소 |
5 | 2023-03-13 오전 12:17 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention
\stable-diffusion-webui\venv\Lib\site-packages\torch\lib 에 cudnn-windows-x86_64-8.8.1.3_cuda11-archive\bin 삽입 | 상승 | 제거[--opt-channelslast] 추가[cudnn-windows-x86_64-8.8.1.3_cuda11-archive dll] | =18.0813 it/s (5.95+ 18.26+ 18.14+ 18.27+ 18.38+ 18.32+ 18.68+ 18.85+ 17.99+ 18.25+ 18.89+ 18.41+ 18.93+ 18.58+ 18.56+ 18.53+ 18.81+ 18.45+ 18.51+ 18.31+ 18.30+ 18.49+ 18.51+ 18.20+ 18.26+ 18.83+ 18.68+ 18.65+ 18.77+ 18.68)/30
| 18.0813-9.7673=8.314 증가 |
6 | 2023-03-13 오전 1:05 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention torch 2.1 xformers rebuild build 완료 후 주석처리 rem set TORCH_COMMAND build 완료 후 remset TORCH_COMMAND …
pip list tb-nightly 2.13.0a20230312 torch 2.1.0.dev20230311+cu118 torchaudio 2.0.0.dev20230312+cu118 torchvision 0.15.0.dev20230312+cu118 wheel 0.38.4 xformers 0.0.17+b6be33a.d20230313 | 상승 | venv 폴더 삭제 torch 2.0 xformers 삭제 xformers build venv\Scripts\activate 에서 실행 | RAMMAP Empty Standby List 실행없이 돌렸을 때 =21.6297 it/s (10.32+ 22.12+ 22.24+ 22.15+ 22.02+ 22.34+ 21.80+ 22.11+ 22.12+ 21.57+ 22.16+ 22.24+ 21.77+ 22.39+ 22.68+ 21.86+ 21.67+ 22.17+ 22.53+ 21.83+ 21.77+ 22.46+ 21.60+ 22.03+ 21.59+ 22.06+ 21.77+ 21.72+ 22.25+ 21.55)/30 -------------------------- RAMMAP Empty Standby List 실행 후 돌렸을 때 =21.8177 it/s (17.41+ 22.26+ 21.87+ 21.75+ 21.75+ 22.39+ 21.63+ 22.34+ 21.94+ 22.00+ 22.18+ 22.03+ 21.91+ 21.94+ 21.79+ 22.23+ 21.44+ 22.32+ 22.32+ 22.27+ 21.70+ 22.16+ 21.34+ 21.91+ 21.90+ 22.51+ 21.20+ 21.92+ 22.54+ 21.58)/30
empty 후 실행하니 21.8177-21.6297=0.188 it/s 증가했다. 이 실험에서 값이 지나치게 잘 나왔을 가능성이 있다.
| 21.8177-18.0813=3.7364 증가 |
7 | 2023-03-13 오전 1:24 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention pip list torch 2.1.0 xformers 0.0.17+b6be33a.d20230313 venv\Scripts\activate 에서 실행 nvidia 제어판(NVIDIA Control Panel)/ 3D 설정/ 3D 설정 관리/ 전역 설정/ 전원 관리 모드: "최고 성능 선호" 로 변경 재부팅 venv\Scripts\activate 에서 실행 원래대로 돌리고 (전원 관리: 일반) 재부팅 | 하락 | nvidia 제어판/ 3d 설정 관리/ 전원 관리 모드: 최고 성능 | 모델 로드 직후 RAMMAP Empty Standby List 실행 =21.2083 it/s (7.26+ 21.36+ 21.42+ 20.31+ 21.24+ 21.50+ 21.85+ 21.99+ 21.99+ 21.57+ 21.15+ 21.84+ 22.13+ 21.70+ 21.71+ 20.77+ 21.14+ 21.79+ 22.00+ 21.06+ 22.46+ 21.94+ 22.32+ 22.36+ 22.02+ 21.82+ 22.41+ 21.78+ 22.07+ 21.29)/30
RAMMAP Empty Standby List 실행없이 한 번 더 30번 돌려도 직전 최고치보다 낮다. =21.3357 it/s (21.84+ 21.83+ 21.81+ 22.17+ 21.78+ 21.75+ 21.62+ 20.57+ 21.54+ 21.61+ 19.92+ 21.32+ 21.10+ 21.47+ 21.17+ 22.23+ 21.33+ 21.18+ 21.39+ 21.45+ 21.07+ 20.93+ 21.31+ 21.20+ 21.34+ 20.67+ 20.63+ 20.78+ 21.58+ 21.48)/30
| 21.3357-21.8177=-0.482 감소 |
8 | 2023-03-13 오전 1:50 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention pip list torch 2.1.0 xformers 0.0.17+b6be33a.d20230313 venv\Scripts\activate 에서 실행 NVIDIA 전원관리: 일반 크롬 브라우저/ 설정/ 시스템/ 가능한 경우 하드웨어 가속 사용/ 비활성화 | 약간 하락 | 브라우저 하드웨어 가속 끄기 | RAMMAP Empty Standby List 실행 =21.4937 it/s (6.44+ 21.73+ 21.20+ 21.57+ 21.83+ 21.83+ 21.39+ 22.32+ 21.62+ 22.12+ 21.81+ 22.49+ 21.62+ 22.07+ 22.72+ 21.78+ 22.32+ 22.88+ 21.92+ 22.00+ 22.24+ 21.78+ 22.85+ 21.88+ 22.00+ 22.59+ 21.64+ 22.07+ 22.44+ 21.66)/30
| 21.4937-21.8177=-0.324 감소 |
9 | 2023-03-13 오전 2:15 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention
pip list torch 2.1.0 xformers 0.0.17+b6be33a.d20230313 venv\Scripts\activate 없이 실행 NVIDIA 전원관리: 일반 크롬 브라우저/ 하드웨어 가속/ 활성화 | 하락 | (venv) 없이 실행 | RAMMAP Empty Standby List 실행 =21.3537 it/s (6.35+ 21.35+ 21.97+ 21.75+ 22.16+ 21.57+ 21.92+ 21.88+ 21.75+ 21.90+ 21.48+ 22.74+ 21.72+ 22.43+ 22.81+ 21.60+ 21.90+ 21.98+ 21.90+ 21.92+ 21.69+ 21.92+ 22.42+ 21.32+ 21.35+ 21.78+ 21.80+ 21.82+ 21.80+ 21.63)/30
| 21.3537-21.8177=-0.464 감소 |
10 == 6 | 2023-03-13 오전 2:23 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention
pip list torch 2.1.0 xformers 0.0.17+b6be33a.d20230313 venv\Scripts\activate 에서 실행
NVIDIA 전원관리: 일반 크롬 브라우저/ 하드웨어 가속/ 활성화 | 최대 오차 범위 | 직전 최고치와 동일한 조건에서 실행 | RAMMAP Empty Standby List 실행 =21.5293 it/s (17.60+ 21.04+ 20.69+ 21.13+ 20.67+ 21.75+ 21.42+ 22.78+ 22.06+ 21.68+ 21.86+ 21.61+ 21.30+ 21.92+ 21.39+ 22.18+ 21.14+ 22.04+ 22.31+ 21.44+ 21.50+ 21.90+ 20.96+ 21.99+ 21.67+ 22.02+ 22.23+ 21.51+ 22.23+ 21.86)/30
RAMMAP Empty Standby List 실행 =21.6643 it/s (17.57+ 20.84+ 21.93+ 21.29+ 20.54+ 21.84+ 21.27+ 22.13+ 21.13+ 20.77+ 21.55+ 23.20+ 21.83+ 22.05+ 23.28+ 21.57+ 21.84+ 21.92+ 21.66+ 21.74+ 23.14+ 21.99+ 21.68+ 21.56+ 23.02+ 21.65+ 21.40+ 21.40+ 22.11+ 22.03)/30 | 21.5293-21.8177=-0.2884 |
11 | 2023-03-13 오전 2:33 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention --autolaunch pip list torch 2.1.0 xformers 0.0.17+b6be33a.d20230313 venv\Scripts\activate 에서 실행 NVIDIA 전원관리: 일반 크롬 브라우저/ 하드웨어 가속/ 활성화 | 하락 | --autolaunch 추가 | RAMMAP Empty Standby List 실행 =21.1177 it/s (5.94+ 21.66+ 21.76+ 21.78+ 22.71+ 21.04+ 21.57+ 21.56+ 21.26+ 21.75+ 22.85+ 21.08+ 22.01+ 21.31+ 21.51+ 21.24+ 21.33+ 22.00+ 21.49+ 21.71+ 21.58+ 21.85+ 21.40+ 21.22+ 21.57+ 22.68+ 21.34+ 21.44+ 21.87+ 21.02)/30
| 21.1177-21.8177=-0.7 감소 |
12 | 2023-03-13 오전 2:42 | 512x512. Euler a. CFG 7. Steps 20. batch size 1. batch count 30. 1girl. v1-5-pruned.ckpt. VAE True. webui-user.bat set COMMANDLINE_ARGS=--xformers --opt-split-attention --theme dark
pip list torch 2.1.0 xformers 0.0.17+b6be33a.d20230313 venv\Scripts\activate 에서 실행 NVIDIA 전원관리: 일반 크롬 브라우저/ 하드웨어 가속/ 활성화 | 오차 범위 이내 | --theme dark 추가 | RAMMAP Empty Standby List 없이 실행 =21.2603 it/s (9.83+ 20.71+ 21.20+ 20.47+ 21.74+ 21.49+ 21.83+ 21.18+ 22.18+ 21.81+ 22.01+ 22.25+ 20.90+ 21.70+ 21.75+ 21.94+ 21.52+ 21.44+ 22.29+ 21.72+ 21.55+ 22.46+ 21.35+ 21.34+ 21.93+ 22.13+ 21.31+ 21.47+ 21.91+ 22.40)/30
RAMMAP Empty Standby List 실행 =21.6833 it/s (18.55+ 21.25+ 21.11+ 21.36+ 21.77+ 21.60+ 21.91+ 21.87+ 21.30+ 21.65+ 21.21+ 22.00+ 21.97+ 22.58+ 21.84+ 21.41+ 22.62+ 21.92+ 21.56+ 21.50+ 21.68+ 21.72+ 22.26+ 22.09+ 21.70+ 21.83+ 21.69+ 21.51+ 22.11+ 22.93)/30
| 21.6833-21.8177=-0.1344 감소 |
실험 안 해본 건 이제 '병목' 뿐인데, 512x512 그냥 돌릴 때는 별 무리 없으니 무거운 거로 테스트해야 할 듯.
512x512. CFG 9. steps 20. EerieOrange.25_BasilFixed. 13토큰+8토큰. dDetailer