반응형

컴퓨터/Etc 15

Design/Verification Complexity

Design/Verification Complexity는 각각 하드웨워에 대한 설계 및 검증 복잡도를 의미한다. 하드웨어가 복잡하면 설계도 어려워지고 설계된 하드웨어가 정상적으로 동작하는지 검증하는 것이 매우 어려워진다. 매우 좋은 테크닉이라 할 지라도 그 테크닉이 너무 복잡해서 하드웨어로 구현하기 어려우면 좋은 테크닉이라고 할 수 없다. 따라서 하드웨어로 구현해야하는 기술은 그 기술의 design complexity와 verification complexity를 함께 고려해야 한다. Design complexity와 verification complexity는 정량적으로 나타낼 수 없다. 이들은 정성적인 metric이다. 그럼 이걸 어떻게 측정해볼 수 없냐?라는 의문이 생기는데, HDL언어로 하드웨어를..

컴퓨터/Etc 2020.03.20

numpy, tensorflow vs pytorch

numpy vs pytorch - x, y, z 세 변수에 대해 학습하는 예시 생각 - 이때 gradient를 계산하기 위해 연산 그래프를 따라 미분 계산 - numpy는 모든 미분식을 직접 계산 후, 코드 작성 - pytorch는 backward()를 한번 호출해주면 끝 - 그리고 numpy는 GPU 사용이 불가능 (이부분이 크리티컬하다) tensorflow vs pytorch - 둘 다 GPU 사용 가능 - tensorflow는 연산 그래프를 먼저 만들고 실제 연산할 때 값을 전달하여 연산 결과를 얻음 - 연산 그래프를 만드는 부분과 연산하는 부분이 분리됨 - pytorch는 연산 그래프를 만듦과 동시에 값이 할당됨 - 연산 그래프와 연산을 분리해 생각할 필요가 없음 - tensorflow에 올라온 ..

컴퓨터/Etc 2020.01.07

Matrix Tiling

이번 포스팅에서는 GPU에서 매우 큰 matrix를 효율적으로 연산하게 해주는 최적화 기법인 matrix tiling에 대해서 알아보겠습니다. 이는 matrix-matrix multiplication의 효율을 높여주기 위해 사용됩니다. 우선 matrix tiling을 해주기 위해서는 input matrix 2개와 result matrix를 tiling해주어야 합니다. 그리고 난 뒤에는 이들을 tile단위로 multiplication을 해주어 result matrix에 저장해줍니다. 이걸 열과 행단위로 matrix 전체를 계산해주면 됩니다. 이에 대한 pseudo-code는 다음과 같습니다. 이렇게 tiled matrix multiplication을 해주면 전체 matrix가 GPU memory에 fit하..

컴퓨터/Etc 2019.11.19
반응형