| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- deep_learning
- stl
- 반도체
- 딥러닝
- convolution
- flash_memory
- CUDA
- Semiconductor
- Qubit
- kubernetes
- FPGA
- SpMM
- Compression
- 쿠버네티스
- sycl
- DRAM
- CuDNN
- dnn
- GPU
- jhDNN
- POD
- jhVM
- cloud
- C++
- nvidia
- quantum_computing
- 클라우드
- HA
- 양자역학의공준
- 반도체기초
- Today
- Total
목록2022/03 (24)
Computing
DRAM Memory System Organization 2022.03.27 - [Semiconductor/메모리반도체] - DRAM Memory Organization - 1 : 소개 이전 포스터에서 DRAM memory system의 구성에 대해서 알아 보았다. Fig 1.은 DRAM memory system을 요약한 것이다. 그림에서 보듯 DRAM system은 Channel-DIMM-Rank-Chip-Bank-Array의 순서로 hierarchically 구성된다. 이렇게 복잡한 계층 구조를 가지고 설계된 이유는 memory wall (CPU와 메인 메모리 간의 데이터 전송 병목에 의한 성능 향상 한계)를 극복하기 위해, DRAM 속 데이터를 병렬로 접근할 수 있도록 하기 위해서 이다. 오늘은 이..
GPU 프로그램이 빠른 이유 GPU는 대표적인 manycore processor들 중 하나[1]로, 4개 혹은 8개의 core를 가지는 일반 CPU와는 다르게 수 천개의 core를 가지고 있다. 이렇게 많은 core를 이용하여 각 데이터를 독립적으로 계산하는 data parallellim을 달성한다. Fig 1.는 CPU와 GPU의 하드웨어 디자인 방향이 어떻게 다른 지를 보여준다. 초록색 영역은 ALU (arithmetic logic unit)으로 실제 계산이 이뤄지는 영역이며, 각 ALU(초록 박스 하나하나)는 독립적으로 instruction stream(thread)을 계산할 수 있다.. 노란색 영역은 Control logic 영역으로 명령어를 해석하고 instruction 실행 최적화를 계산한다...
Deep Learning Challenge 딥러닝 기술이 점점 더 어려운 문제를 해결하기 위해 사용하면서 딥러닝 네트워크의 크기가 매우 커지고 있다. 이번 포스터는 딥러닝 네트워크가 커지면서 발생하는 문제점들과 그 문제를 해결하기 위한 방법을 [1], [2], [3] 자료를 바탕으로 정리하고자 한다. 딥러닝 네트워크는 방대한 양의 parameters을 사용하면서 parameter들이 데이터의 특징을 학습하도록 한다. 딥러닝 기술을 더 복잡한 데이터의 특징을 학습하도록 하기 위해서 점점 더 많은 parameters가 사용되는 딥러닝 네트워크 구조가 제안되고 있다. 이때 어떤 문제를 충분히 잘 해결하는 최적의 딥러닝 네트워크를 찾는 것은 매우 힘들다(애초에 불가능할 수도 있다). 어떤 네트워크가 많은 수의 ..
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..
이 자료는 김태현 교수님의 양자 컴퓨팅 및 정보의 기초 강의를 바탕으로 정리하였습니다. Qubit 양자 정보를 담는 최소 단위로, 양자 컴퓨터로 계산할 때의 기본 단위[1]이다. 일반 컴퓨터에서 bit를 이용하여 정보를 표현하듯, 양자 컴퓨터에서는 qubit을 이용하여 정보를 표현한다. Bit는 0 혹은 1 둘 중 하나로만 표현될 수 있다. 하지만 양자역학의 공준 1에 따르면 양자의 상태는 a vector |ψ⟩로 표현 가능하며 시스템의 basis를 |0⟩, |1⟩이라 한다면, Eq 1로 나타낼 수 있다. 양자역학의 공준 3 코펜하겐 해석에 따르면 양자의 상태를 관측할 시, |0⟩상태 또는 |1⟩상태만을 관측할 수 있다. 이때 양자의 상태를 정확히 관측하는 것(즉, α, β를 구하는 것)은 쉽지 않다. ..
Main Memory Subsystem Fig 1.은 CPU가 어떻게 메모리에 접근하는 지를 간략히 잘 나타내고 있다. CPU는 code를 실행할 때, virtual memory address 기준으로 실행한다. Virtual address는 CPU 내의 memory management unit(MMU)에 의해서 physical address로 translate된다. Physical address를 이용해 memory controller는 main memory(DRAM)에 저장된 데이터의 실제 위치를 계산해낸다. 이때 main memory는 다음과 같은 계층 구조로 데이터 저장 시스템을 이루고 있다. Fig 2. memory system 구조도는 memory가 어떤 계층으로 구성되는 지를 보여준다. 이번..
Random Access Memory (RAM) DRAM은 Dynamic Random Access Memory이며, SRAM은 Static Random Access Memory으로 둘다 RAM의 한 종류이다. RAM은 어떤 메모리 주소에 접근(random access)하더라도 동일한 시간의 읽고 쓰기가 보장되기에 random access memory[1]라고 한다. 하드디스크와 같은 자기 디스크의 경우 데이터가 저장된 주소에 따라 접근하는 시간이 다르다. 하드디스크는 헤드(head)라는 장치를 이용해 플래터(plater)라는 원판에 데이터를 저장하고 읽어온다. 하드디스크에서는 원하는 주소의 데이터에 접근하기 위해서는 플래터를 회전시켜 해당 주소로 헤드를 옮겨야 접근가능하다. 따라서 헤드의 위치에 따라 메..