AMD, CDNA 4 아키텍처로 머신러닝 성능 강화
AMD는 최근 컴퓨팅 중심 GPU 아키텍처인 CDNA 4를 발표했습니다. 이 새로운 아키텍처는 CDNA 3에 대한 중대한 업데이트로, 저정밀 데이터 타입의 행렬 곱셈 성능을 크게 향상시키는 것을 목표로 합니다. 이러한 연산은 기계 학습 작업에서 중요한 역할을 하는데, 이 작업들은 매우 낮은 정밀도의 데이터 타입을 사용하여도 충분히 정확한 결과를 얻을 수 있기 때문입니다. 동시에, CDNA 4는 벡터 연산과 같은 더 널리 적용되는 작업에서도 AMD의 우위를 유지하기 위해 노력하고 있습니다. CDNA 4는 대부분 CDNA 3와 동일한 시스템 수준 아키텍처를 공유합니다. 이 아키텍처는 AMD가 CPU 제품에서 성공적으로 사용했던 칩릿(chiplet) 설계와 유사한 구조를 채택하고 있습니다. Accelerator Compute Dies (ACD, XCD라고도 함)는 CDNA Compute Units를 포함하며, AMD의 CPU 제품에서 Core Complex Dies(CCD)와 비슷한 역할을 합니다. 8개의 XCD는 4개의 기본 칩 위에 배치되며, 각 기본 칩은 256MB의 메모리 사이드 캐시를 구현합니다. AMD의 Infinity Fabric는 시스템 전체에서 일관된 메모리 접근을 제공하며, 여러 칩으로 구성될 수 있는 시스템에서도 이 기능이 작동합니다. MI355X는 CDNA 4를 장착한 최신 GPU로, MI300X에 비해 Compute Unit(CU) 수가 약간 줄었지만, 높은 클럭 속도로 인해 성능 차이는 크게 좁혀졌습니다. MI355X는 NVIDIA의 B200과 비교할 때, 더 큰 GPU 크기와 더 많은 기본 구성 요소를 갖추고 있지만, NVIDIA는 전통적인 단일 칩 설계에서 멀티-칩 설계로의 전환을 통해 경쟁력을 확보하고 있습니다. 그러나 AMD의 칩릿 설계는 훨씬 공격적이며, CPU 설계에서 경험한 성공적인 스케일링을 GPU에서도 재현하려고 합니다. CDNA 3는 NVIDIA의 H100에 비해 벡터 처리량에서 큰 우위를 보였으나, 기계 학습 작업에서는 복잡한 문제가 있었습니다. NVIDIA는 잘 성숙된 소프트웨어 생태계와 행렬 곱셈 처리량에 집중한 텐서 코어(tensor cores) 덕분에 MI300X에 가까운 성능을 내곤 했습니다. 특히, H100가 VRAM 용량을 초과하는 경우 AMD의 MI300X가 큰 우위를 보였지만, 기계 학습 작업에서는 개선 여지가 있었습니다. CDNA 4는 저정밀 데이터 타입에 특화된 행렬 곱셈 성능을 향상시키기 위해 실행 단위를 재조정했습니다. 많은 경우에서 CU 당 행렬 처리량이 두 배로 증가하여, CDNA 4 CU는 NVIDIA의 B200 스트림 멀티프로세서(SM)와 FP6 처리량에서 맞먹는 성능을 보입니다. 그러나 NVIDIA는 여전히 16비트 및 8비트 데이터 타입에서 더 강한 저정밀 행렬 처리량에 중점을 두고 있으며, B200 SM는 클럭당 처리량이 CDNA 4 CU보다 두 배입니다. AMD는 더 큰 GPU와 높은 클럭 속도로 인해 전체 처리량 우위를 유지하려고 노력하고 있습니다. 벡터 연산과 고정밀 데이터 타입에서 AMD는 MI300X의 대규모 우위를 지속시키고 있습니다. 각 CDNA 4 CU는 128개의 FP32 레인을 갖추고 있으며, FMA 연산을 포함하면 주기당 256 FLOPS를 제공합니다. MI355X의 CU 수 감소로 인해 MI300X에 비해 벡터 성능이 약간 감소했지만, NVIDIA의 Blackwell와 비교하면 여전히 높은 코어 수와 클럭 속도로 인해 큰 벡터 처리량 우위를 유지하고 있습니다. 따라서 AMD의 CDNA 라인업은 고성능 컴퓨팅 작업에서 매우 좋은 성능을 지속적으로 보여주고 있습니다. NVIDIA가 기계 학습과 행렬 연산에 중점을 두면서 이 분야에서 경쟁력 있게 운영되고 있지만, AMD의 거대한 MI355X는 다양한 데이터 타입에서 여전히 우위를 보이고 있습니다. 그러나 벡터 컴퓨팅과 관련된 가장 큰 GPU들 간의 격차는 CDNA 4의 출시로 인해 크게 줄어들었습니다. AMD GPU는 스레드 그룹 내에서 소프트웨어로 관리되는 LDS(Local Data Share)를 사용합니다. 이는 NVIDIA의 Shared Memory와 유사한 역할을 합니다. CDNA 3는 64KB의 LDS를 갖추고 있었는데, 이는 2012년부터 AMD의 GCN GPU에서 유사한 설계를 따온 것입니다. 32개의 2KB 뱅크를 갖춘 이 LDS는 32비트 폭으로, 뱅크 간 충돌이 없는 경우 주기당 최대 128바이트의 데이터를 제공할 수 있었습니다. CDNA 4는 LDS 용량을 160KB로 늘리고, 읽기 대역폭을 256바이트/클럭으로 두 배로 증가시켰습니다. GPU는 32비트 요소를 기본적으로 처리하므로, AMD가 뱅크 수를 두 배로 늘려 대역폭을 증가시켰을 가능성이 있습니다. 이 경우 각 뱅크의 용량은 2.5KB가 될 것입니다. 다른 가능성은 뱅크 수를 80개로 늘리고 뱅크 크기를 2KB로 유지하는 것이지만, 이는 뱅크 선택을 복잡하게 만들 가능성이 높아서 덜 가능합니다. 64개의 뱅크를 가진 LDS는 64개의 웨이브프론트 접근을 자연스럽게 처리할 수 있으며, 주소 비트의 하위 집합을 사용하여 간단한 뱅크 선택이 가능합니다. LDS 용량 증가는 소프트웨어가 실행 단위에 더 가까운 위치에 더 많은 데이터를 유지할 수 있게 해줍니다. 커널은 LDS 용량 제약으로 인해 점유율이 낮아지는 것을 걱정하지 않고 더 많은 LDS 용량을 할당할 수 있습니다. 예를 들어, 16KB의 LDS를 할당하는 커널은 CDNA 3 CU에서 4개의 워크그룹을 실행할 수 있었지만, CDNA 4에서는 10개의 워크그룹을 실행할 수 있습니다. 소프트웨어가 LDS를 활용하려면 데이터를 명시적으로 LDS로 이동해야 하는데, 이는 벡터 레지스터 파일을 통과하지 않고 커널이 데이터를 LDS로 복사할 수 있는 GLOBAL_LOAD_LDS 명령을 통해 가능합니다. CDNA 4는 이 명령을 확장하여 레인당 최대 128비트의 데이터 이동을 지원합니다. 이는 CDNA 3에서 레인당 32비트의 데이터 이동을 지원하는 것과 비교됩니다. CDNA 4는 또한 행렬 전치(transpose)를 지원하는 LDS 명령을 도입했습니다. 행렬 곱셈은 한 행렬의 행 요소와 다른 행렬의 열 요소를 곱하는 작업을 포함하는데, 이는 데이터가 행 우선 또는 열 우선 순서로 배열되어 있는지에 따라 불효율적인 메모리 접근 패턴을 생성할 수 있습니다. 행렬 전치는 이 불편한 행-열 연산을 더 자연스러운 행-행 연산으로 바꾸어주며, AMD의 아키텍처에서는 LDS가 이미 뱅크 출력을 레인으로 매핑할 수 있는 크로스바(swizzle)를 가지고 있어 이를 처리하기에 적합합니다. 심지어 LDS 용량이 증가한 후에도, AMD는 GPU 코어 내부에 저장할 수 있는 데이터 양이 NVIDIA에 비해 여전히 적습니다. NVIDIA의 Blackwell SM은 256KB의 스토리지를 L1 캐시와 Shared Memory로 분할하여 사용할 수 있으며, 최대 228KB를 Shared Memory로 할당할 수 있습니다. 164KB의 Shared Memory를 할당하면, NVIDIA는 여전히 92KB의 L1 캐싱 용량을 유지할 수 있습니다. CDNA 4는 CU당 32KB의 L1 벡터 캐시를 갖추고 있지만, AMD의 높은 CU 수로 인해 전체 GPU에는 40MB의 LDS 용량이 있습니다. NVIDIA의 B200은 최대 228KB의 Shared Memory 할당으로 전체 GPU에 약 33MB의 Shared Memory 용량을 갖습니다. MI355X는 MI300X와 유사한 시스템 수준 아키텍처를 유지하면서 몇 가지 향상을 도입했습니다. L2 캐시는 "변경된 데이터를 쓰기 되돌리고 해당 라인의 사본을 유지"할 수 있습니다. "변경된" 데이터는 쓰기 되돌리기 캐시에서 수정되었지만 하위 메모리 시스템으로 전파되지 않은 데이터를 의미합니다. 변경된 라인이 새로운 데이터를 수용하기 위해 추방될 때, 그 내용은 다음 레벨의 캐시나 DRAM으로 되돌려집니다. AMD는 메모리 시스템의 부하가 낮을 때 쓰기 대역폭을 기회적으로 활용하거나, 시스템 전반에서 다른 스레드가 읽을 가능성이 높지만 곧 수정될 것으로 예상되지 않는 데이터를 쓰기 되돌리기로 전환하는 방법을 연구할 수 있습니다. MI355X의 DRAM 시스템은 HBM3E로 업그레이드되어, 전작 MI300X에 비해 대폭적인 대역폭과 용량 향상을 제공합니다. 이로 인해 AMD는 NVIDIA 경쟁 제품에 비해 여전히 우위를 유지하고 있습니다. NVIDIA의 B200 역시 HBM3E를 사용하지만, 180GB의 용량과 7.7TB/s의 대역폭에 비해 MI355X는 288GB의 용량과 8TB/s의 대역폭을 제공합니다. H100가 DRAM 용량을 초과하는 경우, MI300X는 NVIDIA의 H100에 비해 큰 우위를 보였으며, AMD는 이러한 우위를 유지하기 위해 노력하고 있습니다. HBM3E의 높은 대역폭은 MI355X의 연산 대 대역폭 비율을 향상시키는 데 도움이 됩니다. MI300X는 FP32 FLOP당 약 0.03바이트의 DRAM 대역폭을 제공했지만, MI355X에서는 이 비율이 0.05로 증가합니다. Blackwell은 FP32 FLOP당 약 0.10바이트의 DRAM 대역폭을 제공합니다. NVIDIA는 Blackwell에서 마지막 레벨 캐시 용량을 증가시켰지만, AMD는 여전히 큰 캐시에 더 의존하고 있으며, NVIDIA는 DRAM 대역폭에 더 의존하고 있습니다. CDNA 2와 CDNA 3는 전작에 비해 혁신적인 변화를 가져왔지만, CDNA 4의 변화는 상대적으로 제한적입니다. MI355X는 Zen 3에서 Zen 4로의 전환과 유사하게, 유사한 칩릿 배열을 유지하면서 개선된 버전의 컴퓨트와 I/O 칩릿을 교체했습니다. AMD는 주요 전략을 변경하지 않고 CDNA 3의 성능을 조정하는 데 시간을 보냈습니다. fewer, higher-clocked CUs는 활용하기가 더 쉽고, 증가된 메모리 대역폭은 활용도를 높일 수 있습니다. 높은 행렬 곱셈 처리량은 AMD가 기계 학습 작업에서 NVIDIA와 경쟁할 수 있도록 돕습니다. 이번 세대에서 AMD의 접근 방식은 NVIDIA와 유사한 면이 있습니다. NVIDIA의 Blackwell SM은 벡터 실행 측면에서는 Hopper와 거의 동일하지만, 행렬 측면에서는 개선을集中于. NVIDIA는 과거 몇몇 GPU 세대가 성공적이었음을 인식하고, 자신들의 성공 공식에 충실한 전략을 취했습니다. AMD는 CDNA 3에서 성공적인 공식을 찾아냈다고 생각할 수 있으며, MI300A는 2025년 6월 TOP500 리스트에서 가장 높은 순위의 슈퍼컴퓨터를 구동하고 있습니다. 성공을 바탕으로 하는 전략은 안전하고 보람찬 것이 될 수 있으며, CDNA 4는 이러한 접근 방식을 바탕으로 성능을 더욱 향상시키기 위한 노력을 기울이고 있습니다. 업계 전문가들은 AMD의 CDNA 4 아키텍처가 기계 학습 및 고성능 컴퓨팅 작업에서 NVIDIA와의 경쟁력을 더욱 강화할 것으로 기대하고 있습니다. AMD의 칩릿 설계는 GPU 스케일링에 대한 그들의 성공적인 경험을 반영하며, 특히 벡터 연산에서 NVIDIA에 큰 우위를 제공합니다. 그러나, NVIDIA가 기계 학습 작업에 대한 강한 중점을 유지하면서, 이 분야에서의 격차는 계속해서 존재할 것으로 보입니다. AMD는 MI300A와 MI300X의 성공을 바탕으로 CDNA 4를 통해 이러한 강점을 유지하려는 전략을 취하고 있으며, 이를 통해 GPU 시장에서의 입지를 더욱 공고히 할 것으로 예상됩니다.