[LLM] AMD 7950X3D + RTX4090 워크스테이션 조립 그리고 C5 에러
AWS SageMaker는 매우 고가의 서비스다. 회원 가입 시 2개월 50시간의 프리티어를 사용할 수 있지만, 모델이 커질수록 크레디트 소진속도가 빨라지기 때문에 계정 널뛰기 해야 한다는 단점이 있다. 불확실한 결과에 대해 비용을 투자하기는 쉽지 않기 때문에 워크스테이션 조립을 결정했다. 이미 1년 전 StableDiffusion 활용을 위한 워크스테이션을 조립한 경험이 있기에 모든 것이 순탄하다 생각했지만.
이번에 조립한 워크스테이션은 LLM 응용 개발을 위해서다. 기본적으로 사용 중인 언어모델은 10B 급 이기 때문에 높은 컴퓨팅 파워를 필요로 했다. 랩핑은 LangChain을 사용한다. 예산이 명확하다면 SageMaker를 기반으로 확장해 나가는 게 이상적이지만, 비용 시뮬레이션 결과 1년에 1억 가까이 소비된다는 문제가 있었다. 재경을 넘기 어렵다 판단해 상대적으로 저렴하고 성능이 뛰어나면서 “손이 많이 가는” 길을 선택했다. 덕분에 파이프라인이 오피스로 내려와야 하는 문제가 생겼지만.
하드웨어 선택, 그리고 조립
사양은 1년 전과 크게 달라지지 않았다. 모델은 달라졌지만, 제조사가 제품을 단종했기 때문이며, 실질적인 스펙은 동일했다. 새로운 하이앤드급이 나오지 않은 건 아니나, 가격이 합리적이지 못했고, 앞서 조립한 워크스테이션에 훌륭한 결과가 나왔기 때문에 굳이 변화를 줄 필요가 없다 생각했다. 대략적인 스펙은 다음과 같다. 간단히 AMD 7950X3D를 X670E에 얹었고, 128GB의 메모리 그리고 4090 RTX 듀얼 구조다.
(아래 그대로 조립된 건 아님)
1년전에 조립 했을 때도 조립이 순탄하지 않았다. GPU 크기가 너무 컸던 것. 최소 확장슬롯이 9개인 케이스가 필요했다. 빅타워라 할지라도 대부분의 케이스 슬롯은 8개밖에 없다. 결국 조립 과정에서 케이스를 바꿔야 했다.
랙 타입의 케이스를 사용할 수 있는 방법도 있겠지만, 파워 때문에 선택할 수 없었다. 대부분 커스텀 케이스는 리던던트 파워가 들어가지 않기 때문에 파워가 케이스 내부로 옮겨진다. 내가 선택한 파워는 수퍼플라워 2000W 였는데, 이녀석의 파워 커넥터가 보통의것과 다르기 때문이다. 왜 2000W 파워가 필요했냐고? CPU 와 GPU 에서 이미 820W를 먹기 때문인데, 주변 기기들 까지 고려하고 파워서플라이의 동작 효율을 고려해야만 했다.
- RTX4090 – 450W x 2 = 700W
- 7950X3D – 120W x 1 = 120W
그런데 문제가 또 생겼다. 이번에 구입한 GPU 너비의 실측이 7.5cm 정도라 케이스에 들어가지 않았던 것. 다행이 기존 GPU는 높이가 낮아 혼용하기로 결정했다. = RTX4090을 듀얼로 사용하는 경우 최소 슬롯이 10개인 케이스를 선택하는 것을 권장한다.
장애 그리고 또 장애
깔끔하게 조립이 잘 되었으니 이제 운영체제만 설치하면 된다.라고 생각하는 건 오산이다. 기존 워크스테이션은 끝없는 C5 오류와 싸워야 했다. 이 문제는 대부분 메모리 시스템에 문제가 있으며 관련된 부품은 메모리와 CPU인데, CPU가 갑툭튀 한 이유는 메모리 컨트롤러가 CPU에 포함되어 있기 때문이다. UFEI에 하드웨어 정보를 갱신하기 위한 최초 부팅속도도 환장하는데, C5오류가 발생하면 화면조차 켜지지 않는다.
이 문제는 AMD, ASUS 어딜 가던 적잖게 찾을 수 있다.
- https://rog-forum.asus.com/t5/amd-600-series/x670e-hero-error-c5-can-t-post-at-all/td-p/964733
- https://community.amd.com/t5/processors/7950x3d-c5-bootup-error-memory-issue/td-p/615523
우리의 경험에 대한 결과는 메모리 문제라기보다 AMD 시스템 구조에 있다는 것. 4090이 PCI Lane 대부분을 차지하다 보니 발생하는 이슈라 판단했다. 이 문제를 해결하는 방법은 찾고 나면 의외로 간단한데.
- GPU를 모두 제거하고 메인보드만으로 부팅한다.
- GPU를 하나 설치하고 메인보드의 GPU를 비활성화한다.
- GPU를 하나 더 설치한다.
이렇게 하면 문제가 없다. 처음 설계할 때의 의도와는 조금 어긋났지만 (CPU 내장 GPU를 기본으로 사용하고 RTX4900의 모든 컴퓨팅 파워를 연산용으로 사용하려 했기에) 어쩔 수 없는 선택이었다. 하지만 이번 조립에는 d6라는 오류가 발생했다. 용산 업체에서는 이 문제가 하드웨어적 장애라 판단하고 CPU 수입처인 제이씨현, 메인보드 수입처인 STCOM 그리고 메모리 대리점에서 여러 제품을 빌려 테스틀 해 봤지만..
“이 오류가 정상입니다”
이게 말이 되나. 그럼 같은 스펙의 잘 동작하는 1년 전 조립한 워크스테이션은 뭔가. 결국 켜지지 않는 녀석을 사무실로 모시고 왔다. 잘 동작하는 하나의 클론(?)이 있으니 조합하다 보면 원인을 찾기 어렵지 않다 생각했다. 자 결론은?
- GPU를 모두 제거하고 메모리는 1개만 설치한다. (메모리가 풀뱅크면 C5 오류가 영접한다)
- GPU를 모두 제거하고 CMOS 를 리셋한다.
- 메인보드 BIOS를 업데이트 한다.
- 메모리를 모두 설치한다. (더 이상 C5 오류가 발생하지 않았다)
- GPU를 하나 설치하고 메인보드의 GPU를 비활성화한다.
- GPU를 하나 더 설치한다.
이번 케이스는 메인보드 BIOS의 문제가 결정적이었던 것으로 추정되었다. 하지만 메모리가 풀뱅크였을 때 C5오류가 발생해 아무것도 할 수 없어서 제품 자체의 불량이라 생각했지만 .. 해결되서 다행. 그나저나 이번 경우에도 내장 GPU는 사용할 수 없었다.
조립 종막
우여곡절끝에 ubuntu 설치 까지 완료했다. 과거 컴퓨터 조립하고 세팅하는 걸 즐겨했지만 어느 순간부터 인가 완제품이 편하고, 클라우드를 더 많이 사용하게 되면서 조립은 1년에 한번 할까말까인데 이렇게 까지 고생하니 앞으로는 .. 핸드메이드를 하고 싶지 않다는 생각이 강렬하게 들었다. 작업자 입장에서는 1도 이점이 없기 때문.
- 왜 GPU가 2개 필요한가? 병렬처리용은 아니다. 1기는 파인튜너가 계속 돌아가고, 실제 생성은 다른 1기에서 한다.
- RTX49090의 성능은? 기본 LoRA 에서 1024×1024 의 이미지 4개를 생성하는데 15초가 걸린다. 학습은 FHD 4장에 하루 정도 소요.
- 스토리지 구성은? RAID 1로 구성할까 고민했지만, 운영체제 및 백업용으로 구분해 사용하기로 하고 2개를 선택했다.
- CPU는 왜 이렇게 좋은 녀석이 필요한가? 후처리 가공에서 병목이 생기면 GPU가 놀게된다.
- Intel을 선택하지 않은 이유? TDP 가 절망이었다. 그렇다고 성능이 좋은것도 아니고. 가격또한 2배 가까이 되니 선택할 수 없었다.
- 다른 문제는? 2.5G LAN 에 문제가 있다. 종특이라 한다. USB LAN 을 설치했다. 2~3주에 한번 이상 끊기는데 자동 복구가 되지 않기 때문에.