일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클라우드
- FPGA
- quantum_computing
- POD
- C++
- flash_memory
- DRAM
- dnn
- convolution
- 반도체기초
- 반도체
- jhVM
- CUDA
- 양자역학의공준
- deep_learning
- GPU
- cloud
- Qubit
- CuDNN
- HA
- sycl
- SpMM
- Compression
- 딥러닝
- nvidia
- jhDNN
- Semiconductor
- 쿠버네티스
- stl
- kubernetes
- Today
- Total
목록Parallel | Distributed Computing (17)
Computing
이전 포스터에서 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..
Sparse Matrix Multiplication Matrix multiplication은 우리가 흔히 아는 다음 그림과 같은 행렬곱을 의미한다. Matrix multiplication(MM) 연산은 기존의 선형대수 관련 문제 계산, 3D graphics 뿐만 아니라 딥러닝에서도 활발하게 사용되고 있는 중요한 연산이다. 특히 딥러닝에서 convolution layer나 fully connect layer 연산을 MM 연산으로 변환하여 계산하고 있으며, 매우 많은 성능상의 이점을 보이고 있다. MM 연산은 operand인 행렬이 dense인지, sparse 인지에 따라 dense matrix multiplication 또는 sparse matrix multiplication으로 나뉜다. Dense vs...
Intel DevCloud Intel® DevCloud는 CPUs, GPUs, FPGAs로 구성된 클러스터로, Intel에서 oneAPI를 활성화 시키기 위해서 공짜로 제공해주고 있다. 공식 사이트는 https://www.intel.com/content/www/us/en/developer/tools/devcloud/overview.html 이다. DevCloud 튜토리얼 - Job 생성 및 제출 https://devcloud.intel.com/oneapi/get_started/baseToolkitSamples/ Base Toolkit Samples | Intel® DevCloud devcloud.intel.com Job이란? qsub utility를 통해 PBS (Portable Batch System)..
Parallelism Parallelism은 한국어로 뭐라 번역해야 할 지 잘 모르겠지만 (병렬성?), 프로그램의 병렬화된 상태라고 생각하면 좋을 것 같다. 프로그램이 parallelism을 가진다는 것은 해당 프로그램이 병렬로 실행됨을 의미하고, parallelism을 가지는 프로그램에 대하여 일들을 어떻게 병렬로 실행하는 지에 대해서도 얘기할 수 있다. Parallelism의 종류에는 일반적으로 data parallelism, task parallelism, pipeline parallelism이 존재한다. 일반적으로 data parallelism과 task parallelism을 비교하여 설명하는데, 최근 FPGA를 공부하면서 관심을 가지고 있는 pipeline parallelism도 추가하였다. ..
프로그램 성능 높이기 Sequential 프로그램 실행 성능을 높이기 위해서 다음 같은 2 가지 접근법이 있다. Sequential program optimization : 알고리즘 고도화, 불필요한 코드 제거, 컴파일러를 통한 최적화 등등 Parallelzation : multi-core CPU, GPU, FPGA, multi node system 등을 이용한 계산 병렬처리 일반적으로 프로그램의 성능 향상시키기 위해서는 Sequential 프로그램 최적화를 먼저 진행하고, 목표 성능이 달성되지 않았다면 병렬화를 진행한다. 이때 병렬화 시 미리 어느 정도 성능 향상을 달성할 수 있는 지 예측할 수 있는 2가지 법칙이 있다. 암달의 법칙 (Amdahl's law) 일의 양이 정해졌을 때, 병렬화하면 이 일..
Merge sort 개념 다음 그림과 같이 Two pass (그림 상의 빨간색 과정과 초록색 과정)로 진행됩니다. 빨간색 과정을 Divide path, 초록색 과정을 combine path라고 하겠습니다. [Divide path] Divide path의 경우 Recursively 현재 array를 두개의 연속된 half-arrays로 분할합니다. half-array의 크기가 1이 될때까지 분할합니다. [Combine paht] Combine path의 경우 Recursively 두개의 half-arrays를 합쳐서 하나의 arrays로 정렬합니다. 이때 두 개의 half-arrays는 항상 정렬되어 있기에 두개의 half-arrays를 쉽게 정렬할 수 있습니다. (항상 정렬되어있는 이유는 귀납적으로, h..
Memory (Consistency) Model 이란 A formal specification of how the memory system will appear to the programmer, eliminating the gap between the behavior expected by the programmer and the actual behavior supported by a system.” [Adve’ 1995] Multiple threads program에서 shared data가 어떻게 작동할 지에 대한 명세. Memory consistency model에 따라 (완벽히 squential할 것인가? relaxed한 memory consistency를 허용할 것인가 등) multiple thr..
oneAPI 설치 주의* 현재 Intel oneAPI의 dpcpp은 nvidia gpu를 지원하지 않음 -> 밑의 clang++을 설치하여야 함. SYCL 프로그램 컴파일을 위한 DPC++ compiler 설치 설명 링크: https://www.intel.com/content/www/us/en/develop/documentation/get-started-with-dpcpp-compiler/top.html 다운로드 링크: https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html OS, 다운로드 방식 선택 다운로드 받은 .sh 파일 실행 GUI downloader 설명에 따라 설치 하기 DPC++ compiler 뿐만 아..