CUDA Optimizing Matrix Addition
Matrix addition을 stream을 사용해서 최적화 시키고 분석해보면서 배운것 기존 synchronous하게 matrix addition에서 DMA Controller 작업과 SM작업을 overlapping하서 최적화를 진행 하였다. 기존 default stream으로 synchronous하게 진행되는것에서 4개의 stream에 asyn...
Matrix addition을 stream을 사용해서 최적화 시키고 분석해보면서 배운것 기존 synchronous하게 matrix addition에서 DMA Controller 작업과 SM작업을 overlapping하서 최적화를 진행 하였다. 기존 default stream으로 synchronous하게 진행되는것에서 4개의 stream에 asyn...
Kernel을 실행할때 block수, thread수 정하기 Block당 thread수 정하기 Warp 단위에 맞춰서 32의 배수로 설정; 아니면 32의 나머지는 놀게 된다. (보통 256으로 설정) Block 하나의 너무 많은 thread를 배정하는 경우 SM의 shared memory, register의 공간이 부족해져...
GPU에서 thread hierachy가 왜 이리 헷갈리는지 정리하고 넘어가자 Overview Kernel 실행시, 새로운 Grid가 하나 생성되는 거야. Grid: 커널이 실행되는 공간 (kernel 실행시 Gird가 생성) Block: 여러개의 워프들의 그룹, 같은 block 내의 thread들은 Shared M...
Asynchronous Execution What is Asynchronous Concurrent Execution? Concurret Execution이 가능한 것들 Host에서의 연산 Device 연산 Data transfer Host -> Device Device -> Host ...
Basics of SIMT, Thread Hierarchy 모든 thread가 같은 kernel code를 실행하지만 고유한 thread ID가 있어서 서로 다른 데이터에 접근하여 작업을 수행 Grid > Block > Thread의 3단계 계층 구조를 갔는다. Thread: 고유한 register 존재 Block: Shared ...
Kernels Specifying kernels Code for kernel is specified using __global__ indicates to the compiler that this funciton will be compiled for the GPU Kernels are functions with a void return type. L...
FLOPS: FLoating point Operations Per Second GPU는 일반적으로 SIMD가 아닌 SIMT(Signle Instruction Multiple Thread)로 정의 된다. 한 쓰레드 그루부 내 스레드들을 하나의 제어 장치로 제어 각 쓰레드는 자신만의 제어 문맥을 가진다. 하나의 제어 장치가 여러개의 쓰레드를 제...
RNN Terminology Cell: Repeating module inside a RNN. Cell은 오직 한 단계(time step)만 처리 Hidden State: Memory of network RNN layer 구성 Stacked RNN Structure 은닉층 노드들을 연결시켜서, 과거 정보와 현재 정보를 모두...
Minikube로 간단히 k8s 찍먹해보기~ minikube는 로컬 환경에서 간단히 k8s를 구축해주는 도구이다. 간단히 단일 node로 이루어진 쿠버네티스 환셩을 만들어준다. —- k8s cluster 생성을 위해 VM, container와 같은 기반환경이 필요한데, 나는 공식 문서에서 recommand한 KVM을 이용해보려 한다. https...
Github Action 설정 기존(기본) 파일 name: "Build and Deploy" on: push: branches: - main - master paths-ignore: - .gitignore - README.md - LICENSE # Allows you to ...