본문 바로가기

전체 글68

[Parallel Computing] (16) Tiling for Matrix Multiply Strip Mining은 한 개의 Loop를 여러개로 나눠서 수행하는 것을 말한다. 보통 Vector 연산을 수행하기 위해서 사용한다. Matrix Mulitply에서도 Strip Mining을 적용해서 사용할 수 있다. 아래와 같은 Matrix 연산을 생각해보자. for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) for (int k = 0; k < N; k++) c[i][j] += a[i][k] + b[k][j];'a' 행렬과 'b' 행렬를 곱하여 'c' 행렬에 저장하는 동작이다. 여기서 잘 살펴봐야하는 건, "'a'와 'b' 행렬이 어떻게 메모리에 저장되어 있는 가" 하는 점이다. 코드상에는 2D 배열로 표현되지만 실제 저장은 1D형태로 저장된다. 일.. 2024. 5. 25.
[Parallel Computing] (15) Cache Coherence Coherence은 우리말로 표현하면 '통일성/일관성'이라 표현될 수 있으며, 영영 사전에 의하면 'the situation when the parts of something fit together in a natural or reasonable way'으로 설명하기도한다. 두 표현이 공통적으로 말하는 것은 어떤 것에 대해 일관적이고, 타당한 방식으로 어떤 것들이 함께 존재한다는 점이다. 그렇다면 Cache Coherence는 어떤 의미일까? 위의 표현 중 어떤 것이 Cache 라고 생각하면 아래와 같이 다시 표현할 수 있다. > Cache에 대해 일관적이고, 타당한 방식으로 Cache들이 함께 존재한다는 점이다. 그렇다면 어떤 관점에서 Cache가 일관적이고, Cache들이 타당한 방식으로 존재한다는 .. 2024. 5. 25.
[Computer Architecture] (1-2) Pipeline Hazards Hazard가 발생하는 상황이란 다음 사이클에 다음 Instruction을 수행할 수 없을 때를 말한다.Hazard는 종류에 따라 Structural/Data/Control Hazard로 구분할 수 있다.1. Structural Hazard구조적인 문제로 인하여 발생하는 Hazard를 말한다. 예를 들어 어떤 자원을 사용하는 데 충돌이 발생하는 경우이다. IF - ID - EX - MEM - WB 로 구분되는 5-Stage Pipeline를 기존으로 생각해보자. 각 Stage이 어떤 자원을 사용하는 지 확인해보자.IF : Memory // Memory로부터 Instruction을 읽어옴.ID : Register // Instruction decode  이후 register로부털 operand를 읽어옴.E.. 2024. 4. 30.
[Computer Architecture] (8) CISC vs. RISC 사용하는 Instruction Set 구성 방식에 따라 CISC(Complex Instruction Set Computer)와 RISC(Reduced Instruction Set Computer)로 구분할 수 있다.먼저 용어를 살펴보면 'Complex' 와 'Reduced'의 차이를 보인다. 즉, 하나는 복잡하고 다른 하나는 간단하다는 의미를 가진다. Instruction이 복잡하다는  것은 여러 가지 많은 종류의 Instruction이 있고, 각 Instruction의 길이가 동일하지 않다는 것을 말한다. 이렇게 복잡해진 이유는 전형적인 프로그래밍 테스크를 수행하기 위하여 계속 추가가 되었기 때문이다.  반대로 Instruction이 간단하다는 것은 심플한 종류의 Instruction이 있고, 각 In.. 2024. 4. 29.