본문 바로가기

전체 글33

GPU를 이용한 병렬화에서 고려해야 할 요소 GPU의 특성vectorized 연산을 하는 것이 아니라, 동일한 연산을 개별적으로 동시에 수행하는 구조다.SM(Streaming Multiprocessor)에는 계산을 담당하는 Core, 각 Core가 사용하는 Register, Core들 간에 공유할 수 있는 Shared Memory 및 L1 Cache가 있다.Global memory는 GPU device마다 하나씩 있으며, device 내의 SM들이 여기로부터 데이터를 받아간다.몇가지 최적화 아이디어들Tiling흔히 알고 있는 2D block tiling뿐만 아니라, 하나의 스레드가 더 많은 일을 하게 하는 2D Thread tiling도 고려할 수 있다.Occupancy: Thread 및 Thread BlockGrid Size를 충분히 크게 해주어.. 2024. 6. 21.
[UCB CS61C] Lec14 Intro to Synchronous Digital Systems synchronous(central clock에 따라 coordinate된다), digital(discrete value에 따라 모든 값을 표현) Switches 1일 때 스위치를 닫고, 0일 때 연다. 스위치 두 개를 가지고 AND와 OR을 표현 가능(boolean) Transistors 신호를 amplify하거나 switch하기 위한 반도체 장치 3개의 terminal로 구성: Drain, Gate, Source n-channel: open when voltage at G is low(close when $voltage(G) > voltage(S) + \epsilon$) p-channel: closed when voltage at G is low(opens when $voltage(G) > volta.. 2024. 1. 12.
[UCB CS61C] Lec13 Compiling, Assembling, Linking, Loading Compiler high-level language code를 입력으로 받아서, assembly language code를 출력함. compiler가 출력한 내용에는 pseudo instruction이 포함될 수도 있음(assembler는 이해하지만 machine은 이해할 수 없음) Assembler assembly language code를 입력으로 받아서, object code, information table을 출력함. pseudo instruction을 대체하고 machine language로 바꾸게 됨. Producing Machine Language arithmetic, logical, shift 등은 이미 필요한 정보가 instruction 내에 모두 포함되어 있음. branch, jump는.. 2024. 1. 12.
[CMU 15-445 Intro to DB Sys] Lec13 Query Execution(2) Parellel Execution 같은 HW 자원을 가지고 더 많은 퍼포먼스를 낼 수 있다(higher throughput, lower latency) 시스템의 responsiveness 향상(한 worker가 stall된 동안 다른 worker가 일함에 따라 외부에서 보기에 stall이 적어 보임) lower total cost of ownership(TCO)(HW, SW, labor overhead, energy 등을 아낄 수 있음) Parallel vs. Distributed 어플리케이션이 겉으로 보기에는 모두 single logical database로 보이게 된다. Parallel DBMS에서는 자원들이 physically 서로 가까이 있고, high-speed interconnect로 소통하게.. 2024. 1. 12.
[UCB CS162 OS] Lec07 Synchronization(2) Producer-Consumer with bounded buffer producer는 shared buffer로 여러가지를 넣고, consumer는 여기서 꺼내어 쓰는 구조로, 이를 적절히 동기화시켜야 한다. Semaphores non-negative integer value로 down() or P()(positive가 되기를 기다리다가, 1을 감소시킨다. wait() operation과 유사)과 up() or V()(1을 증가시키고, 기다리는 P를 깨운다. signal() operation과 유사) (개인적인 평가: 입장권의 개수가 제한되었다고 생각할 수 있을 것 같다.) semaphores에서는 negative value가 없고, 초기 설정을 제외하고는 어떤 value를 쓸 수는 없다(P, V만 해야.. 2024. 1. 12.
[UCB CS162 OS] Lec06 Synchronization(1) Context Switch Kernel은 각 프로세스를 PCB(process control block)으로 나타낸다. process 간의 문맥전환은 기존 프로세스의 상태를 해당 PCB에 저장하고, 실행하려는 새로운 프로세스의 상태를 해당 PCB로부터 열어와서 실행한 뒤에 다시 그 PCB에 저장하고, 처음에 저장해 둔 PCB로부터 기존 프로세스를 다시 불러와서 실행하는 방식으로 이루어진다. 여기서 PCB로의 save/load는 kernel에서 이루어진다(privilege level: 0). 이를 위해서는 system call이나 interrupt가 필요하다. Process(내지 Thread)의 수명주기 process는 new, ready(run될 수 있는 상태), running(실행되는 상태), waiti.. 2024. 1. 11.