20171031

병렬처리
Eyeriss. 가능한 옵션들을 펼쳐놓고 가보는 논문. 90년대 초반에는 OoO execution이 어디까지 갈 수 있는지에 대한 논문이 있었음. 멀티코어가 나왔을 때에는 멀티코어 파라메터를 바꿔가며 bottlenceck에 대해 조사해보기도 했었음. 잘 쓰면 좋지만 졸 쓰지 못하면 떨어지기 쉬운 논문 종류임. CNN에서 발생하는 data reuse를 세 가지로 정리함. Convolutional reuse에서는 image pixel, filter weight이 재사용된다(convolution layer의 경우 filter와 image가 재사용). Image reuse에서는 image pixel이 재사용된다(image가 다른 filter들에 대해 적용되므로 재사용). Filter reuse에서는 filter weights가 재사용된다(배칭하는 경우엔 여러 이미지에 대해 다른 filter가 적용되므로 재사용). 기존의 아키텍쳐에서는 register 또는 메모리를 통한 데이터 전송이 일반적임. Spatial architecture에서는 데이터의 전달에 대해 방향성이 중요해짐. ALU의 결과를 어디로 보낼 것인가?에 대한 결정이 다른 결과를 냄.
Weight stationary는 각 processing element가 weight를 갖고 있고, global buffer에 있는 pixel이 PE들에 broadcast됨. 이 디자인에서는 weight 읽기에 사용되는 에너지 사용을 최소화함. Partial sum은 global buffer, PE에 존재함. Output stationary에서는 각 PE가 partial sum을 유지하고, weight가 global buffer에서 broadcast된다. Weight stationary보다는 output stationary의 에너지 효율성이 더 좋다. TPU, DaDianno에서처럼 local register가 없는 것보다는 있는 것이 더 효율적이다. 이 논문에서는 두 가지 특성을 유지하는 row stationary를 제안한다.

Advertisements
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 101,726 hits
%d bloggers like this: