윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT
CPU 마켓 셰어

AMD vs Intel 에서 시장 점유율(Market Share)를 보려면 AMD vs Intel Market Share를 보면 된다.

사용자 삽입 이미지

시장 점유율. 출처: https://www.cpubenchmark.net/market_share.html


예전 젠3 5000 번대가 출시된 2021.Q1 이 50.5% 으로 AMD 의 전성기였다. 2006년 Q1의 53.9% 가 최고였지만, 2006년 Q3 에 인텔에서 Core2 시리즈를 발매한 이후 계속 내리막길이었다가, Ryzen 시리즈를 발표한 2016.Q3 부터 반등하기 시작한다. 지금은 잠시 주춤해진 시기.

라이젠 화이팅!
글쓴시간
분류 기술,IT/스테이블 디퓨전
Stable Diffusion WebUI 4K 이미지 생성

사용자 삽입 이미지

nVidia 드라이버 업데이트로 언제부턴가 VRAM 이 부족하면 시스템 메모리의 50%까지 가져와 사용하도록 변경되었다.

이런 변경사항때문에 4K 로 바로 업스케일 가능한지 테스트해보았다.

※ 테스트 사양

메모리: VRAM 12GB, SYSTEM RAM 32 GB
SD WebUI: v1.7.0, "--xformers --no-half-vae" 옵션

※ 테스트

① 544 x 960 → 1088 x 1920 변환(Hires. fix)작업: 시간: 01m 56s, A: 8.40 GB, R: 12.71 GB, Sys: 12.0/12 GB (100.0%)
② 544 x 960 → 1632 x 2880 변환(Hires. fix)작업: 시간: 08m 43s, A: 15.93 GB, R: 25.72 GB, Sys: 12.0/12 GB (100.0%)
③ 544 x 960 → 2176 x 3840 변환(Hires. fix)작업: 실패. > 12m

A: 캐시 제외한 비디오 메모리 사용량
R: 토치 라이브러리의 최대 메모리 사용량
Sys: 비디오 메모리 사용량/총 비디오 메모리

※ 4K 를 바로 생성하려면 시스템 메모리 64GB 는 되어야 한다고 예상된다. 지금은 그냥 Extra 탭에서 업스케일링 하고 있다. 조만간 64GB으로 업그레이드할 생각이긴 하다.

※ 실패시에는 아래와 같은 문구가 나왔다. 마지막단계(생성 다 끝나고 VAE 사용하는 단계)에서 오류난다.

OutOfMemoryError: CUDA out of memory. Tried to allocate 7.97 GiB (GPU 0; 12.00 GiB total capacity; 18.51 GiB already allocated; 0 bytes free; 18.54 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Time taken: 12 min. 41.4 sec.

A: 20.55 GB, R: 22.88 GB, Sys: 12.0/12 GB (100.0%)

메시지의 내용은 7.97GiB 할당하다가 오류났고 이걸 해결하려면 결과적으로 7.97GiB 메모리가 더 필요하다는 의미다. 최소 VRAM 을 8GB 증설하던가, 시스템 메모리를 16GB 증설하던가 해야 한다.

※ 테스트에 사용한 이미지는 아래와 같다.

사용자 삽입 이미지

원본


사용자 삽입 이미지

Hires fix 2배


사용자 삽입 이미지

Hires fix 3배


사용자 삽입 이미지

Extra 2배


사용자 삽입 이미지

Extra 3배


사용자 삽입 이미지

Extra 4배

글쓴시간
분류 기술,IT
AMD Ryzen™ 7 PRO 4750G 메모리 오버클러킹

DDR4 메모리 오버클러킹을 했다. 결과적으로는 DDR4-4000 까지 무리 없이 되었다. tCL 은 28으로 되었다.

메모리 오버클러킹하려 한 목적이 사용하고 있는 CPU 의 인피니티 패브릭 인터커넥트의 클럭을 올리기 위함이었다. 그래서 tCL 값은 따로 설정하지 않고 AUTO 로 세팅해 놓고 진행했다. tCL 값 줄인다고 해서 그다지 빨라지는것도 아니고 말이다.

즉 메모리 클럭만 4000MHz 으로 설정하고 다른 메모리 관련 설정은 모두 자동으로 놓았다. 전압도 그대로 두었다.

- 사용한 메모리는 삼성 DDR4-2666V, 16GB, 2Rx8, D다이이다.

사용자 삽입 이미지

사용자 삽입 이미지

- 사용한 CPU는 AMD Ryzen™ 7 PRO 4750G, 마더보드는 ASUS B550M-A 이다. 마더보드의 바이오스는 최신버전을 사용했다.

- 오버클러킹 전은 아래 화면과 같다. DDR4-2666V 램을 사용하기 때문에, 그 값으로 세팅되어있는 상태다.Uncore Frequency 1333MHz, DRAM Frequency 1333MHz, tCL 19 다.

사용자 삽입 이미지

- 우선 DDR4-3200 으로 세팅하고 부팅했다. 한번에 되었다. tCL 22 으로 DDR4-3200AA 에 해당하는 세팅이다.

사용자 삽입 이미지

- DDR4-4000 으로 세팅하고 본 값. 역시 한번에 되었다. 인피니티 패브릭 인터커넥트는 2000MHz 이다.

사용자 삽입 이미지

- DDR4-4000 상태에서 MT5 를 실행해 메모리를 테스트했다. 문제 없었다.

사용자 삽입 이미지

사용자 삽입 이미지

- DDR4-4200 은 부팅 불가. 그래서 전압을 1.3으로 높여보니 부팅은 되었지만 1:1 매핑이 되지 않았다. 따라서 이보다 높게는 시도하지 않았다.

사용자 삽입 이미지


- 최종적으로 DDR4-4000 을 사용하기로 하고 벤치 및 GPU-Z 도 찍어보았다. CPU는 벤치 성능차이 없고, GPU 의 메모리 대역폭은 메모리 클럭수 올라간만큼만 좋아졌다. 대신 발열이 조금 있는 느낌이다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

- 빠릿빠릿해진 느낌. 화면 전환이 확실히 많이 빨라졌다. 그외에는 아직 크게 느끼진 못하고 있다. 어쨌든 목표한 인피니티 패브릭 클럭 2000MHz 달성이라 만족이다.

- DDR4-4000 으로 오버클럭 한 상태에서, tCL 28에서 줄이려면 메모리에 인가되는 전압을 올려야 하는데 이건 메모리 수명과도 연결되는거라 전압을 올리진 않았다. 보통 1.35V (DDR4의 표준전압은 1.2V이다) 까지는 10% 차이라 안전하지만, 그래도 전압을 올릴생각은 없었다. 어차피 tCL 값 줄인다고 성능이 비약적으로 상승하는게 아니니 tCL 을 줄이지 않고 사용중이다.
글쓴시간
분류 기술,IT
AMD Ryzen™ 7 PRO 4750G 에서 플루이드 모션 비디오(AMD Fluid Motion Video) 지원

4750G 에서 플루이드 모션 비디오를 사용하는 방법에 대해 적어놓는다. 플루이드 모션 비디오는 AMD 에서 나온 비디오용 프레임 향상 기술이다. 쉽게 말해 초당 24 프레임인 영화를 60 프레임으로 올려준다. 단순하게 올려주는게 아니기 때문에 매우 부드럽게 느껴진다.

4750G 는 최신 그래픽 드라이버를 설치해도, 공식적으로는 플루이드 모션을 지원하지 않는다. 하지만 사용하는데 이상 없다. 아래와 같이 설정하면 된다.

1. BlueskyFRC 홈페이지 최 하단의 Download 섹션에서, ZIP 파일을 다운로드해 압축을 푼다. 글을 쓰는 시점의 가장 최신 버전은 4.6.2 이다. 압축을 풀면 아래와 같은 파일이 나온다.

사용자 삽입 이미지

2. BlueskyFRCUtil.exe 를 실행해 "Enable AMD Fluid Motion Video"를 설정해주고, Rate Conversion 항목에서 원하는 프레임레이트를 체크해준다. 필자는 아래와 같이 해 주었다.

사용자 삽입 이미지

3. 팟플레이어(64비트)의 설정(F5)에서, "전역 필터 우선 순위"를 설정해준다. 아래 화면에서 "외부 코덱 추가..." 버튼을 클릭해 BlueskyFRC64.dll 파일을 선택 한 후, 최우선 사용으로 변경해주면 된다.
사용자 삽입 이미지

이후 동영상 "파일"을 플레이해주면 된다. 플루이드 모션 비디오가 실행중인지는 아래와 같은 방법중 하나로 확인해볼 수 있다.

- BlueskyFRCUtil.exe 의 Status 항목에 가서 아래와 같이 InputFrameRate 와 OutputFrameRate 가 설정한 대로라면 사용중이다.

사용자 삽입 이미지

- 팟 플레이어의 상태보기(Tab)를 보면 아래와 같이 Output: 항목에 FPS: 23 -> 60 처럼 변환된다는걸 볼 수 있다.

사용자 삽입 이미지
글쓴시간
분류 기술,IT
AMD Ryzen CPU 의 인피니티 패브릭 인터커넥트(Infinity Fabric Interconnect)와 메모리 클럭 동기화

AMD 의 Zen CPU 는 고전적인 의미의 CPU 가 아니다. SoC 라고 부른다. 칩 안에 여러가지 기능을 하는 모듈이 심어져 있다.

칩 안에는 고전적인 CPU 기능을 하는 코어 및 최대 4개의 코어를 묶은 CCX(Core CompleX) 및 CCX 2개를 묶은 CCD(Core Chiplet Die), L3 캐시, PCIe 모듈, NVMe 모듈, USB 모듈, GPU 모듈, 메모리 컨트롤러 등이 하나의 칩에 들어있다.

CPU안의 각각의 모듈을 서로 연결해주는게 인피니티 패브릭(Infinity Fabric Interconnect, 줄여서 IF)이다. 기존에 AMD 에서 CPU와 칩셋간 연결에 사용하던 하이퍼트랜스포트(HyperTransport)라는 기술과 같은 기술이다. 하이퍼트랜스포트가 2001년에 개발된건데, 이걸 성능을 향상시켜서 20여년이 지난 지금까자 사용한다는건 하이퍼트랜스포트가 얼마나 잘 설계된 기술인지, 앞서있는 기술인지 새삼 느끼게 해준다.

모든 모듈에서 메모리에 접근해야 때문에, IF는 주로 각각의 모듈과 메모리를 연결해주는 통로로 사용되고 있고, 이런 구조때문에 메모리 속도 및 메모리 컨트롤러 속도와 IF의 속도는 밀접한 관련이 있다. 가장 좋은건 메모리 속도와 IF의 속도가 같은것이고 이렇게 되면 지연이나 대기같은 작업이 없어진다. 이걸 IF 와 메모리 클럭이 1:1 동기화 되었다고 이야기 한다. (그리고 이걸 뒤집어서 이야기하면 메모리 속도가 빨라야 IF 속도가 빨라진다는 의미도 된다)

하지만 최신 메모리는 워낙 빠르기 때문에 일정한 클럭 이상으로 IF를 빠르게 할 수 없다. 르누아르 CPU 는 1:1 까지 지원되는게 IF 클럭 2266MHz 이고, 이는 DDR4-4532 과 1:1 동기화가 가능하다. 기존 3000번대 CPU 는 1900MHz 였고 DDR4-3800에 해당되는 수치다.

DDR4 메모리는 JEDEC 표준으로는 DDR4-3200 까지 나와있으니 DDR4-3800 까지 1:1동기화되는것에 대해 문제되진 않았다. 하지만 메모리 오버클러킹 할 때는 문제가 되었다. DDR4-4000 까지는 쉽게 오버클러킹 되었기 때문이다. 그래서 DDR4-3800 까지 지원되는건 아쉬움이 있을 수 밖에 없었다. 그나마 DDR4 메모리를 사용한 시스템까지는 표준 스펙으로는 모두 1:1 동기화가 가능했지만, 이후 DDR5 메모리에서는 1:1동기화가 안되고 있다. 현재 DDR5 에서는 1:2 가 일반적이다. (IF 가 1, 메모리가 2 다)

1:1 동기 되었는지 확인하는 방법은 CPU-Z 에서, Uncore Frequency 와 DRAM Frequency 가 같으면 된다.

사용자 삽입 이미지

최신 윈도에서는 WHEA (Windows Hardware Errors)를 리포트해준다. 여기에 CPU 내부 버스 오류에 대한 리포트가 있다. 무리하게 오버클럭하는 경우 내부적으로 오류가 발생하는데 이걸 확인할 수 있도록 해준다.

이중 눈여겨 볼 항목은 아래 2가지다. 이 오류값은 0이어야 한다. 이 값은 HWiNFO64 에서 "센서" 상태항목의 가장 아래에 있다. 오류가 없으면 나타나지 않는다.

사용자 삽입 이미지

CPU Bus/Interconnect Errors
CPU Cache L1 Errors

----

AMD Ryzen™ 7 PRO 4750G 메모리 오버클러킹