일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CuDNN
- 양자역학의공준
- jhVM
- convolution
- DRAM
- kubernetes
- POD
- cloud
- FPGA
- Semiconductor
- 반도체
- 반도체기초
- 딥러닝
- CUDA
- stl
- 쿠버네티스
- dnn
- sycl
- GPU
- flash_memory
- Qubit
- 클라우드
- jhDNN
- Compression
- C++
- deep_learning
- quantum_computing
- SpMM
- HA
- nvidia
- Today
- Total
목록전체 글 (143)
Computing

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)라는 원판에 데이터를 저장하고 읽어온다. 하드디스크에서는 원하는 주소의 데이터에 접근하기 위해서는 플래터를 회전시켜 해당 주소로 헤드를 옮겨야 접근가능하다. 따라서 헤드의 위치에 따라 메..

이전 포스터에서 FPGA 프로그래밍의 전반적 개념에 대해서 정리하였다. FPGA Design Concepts - 1 : Overview High Level Languages for FPGA Programming Intel ® oneAPI DPC++ FPGA Optimization Guide[1]를 참고하여 FPGA 기본 design concepts을 정리하고자 한다. 일반적으로 FPGA를 프로그래밍하는 방법은 Verilog나 V.. computing-jhson.tistory.com 오늘은 FPGA architecture의 개별 building blocks에 대하여 정리하고자 한다. 다음 강의자료 [1], [2], [3]를 참고하였다. Adaptive Logic Module (ALM) Configurabl..

High Level Languages for FPGA Programming Intel ® oneAPI DPC++ FPGA Optimization Guide[1]를 참고하여 FPGA 기본 design concepts을 정리하고자 한다. 일반적으로 FPGA를 프로그래밍하는 방법은 Verilog나 VHDL과 같은 하드웨어 기술 언어(HDL)를 이용하여 프로그램 로직을 구현하는 것이다. 최근에는 OpenCL, SYCL 등 high level language를 사용해서 좀 더 쉽게 FPGA 프로그램 개발이 가능해지고 있으며, 이러한 방식이 대세가 되고 있다고 한다. HDL을 사용하지 않고 high level language를 사용하여 FPGA 프로그램을 구현할 경우 하드웨어를 잘 몰라도 쉽게 구현할 수 있다. S..

이전 포스터에서 sparse matrix가 무엇인지를 정의하고 왜 필요한지를 알아보았다. SpMM - 1 : Introduction Sparse Matrix Multiplication Matrix multiplication은 우리가 흔히 아는 다음 그림과 같은 행렬곱을 의미한다. Matrix multiplication(MM) 연산은 기존의 선형대수 관련 문제 계산, 3D graphics 뿐만 아니라.. computing-jhson.tistory.com Matrix Representation in Memory 메모리에 행렬을 저장할 시, 행렬을 2차원 array로 저장하면 array의 인덱스가 각 행렬성분의 위치, array의 값이 각 행렬성분의 값을 나타낼 수 있어서 편리하다. 이때 sparsity가 0..