반응형

분류 전체보기 272

[MPC] 1. Fundamentals of CUDA (1)

1. Fundamentals of CUDA 1.1 History 1.1.1 3D Graphics Pipeline 3D 이미지를 만들어낼 때 다음과 같은 단계를 거친다. 3D mesh를 vertex processing을 통해 triangles in screen space를 만든다. Rasterization을 통해 여러 개의 triangles을 픽셀로 만든다. Raster Operations를 통해 Texture filtering을 하여 각 픽셀에 색상을 입힌다. Fragment processing을 통해 3D 이미지를 출력한다. 1세대 모든 스테이지를 하드웨어로 구현했다. 고정된 데이터 흐름을 가진다. 2세대 하드웨어가 특정 기능을 하지만 어느정도 설정할 수 있었다. -> 특정 모드를 지원 시간이 지남에 ..

[밑바닥부터 시작하는 딥러닝3] 딥러닝 프레임워크의 동작 방식

딥러닝 프레임워크의 동작 방식 딥러닝 프레임워크는 동작 방식에 따라 '정적 계산 그래프' 혹은 '동적 계산 그래프' 방식으로 나뉜다. 정적 계산 그래프 방식 (Define-and-Run) 계산 그래프를 정의한 뒤 데이터를 흘려보낸다. 즉, 계산 그래프 정의는 사용자가 제공하고, 프레임워크는 주어진 그래프를 컴퓨터가 처리할 수 있는 형태로 변환하여 데이터를 흘려보낸다. # 계산 그래프 정의 a = Variable('a') b = Variable('b') c = a * b d = c + Constant(1) # 계산 그래프 컴파일 f = compile(d) # 데이터 흘려보내기 d = f(a=np.array(2), b=np.array(3)) 계산 그래..

컴퓨터/밑딥3 2020.12.18

[MPC] 0. GPU Architecture

0. GPU Arhitecture 0.1 Parallel Execution in Modern Processors 0.1.1 Pre multi-core era 멀티코어 프로세서를 만들기 전에는 대부분이 슈퍼스칼라 형태였다. 단일 명령어를 빠르게 실행시키기 위해 여러 로직을 넣어주었다. (ex: Out of order control logic, Fancy branch predictor, Memory prefecher) 무어의 법칙에 따라 많은 트랜지스터를 사용할 수 있게 되어, 캐시를 키우고 좋은 OO logic, branch predictor를 추가시켰다. -> 근본적으로 한계가 있었다. Power wall: clock frequency를 높임 -> power consumption 증가 -> 온도 증가 D..

[밑바닥부터 시작하는 딥러닝3] 연산자 오버로드

20. 연산자 오버로드 (1) 20.2 연산자 오버로드 곱셈/덧셈의 특수 메소드를 사용하여 연산자 오버로드를 했다. # Variable 간 *를 사용하면 1) __mul__ 메소드가 호출, 2) 그 안의 mul() 함수를 호출 def __mul__(self, other): # a * b 연산시 a는 self, b는 other에 대응 return mul(self, other) def __add__(self, other): return add(self, other) # 파이썬에서는 함수도 객체이므로 함수 자체를 할당하여 처리하면 다음과 같이 작성할 수 있다. Variable.__mul__ = mul Variable.__add__ = add 21. 연산자 오버로드 (2) 21.1 ndarray와 함께 사용하기..

컴퓨터/밑딥3 2020.12.14

[밑바닥부터 시작하는 딥러닝3] 메모리 관리

17. 메모리 관리와 순환 참조 17.1 메모리 관리 파이썬은 불필요한 객체를 인터프리터가 제거해준다. 코드를 제대로 작성하지 않은 경우 '메모리 누수'나 '메모리 부족'등의 문제가 발생할 수 있다. 파이썬은 두 가지 방식으로 메모리를 관리한다. 참조 카운트 방식의 메모리 관리 모든 객체는 참조 카운트가 0인 상태로 생성 다른 객체가 참조할 때마다 1씩 증가, 참조가 끊길 때마다 1만큼 감소, 0이 되면 파이썬 인터프리터가 회수 참조 카운트가 증가하는 경우 대입 연산자 사용할 때 함수의 인수로 전달할 때 컨테이너 타입 객체(리스트, 튜플, 클래스 등)에 추가할 때 참조 카운트 방식은 '순환 참조'를 해결할 수 없음 -> Garbage Collection으로 해결..

컴퓨터/밑딥3 2020.12.13

[확률과정론] 고전적 통계 추론 (Classical Statistical Inference)

- 베이지안은 prior를 두고 이를 업데이트시켜 추론을 하는 것과 달리 고전적 통계 추론은 prior를 uniform distribution으로 가정하고 추론을 합니다. - Bias-Variance Decomposition을 통해 파라미터를 추정하면 이는 bias와 variance로 분해된다는 것을 정리했습니다. - ML Estimation은 Invariance Principle, Consistency, Asymptotic Normality 세 가지 특징을 갖습니다. 1. 파라미터의 추정치를 찾으면 이는 파라미터를 일대일 함수를 태운 뒤에도 추정치가 됩니다. 2. 관측 데이터가 iid라고 가정하면, 추정치는 참값에 수렴합니다. (다만, 추정치가 비편향됐다는 보장은 없습니다.) 3. 관측 데이터가 충분히..

[확률과정론] 마르코프 체인 (Marcov Chain)

- 이산 마르코프 체인에 대해 정리했습니다. - 마르코프 체인은 미래의 특정 상태로 갈 확률이 현재의 상태에 의존한다는 marcov property라는 가정을 갖고 있는 모델입니다. 이는 조건부 확률로 쓸 수 있습니다. - 마르코프 체인에서 path는 현재 상태에서 n번 전이를 했을 때 방문하는 상태들의 sequence를 의미합니다. 이 확률은 marcov property를 이용하여 계산할 수 있습니다. - n-step 전이 확률은 초기 상태가 i일 때 n번째 상태가 j일 확률을 말합니다. 이는 marginalize를 통해 (n-1)-step 전이확률의 weighted sum으로 나타낼 수 있습니다. 그리고 이를 C-K Equation이라 부릅니다. - 상태를 분류하고 Accesibility, Recur..

반응형