Hacker News 의견
  • Intel은 GPU에 대한 많은 기술 문서를 공개하고 있음. 810/815 매뉴얼도 온라인에서 찾을 수 있음. 855/910/915/945를 제외하고는 문서화가 일관성 있게 이루어지고 있음.

  • 오픈 코어 GPU 작업을 격려함.

  • NyuziProcessor라는 또 다른 오픈소스 GPU 프로젝트가 있음. (https://github.com/jbush001/NyuziProcessor)

  • FPGA에 입문하고 싶지만, 어디서부터 시작해야 할지 파악하기 어렵고 분야 자체가 위압적으로 느껴짐.

  • 최종 목표는 LLM(Large Language Model)을 위한 가속 카드를 만드는 것임. 메모리 오프로딩 부분을 제외하고는 이 프로젝트와 유사한 부분이 많을 것임.

  • 순차적인 always 블록에서 non-blocking과 blocking 할당 연산자를 혼합하는 이유에 대해 질문함.

  • 예전에 VHDL로 비슷한 작업을 했었음. opencores라는 사이트에 다양한 오픈소스 HDL 프로젝트가 있었음. 오늘날 HPC 수준의 대규모 분산 HDL 시뮬레이터가 있는지 궁금함. 최신 GPU를 활용하여 RTL 수준 시뮬레이션을 수행하는 것이 합리적임.

  • 하드웨어 프로젝트가 오픈되는 것을 좋아함. 하지만 이것은 SIMD 코프로세서라고 주장할 수 있음. GPU가 되려면 적어도 일종의 디스플레이 출력이 있어야 함. 최근 Nvidia 등이 그래픽 아키텍처의 서버 전용 변종을 GPU로 판매하면서 용어가 다소 느슨해졌지만, GPU 설계의 "그래픽" 부분은 여전히 복잡성의 상당 부분을 차지함.

  • ALU가 하드웨어 수준에서 DIV 명령어를 직접 구현하는 것은 일반적인지 의문. 현대 CUDA 코어와 같은 곳에서 실제 명령어로 사용되는 것인지, 아니면 일반적으로 소프트웨어 에뮬레이션인지 궁금함. 실제 하드웨어 나누기 회로는 많은 공간을 차지하므로 GPU ALU에서는 기대하지 않았음. Verilog에서 "DIV: begin alu_out_reg <= rs / rt; end"라고 쓰기는 쉽지만 실리콘에서는 많은 공간을 차지함. 하지만 Verilog만 시뮬레이션하는 사람은 이를 알지 못할 수 있음.

  • 그래픽 기능을 제공하지 않는 또 다른 "GPU". 이런 것들은 다른 이름으로 불려야 한다는 의견.

  • 스레드가 병렬로 처리된다고 가정하고, 각 명령어 후에 모든 스레드가 동일한 프로그램 카운터로 "수렴"한다고 단순화했음. 실제 GPU에서는 개별 스레드가 다른 PC로 분기할 수 있어 branch divergence가 발생함. 실리콘으로 GPU를 만들기 전에 GPU 프로그래밍을 해보는 게 좋겠음. SIMD도 아님. (LED를 깜박이는 회로를 조립해 CPU를 만들었다고 주장한 사람과 동일)