Hacker News 의견
  • 2008년 NVidia cudacontest 참가자로서, 인도에서 제출한 몇 안 되는 사람 중 한 명으로 BlackEdition Card 참가상도 받은 경험을 바탕으로 내가 따라온 방법 공유함

    • NVidia CUDA Programming Guide 참고
    • NVidia에서 배포한 CUDA Programming 관련 도서 활용(developer.nvidia.com/cuda-books-archive 참조)
    • 기존 구현 기반으로 작은 프로그램부터 작성(강력한 C 언어 구현력 필수이므로 필요하다면 복습 권장)
    • 필요한 Toolchain, 컴파일러 설치 및 작업용 하드웨어 확보 가정
    • Github의 CUDA 프로젝트 코드 분석 및 최신에는 LLM 활용해서 코드 설명 요청 가능
    • 작지만 병렬처리 기반 프로그램부터 점차 확대
    • 1~2개월 차분히 진행하면 충분히 CUDA 프로그래밍 시작 가능
    • 요즘은 2007/08년보다 자료와 리소스가 풍부한 환경
    • 6~8주 학습 계획 수립 후 실행 추천
    • 언제든 질문 남기면 도울 수 있는 부분 최대한 안내 가능
      • 필요한 하드웨어 관련해서 구체적으로 궁금함. 5년 전쯤 나오 nvidia 그래픽카드만 있으면 충분한지, 아니면 더 특별한 사양이 필요한지 질문
      • 어떤 개발 환경을 사용하는지 궁금함. 아직도 Windows가 CUDA 주 개발 환경인지 확인 원함
  • Leela Chess Zero의 CUDA 코드 직접 살펴보니 이해할 만한 수준이었음

    • 당시 Leela는 transformer 대신 DCNN 구조를 사용했는데, fast.ai 영상 통해 DCNN 기초 쉽게 배움
    • Transformer는 더 복잡해 아직 학습 시작을 못함
    • CUDA 언어 자체는 C++ 기반이므로 C++ 경험 있으면 어렵지 않게 접근 가능
    • 다만 CUDA 개발자가 되고 싶다면 AI 프로그래밍 수준까지 도달 필요성 큼—AI는 CUDA보다 훨씬 깊고 방대한 영역이라 많은 시간과 실전 경험 필요
    • 그래도 실력 갖추게 되면 시장 수요 매우 높음
    • fast.ai 영상 강력 추천
    • 게임 분야라면 3D 그래픽스까지 얘기가 이어지는데, 최근은 훨씬 더 복잡해진 상황이라 입문 경로를 모르겠음
      • CUDA 개발자로 구직하는 게 현재 다른 소프트웨어 엔지니어 분야에 비해 부담이 적은지 질문. 현재 Java 미들웨어 개발자로서 CUDA와 AI 쪽이 커리어 전환에 좋을 것 같다는 의견
      • 이 코드가 여기 맞는지 확인 요청 및 두 가지 초보 질문
        • 왜 C++/CUDA를 직접 썼는지, 단순히 pytorch나 tensorflow로는 Leela 학습 속도가 부족한 건지
        • 그리고 tensorflow 코드도 있는데 그 이유에 대한 궁금증
  • 돈이 동기라면 HPC 및 수학적인 영역은 패스 추천

    • 해당 분야는 박사급이 아니면 실력이 아무리 좋아도 관심 받기 어려움
    • 진짜 돈이 되는 역량은 PTX, nvcc, cuobjdump, Nsight Systems, Nsight Compute 등 툴 마스터, 그리고 CUTLASS 같은 오픈소스 코드베이스 분석
    • 관련 실전 노트 참고 추천
    • 무엇보다 HN에만 머물지 말고 진짜 개발자 모여 있는 discord gpu mode 커뮤니티 참여 권장
      • 멋지고 실제적이지만 매우 틈새 분야로 보임
      • 진입 자체가 어려우며 게임 산업, 드라이버 등 한정된 분야에서만 쓰임
      • 처음부터 바로 그 단계까지 가려면 상당한 재능 필요성 언급
  • gpumode.com 리소스 및 디스코드 커뮤니티 수개월 동안 공부 거리를 충분히 제공

    • Programming massively parallel processors 책
    • nvidia cuda 공식 문서는 매우 포괄적
    • GPU-Puzzles도 도전 추천
      • ThunderKittens flashattention-2 예시 코드 보며 말로 설명하기 어려운 코드 복잡성 느낌
      • 이런 퍼즐은 '승자 독식' 구조라 실질적인 성취 차이는 1% 이내이며, 실습 자체가 큰 의미 없다는 생각
  • 학습 범위 쪼개서 접근성 높이기 추천

      1. CUDA 자체(프레임워크/라이브러리/추상화 레이어) 학습
      1. 고성능 컴퓨팅 기본(이것은 GPU, Nvlink 개념 넘어서 HPC 아키텍처 전반에 통용)
      1. 응용 분야 특화(Transformer면 Torch, Tensorflow 등 최신 고수준 추상화에서 출발)
    • 실제 CUDA 마스터 원한다면, 대규모 병렬처리 프로그래밍 원리 체험과 이해가 핵심이며 상당 부분 이식 가능한 스킬
      • 전직 GPU 개발자로서 나 역시 같은 조언, 특히 2번과 3번 강조
      • 취업 목표에 따라 달라지겠지만, 정말 필요한 것은 CUDA 라이브러리(cuDNN, cuBLAS, cuFFT 등) 경험일 수도 있음
      • 병렬 프로그래밍 원리 이해가 무엇보다 우선
      • 이 접근법이 정답이며, 2번 없이 1번부터 바로 배우면 더 큰 혼란만 초래
      • 추천 도서 안내
  • 개인적인 CUDA 학습 과정 경험 공유

    • 체계적이진 않으나 학계 및 연구에 도움된 방식
    • 박사 프로젝트 때문에 CUDA 직접 학습 필요
    • 연구실 내에 경험자 전무하여 NVIDIA 기본 과정(Getting Started with Accelerated Computing with CUDA C/C++ 및 python 버전)으로 개념 기초 익힘
    • 공식 튜토리얼 외 실제로는 시행착오 중심 학습 많았음
    • 온라인 튜토리얼, 책 활용했으나 함수나 API가 금방 바뀌어 구버전/신버전 혼동 많고, 내 GPU와 실 환경의 호환성 이슈까지 신경 써야 했음
    • 가장 어려웠던 점은 대부분 시간을 디버깅(생각보다 느린 원인 추적) 및 도구(예: "compute-sanitizer", Nsight) 사용에 쏟았던 부분
    • 조급해하지 말고, CPU에서 동작하는 간단한 프로젝트를 CUDA로 포팅 후 benchmark하면서 최적화 경험 쌓기 추천
    • 최적화는 맨 마지막에, 일단 올바른 동작 구현을 우선시
    • 동작은 느려도 메모리 손상 없는 커널이 최적화된 커널보다 더 가치 있음
      • 비슷한 박사과정 경험 공유—flashrnn 실습 결과물
      • 기본 원리와 GPU 구조 이해했다면 추천하는 워크플로우
        1. 커널 테스트 가능한 환경 세팅, 상위 레벨 언어로 된 Baseline과 비교
        2. 급한 프로젝트 없으면 기존 유명 문제(MatMul 등) 복습 또는 재구현—모든 케이스 다 하려 하지 말고 기능별로 집중
        3. 점진적으로 복잡도 높이기—루프, 그리드 병렬화, 전역/공유/레지스터 메모리 차례로 사용, 단순 행렬곱에서 TensorCore(MMA)까지 확장
        4. CUDA C Programming Guide 반복 탐독—실습하면서만 제대로 체득
        5. CUTLASS, ThunderKitten 등 상위 추상화도 케이스 따라 추천, JAX/Torch 환경이면 triton 우선 활용
      • PTX까지 마스터하려면 시간은 더 오래 걸리지만 실전에서 몸으로 익히는 과정 강조
      • CUDA 성능 디버깅 고통에 깊이 공감
  • 고등학생에게 CUDA 가르칠 때 활용한 자료 소개—혼자 전체 마스터엔 부족하지만 첫 시작에 도움이 되는 강좌

  • 아직 써보진 않았지만 꽤 괜찮아 보여서 추천하고 싶은 leetgpu.com 플랫폼

  • CUDA 엔지니어 채용하는 직무, 포지션, 기업군에 대한 현업 의견 요청

    • 현재는 많은 회사가 PyTorch처럼 CUDA 기반 라이브러리를 이용하지만, Native CUDA 개발 자체가 많은 회사에 필요한지 모르겠음
    • 직접 CUDA 중심으로 일하는 조직이나 역할 발굴을 기대
      • 우리 팀의 경우, 지리정보(geospatial) 데이터 분석에 CUDA 직접 활용
      • slippy map 타일을 래스터화하고 GPU로 래스터 요약 처리
      • 대부분 픽셀 단위 독립적 처리라 GPU에 적합
      • 행 단위로 요약 병렬처리 후 마지막에 모아서 처리
      • 다만 GPU로 데이터 복사 부분이 현재 병목
  • 시대 변화에 맞춰, Claude 등 LLM에 질문해서 결과 코드와 설명 한꺼번에 받는 방법 활용

    • 2025년엔 이렇게 해도 통할 수 있지만, 2026년은 한 단계 더 요구할 것이라는 의견