RTX 4090에서 32개 GPU 스레드의 128바이트 읽기가 DRAM까지 가는 경로
- RTX 4090의 워프가 LDG.E 한 번으로 32개 레인에서 각 4바이트를 읽으면, 코얼레서가 이를 32바이트 섹터 4개, 총 128바이트 요청으로 합침
- 이 연속 4섹터 요청은 L1 캐시 라인 1개에 해당하며, 캐시 미스 시 주소 변환, 크로스바, L2 슬라이스, 메모리 컨트롤러를 거쳐 DRAM의 활성화와 열 읽기 4회까지 진행됨
- 글의 지연시간 측정 그림은 SM에서 L1까지 15ns, L2까지 127ns, 보드의 DRAM까지 255ns로 제시함
LDG.E R4, [R4.64]는 32비트 레지스터 R4와 R5에 나뉜 64비트 주소를 읽으며, 주소를 레지스터에서 가져오는 비용은 공유 메모리 로드 비교 실험에서 최대 1사이클로 측정됨- RTX 4090의 L1은 4웨이 집합 연관 캐시이며, 한 집합의 4개 슬롯 태그를 요청한 캐시 라인의 태그와 비교해 적중 여부를 판단함
Hacker News opinions
칩 제조사가 하드웨어를 단순화하고 소프트웨어 최적화에 맡기려 한 시도는 수십 년간 잘 안 됐음. 이제 AI가 커널을 꽤 빨리 미세조정하니 이번에는 단순한 하드웨어도 통할지 궁금함. TPU나 NPU가 단순한 대신 너무 제한적인지는 잘 모르겠고.
난 회의적임. 필요한 데이터가 어느 캐시에 있는지와 값이 뭔지는 실행 전에는 알 수 없어서, 명령 몇 개의 지연시간도 달라짐. 비순차 실행을 소프트웨어로 대체할 방법은 없음.
이런 글이 내가 HN에 오는 이유임. 내용의 3분의 1도 아직 못 알아듣겠는데, 더 파고들고 싶게 만듦.
모르는 용어와 약어를 하나씩 찾아보다가 좋은 글을 만나는 느낌이 제일 좋음. Copetti의 게임 콘솔 구조 글을 읽을 때도 탭 42개쯤 열고 나면 대략적인 그림은 잡히더라.
PCIe BAR를 찾으려고 Ctrl+F 했는데 없네.
이 글은 PCIe 경로가 아니라 HBM이나 GDDR 같은 GPU 메모리 경로를 다루는 글임.
5분 읽었는데도 이해가 안 됨. ELI5 버전 같은 건 없나?
컴퓨터 구조에 진짜 ELI5는 없다고 봄. Jon Stokes의 Inside the Machine부터 읽고, 그다음 SIMT로 넘어가면 됨.
아주 좋은 글이고 'What Every Programmer Should Know About Memory'가 생각남.
그 링크는 누군가 밑줄 친 PDF임. 깨끗한 원문은 people.freebsd.org의 cpumemory.pdf에 있음.
GPU마다 동작이 똑같지는 않으니, 이 측정 결과를 일반화하면 안 됨.
NVIDIA 문서가 부족해서 타이밍 실험을 한다는데, AMD ISA를 보면 되는 것 아닌가.