20171102

병렬처리
Cambricon: An instruction set architecture for neural networks. Neural network를 구현하는 큰 두 가지 방향이 있는데, 첫째는 general-purpose processors, 둘째는 application-specific accelerators이다. 이 두 가지에서 중심을 찾고자 한 연구이다. 기존의 application-specific acclerator는 다양한 뉴럴 넷을 연산하지 못할 뿐 아니라, 크기가 큰 뉴럴 넷을 대상으로 연산하지 못한다. 이 논문에서는 뉴럴 넷을 위한 ISA를 제안한다.
디자인할 때 고려했던 세 가지. (1) data-level parallelism을 활용함. (2) On-chip scratchpad memory를 활용함. 뉴럴 넷 연산에서는 연산 대상의 크기가 다양하기 때문에, 고정된 크기의 레지스터보다는 scratchpad memory가 낫다. (3) customized vector/matrix 명령어를 활용함.
DjiNN and Tonic: DNN as a Service and Its Implications for Future Warehouse Scale Computers. 원래 warehouse scale computing에서 latency, QoS 연구를 하고 있는 팀인데, 뉴럴 넷으로 이를 확장하고 있는 것으로 보임. 사용 가능한 하드웨어를 가지고 최대한 적은 latency를 보장하는 것이 목표이다. Single system, multiple system 상황에서 병목이 무엇인지에 대해 조사함. Single system에서 GPU를 사용할 때 성능 향상이 크지 않은 이유를 확인해 봄(NVidia profiler 사용). Thread를 최대한 사용하지 못하고 있는 것을 원인으로 파악함. 그렇다면 thread를 어떻게 늘릴 수 있나? Batching을 하거나 multi-process service를 사용하면 된다. GPU의 수를 늘렸을 때의 scalability는 어떻게 되나? complex net은 linear하게 scale하지만, 연산량이 적은 NLP 서비스는 scalable하지 않다. NLP는 데이터 연산이 빠른데 PCIe가 이를 충분히 보상할 만큼 빠른 데이터 공급을 해주지 못한 것으로 보인다. 그리고 네트워크도 병목현상을 일으키고 있음.

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: