일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dependence
- multibanekd cache
- mesi
- load linked
- store conditional
- cache optimization
- pipelined
- ISA
- dynamic scheduling
- Cache
- 관계형 모델
- relational model
- branch prediction
- theta join
- transactional memory
- pipelined cache
- pipline hazards
- atomic exchange
- register renaming
- Subquery
- speculative execution
- structural hazard
- cache coherence miss
- directory based coherence protocol
- sql
- nonblocking cache
- way prediction
- moesi
- cache coherence
- sequential consistency
- Today
- Total
목록전체 글 (32)
공대생의 공부흔적
이번 글에서는 domain specific 아키텍처에 대해 알아보자. 목차DSA 소개예시 - TPU1. DSA 소개무어의 법칙(칩 내 트랜지스터 점점 더 많아짐)은 CPU, GPU에서 다음과 같은 일반적인 개선사항들을 가능하게 했다.깊은 메모리 위계, 넓은 SIMD unit, 깊은 파이프라인, 브랜치 예측, OoO 실행, speculative prefetching, Multithreading, Multiprocessing이는 아키텍처를 인식하지 않는 소프트웨어에서 성능을 뽑아내는 데 목표가 있었다.이와 달리 DSA는 domain에 specific하게 설계된 아키텍처이다. 최근에는 거의 머신러닝을 타겟으로 하지만, 주요 연산 커널을 정의할 수 있다면 어떤 응용이든 가능하다. DSA를 위한 몇 가지 가이드라..

참고: Computer Architecture: A Quantitative Approach (5th edition) - 4.4.지난 글에 이어, GPU 구조에 대해 더 살펴보고 최근의 GPU 아키텍처는 어떤지 더 알아보자.목차GPU 아키텍처 G80Memory CoalescingNVIDIA Volta1. GPU 아키텍처CUDA 쓰레드 블록스레드 블록은 GPU의 위계적 구조 조직에 대한 abstraction이다. 한 블록 내 모든 스레드는 같은 커널 프로그램을 실행하며(SPMD), 프로그래머는 블록을 선언할 수 있다. 블록 크기는 1~512개의 concurrent 스레드로 이루어지며, 블록 모양은 1차원에서 3차원까지 가능하다. 스레드는 블록 내에서 스레드 id를 가지게 되고, 스레드 프로그램은 작업을 선택..

참고: Computer Architecture: A Quantitative Approach (5th edition) - 4.1.~4.4.이번 글에서는 GPU에 대해 알아보자.목차GPU 아키텍처CUDAGEMM example1. GPU 아키텍처GPU 미리보기: multi-core, multi-threaded, SIMD-like 아키텍처프로세싱은 매우 데이터 병렬적인 과정이다. GPU는 highly multithreaded되어 있고, 긴 메모리 지연 시간을 숨기기 위해 쓰레드 스위칭을 사용한다. 또한, 그래픽스 메모리는 wide하고 높은 대역폭을 가지고 있다. 일반 목적 GPU를는 보통 이종 CPU/GPU 시스템에 사용되어 순차 코드는 CPU에서, 병렬 코드는 GPU에서 돌리는 식으로 사용된다. GPU의 프로..

참고: Computer Architecture: A Quantitative Approach (5th edition) - 4.1.~4.3.이번 글에서는 SIMD에 대해 알아볼 것이다.목차SIMD벡터 프로세서멀티미디어 SIMD ExtensionsRoofline 성능 모델1. SIMD명령어와 데이터 스트림에 따라 프로세서를 다음과 같이 분류할 수 있다. Data StreamsSingleMultipleInstruction StreamsSingleSISD- Intel Pentium 4SIMD- SSE instructions of x86MultipleMISD- 없음MIMD- Intel Xeon e5345*SPMD(Single Program Multiple Data): MIMD 컴퓨터에 대한 병렬 프로그램. 서로 다..

이번 글에서는 가상 메모리에 대해 정리해 보겠다.목차가상 메모리 기초캐시와 가상 주소페이지 테이블가상 머신1. 가상 메모리 기초메모리의 추상화 레이어는 다음과 같다.프로그램 관점: 가상 주소 공간 (0 ~ 2^n)하드웨어 시스템 관점: 물리 주소 공간 (0 ~ MaxPhysMem)OS는 프로그램의 가상 메모리를 물리 메모리로 맵핑한다.맵핑의 단위를 page, 가상 페이지와 물리 프레임 간의 맵핑을 page table, 맵핑이 존재하지 않아 OS의 개입이 필요한 경우를 page fault라 한다.가상 메모리의 필요성각 프로세스에 고립된 메모리 공간 제공서로 다른 프로세스에 isolation을 제공하여 보호되도록 한다.각 프로그램 인스턴스에 consistent한 메모리 모델 제공fine-grained pro..
참고: Computer Architecture: A Quantitative Approach (5th edition) - 5.6.이번 글에서는 일관성(consistency)에 대해 알아볼 것이다.목차Consistency란?Sequential consistencyRelaxing SCEnforcing SC1. Consistency란?프로세서는 새로운 값을 언제 봐야 할까? A,B를 shared variable이라 하고 다음과 같은 상황을 생각해보자.P1:A = 0;P2:B = 0; .... .... A = 1; B = 1;L1:if (B==0) ...L2:if (A==0) ...P1에서 L1에 도달했다는 것은, P2에서 B=1;을 아직 실행하지 않은 상태라는 것을 의미한다. 반대의 경우도 마찬가지이다. 즉 L..