일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- DRAM
- kubernetes
- Compression
- C++
- stl
- POD
- dnn
- nvidia
- jhVM
- FPGA
- 딥러닝
- 양자역학의공준
- quantum_computing
- Qubit
- sycl
- deep_learning
- HA
- cloud
- jhDNN
- SpMM
- CuDNN
- flash_memory
- CUDA
- 클라우드
- GPU
- convolution
- Semiconductor
- 반도체
- 쿠버네티스
- 반도체기초
- Today
- Total
목록CUDA (7)
Computing
이전글 2022.07.22 - [Parallel Computing/개념] - NCCL 개념 및 Ring 기반 집합 통신 최적화 이전 글에서 NCCL[1]에 대한 기본 개념에 대하여 정리하였다. 이번 글에서는 NCCL을 직접 설치해보고 NCCL API를 사용하여 행렬곱을 구현해 보고자 한다. NCCL 설치 NCCL[Nickel]은 NVIDIA에서 배포한 GPU간 최적화된 집합 통신(collective communicatio) library이다. 여러 GPU간의 데이터 전송 관련 primitives를 구현한 것으로, 가속화(최적화)된 GPU간의 데이터 통신 구현에만 초점을 맞춘 library이다. 이를 통해 NVIDIA는 쉬운 multi-GPU 애플리케이션 개발을 지원하고자 한다. NCCL은 library이..
NVIDIA TensorRT는 "A high-performance deep learning inference SDK for production environments" 이다. 즉 실제 딥러닝이 배포되는 환경에서 NVIDIA GPU를 이용해 딥러닝 추론을 가속 & 최적화 할 수 있는 SDK이다. 이번 포스터에서는 빠르고 효율적인 추론만을 위해 설계된 TensorRT에 대해서 정리해보고자 한다. TensorRT가 도입된 배경 및 간략한 소개 딥러닝 네트워크의 정확도 향상을 위해 딥러닝 네트워크가 깊어지고 더 많은 parameters를 가지면서, 네트워크 추론을 위한 연산량은 계속 증가하고 있다. 연산량의 증가는 곧 긴 추론 시간, 많은 메모리 사용, 많은 전력 사용을 의미할 것이다. 음성 인식, 번역, 자율..
cuDNN cuDNN 8.0 부터 도입된 cuDNN backend API는 network 생성과 execution을 분리하여 성능상의 이점을 가져온다. 프로그래머는 코드 상에서 미리 deep learning primitives들의 graph(network)를 선언한다. 빌드 과정에서 graph는 최적화되며, 주로 operation fusion을 예로 든다. 컴파일 단계에서 operation(kernel)들을 하나의 operation로 만들어 최적화하는 기법인데 kernel launch overhead를 줄일 수 있을 뿐만 아니라, 불필요한 메모리 I/O도 줄일 수 있다. 이러한 cuDNN backend API는 CUDA Graphs를 기반으로 만들어졌다고 한다. 이번 포스터에서는 [1], [2], [3]..
Compressed Sparse Row Format SpMM - 2 : Sparse Matrix Representation 이전 포스터에서 sparse matrix가 무엇인지를 정의하고 왜 필요한지를 알아보았다. SpMM - 1 : Introduction Sparse Matrix Multiplication Matrix multiplication은 우리가 흔히 아는 다음 그림과 같은 행렬곱.. computing-jhson.tistory.com 저번 포스팅을 통해 sparse matrix를 저장하기 위한 다양한 형식을 배웠으며, 오늘은 CSR, Compressed Sparse Row format을 어떻게 구현하는 지에 대하여 정리할 것이다. 특히 [1]를 참고하여, GPU 디바이스를 통한 CSR 변환 가속화..
cuBLAS 소개 cuBLAS[1]는 NVIDIA CUDA runtime에서 돌아가는 BLAS를 구현한 library이다. BLAS는 Basic Linear Algebra Subprograms의 약자로 일반적으로 많이 사용되는 선형 대수의 식을 정리한 스펙(speification)[2]이다. Vector-vector 연산, Matrix-vector 연산 Matrix-matrix 연산 등의 많이 사용되는 선형 대수를 표준화한 것으로 입출력과 루틴을 정의해놓았다. BLAS 스펙을 구현한 예로는 cuBLAS(NVIDIA), Intel MKL(Intel), clBLAS(Open source), OpenBLAS(Open source) 등이 있는데, 선형 대수는 많은 애플리케이션에서 사용되기에 많은 accelera..
이전 포스터 https://computing-jhson.tistory.com/15 CUDA PTX - 1 : Introduction PTX (or PTX ISA) 이 포스트는 CUDA PTX (Parallel Thread Execution)에 대하여 정리한다. 다음 자료[1]를 참고하였다. CUDA PTX는 a low-level parallel thread execution virtual machine and instruction set a.. computing-jhson.tistory.com Inline PTX Assembly 저번 포스터에서 간단하게 PTX에 대해 소개하였다면, 이번 포스터에서는 NVIDIA Inline PTX Assembly 공식문서[1]를 정리해보고자 한다. NVIDIA는 PTX ..
PTX (or PTX ISA) 이 포스트는 CUDA PTX (Parallel Thread Execution)에 대하여 정리한다. 다음 자료[1]를 참고하였다. CUDA PTX는 a low-level parallel thread execution virtual machine and instruction set architecture (ISA)를 의미한다. .cu file을 컴파일 해서 나오는 GPU를 작동 시키는 ISA라고 생각할 수 있다. nvcc는 CUDA kernel code를 PTX instruction으로 컴파일한다. 컴파일된 PTX instruction은 GPU driver 내에 있는 또 다른 compiler에 의해 binary code로 번역되어 GPU를 작동시킨다. ISA를 공개한다는 것은 ..