2017-11-25 29 views
-3

Google Compute Engine n1-highmem-64 시스템 유형 (예 : 64 비트)에서 맞춤식 신경망 (텐서 흐름이 아닌) 교육과 같이 여러 CPU 코어를 결합하여 단일 스레드의 처리 속도를 높이려면 어떻게해야합니까? CPU 코어? 클러스터 컴퓨터 또는 무엇? 어디서부터 시작해야할지 모르겠다 ... 고마워!추가 코어가있는 CPU 성능

답변

0

글쎄 하나의 스레드에서 더 빠른 속도를 요구하고 있지만 여러 개의 코어가 있습니다.

단일 코어가 소유하고있는 단일 스레드에서 빠른 처리 속도를 얻는 유일한 방법은 오버 클러킹입니다. 새로운 코어를 확보하면 더 나은 칩셋을 얻을 수 있습니다.

이 작업을 간단히 수행하는 것은 불가능합니다. 펌웨어를 여러 구성 요소에 패치해야만 L3 캐시 등을 사용하여 단일 스레드에서 CPU간에 통신 할 수 있습니다. 매우 실용적입니다.

그 반대가가는 길입니다.

멀티 스레딩은 여러 코어에서 동시에 여러 데이터 조각을 처리하는 데 사용됩니다.

범용 GPU는 계산을 GPU에 위임하여 많은 수의 데이터에서 동일한 작업을 수행하는 데 사용됩니다. 그것은 오버 헤드 시간을 증가 시키지만, 입력이 충분히 클 때 좋은 결과를 줄 것입니다.

TensorFlow가 실제로 두 가지를 모두 구현하기 때문에 TensorFlow를 언급하는 것은 재미 있습니다.

이런 식으로 구현할 수 있다고해도 어쨌든 스레드를 사용하지 않는 이상 원자 잠금을 돌격 할 수 있습니다.

편집

아웃의 다양한 깊은 학습/기계 학습 프레임 워크와 호환되는 서비스의 범위는 서비스, 아마존 (https://aws.amazon.com/tensorflow/ 및 다른 회사)와 같은 소프트웨어를 사용할 필요가 찾고 있다면 상자.

+0

좋아요, 그래서 코드는 데이터가 정렬되고 정리되는 준비 단계가 있습니다.하지만 훨씬 더 집중적 인 훈련 단계가 있습니다. 신기원 전반에 걸쳐 반복적이지만 계산은 출력의 활성화 점수를 합산하는 것입니다. ... 단일 스레드에서 시작하는 방법이 있습니까?하지만이 교육 단계에 도달하면 신기원을 64 개 섹션 (또는 사용 가능한 CPU 수)으로 분할하여 합계를 단일 스레드로 반환하여 활성화를 계산합니까? 획기적인 부분은 훈련 전에 RAM에 미리 저장되어 저장된 것과 별개로 의존하지 않습니다. –

+0

Python에서 데이터 정리를 구현할 수 있으면 Tensorflow에서 교육을 구현할 수 있으며 모든 코어를 자동으로 사용합니다/하이퍼 스레드 또는 GPU. 그렇지 않은 경우 모델의 정방향 및 역 전파 단계에서 멀티 스레딩을 구현 한 다음 손실 함수에 대한 합계를 수행하고이를 사용하여 가중치 행렬을 조정해야합니다. – Zroach

+0

확실히 Python, Node JS를 사용하지 않습니다 –