태그 보관물: Nvidia

TensorRT, NNabla, deeplearning.ai, CMU AI and Naver

NVIDIA가 딥러닝 인퍼런스inference 전용 라이브러리인 TensorRT 2를 공개하였습니다. TensorRT 1에서 제공했던 카페Caffe와 텐서플로TensorFlow까지 지원을 확대했습니다. 곧 TensorRT 3 버전도 선보일 거라는 군요. TensorRT는 데비안 패키지로 제공되며 NVIDIA 개발자 계정이 있으면 다운받을 수 있습니다. 조금 더 자세한 내용은 릴리즈 노트를 참고하세요.

소니Sony(네 우리가 아는 소니가 맞습니다:)가 오픈소스 뉴럴 네트워크 라이브러리 NNabla를 공개했습니다. @.@ 여러 사람들이 당황하는 것을 보아서는 확실히 의외인 것 같습니다. NNabla는 파이토치PyTorch나 다이넷DyNet처럼 다이나믹 컴퓨테이션 그래프를 지원하며 준수한 API를 가지고 있다고 회자되고 있습니다. NNabla가 쟁쟁한  공룡들 사이에서 얼마나 자리를 잡을지 궁금합니다. 소스 코드는 깃허브에서 볼 수 있습니다.

앤드류 응Andrew Ng이 바이두 리서치를 떠나서 Drive.ai에 합류했다는 소식입니다. Drive.ai는 앤드류의 부인이 하고 있는 자율 주행 관련 회사입니다. 앤드류가 바이두를 떠났을 때 여러 사람들이 Drive.ai에 합류할 것이라는 예상을 했었죠. 앤드류는 이와는 별개로 새로운 프로젝트 deeplearning.ai 를 런칭한다고 공개했습니다. 8월에 본 모습을 드러내겠지만 ‘Explore the frontier of AI’, ‘Hope will help many of you’ 와 같은 문구를 봐서는 조금 공익적인 프로젝트가 아닐까 내심 기대해 봅니다.

애플에 합류한 러슬랜 살라쿠디노프Ruslan Salakhutdinov 교수가 있는 카네기 멜론 대학이 응집력있는 연구를 위해 CMU AI를 설립한다고 발표했습니다. 토론토 대학, 몬트리올 대학, 스탠포드 대학 등 연구소도 경쟁인 것 같습니다.

그리고 네이버가 제록스 유럽 연구소를 인수했다는 뉴스도 있습니다. 부디 그들만의 리그가 되지 않기를 바랄 뿐입니다.

TF 성능 팁: Winograd 알고리즘 설정

텐서플로우tensorflow에서 훈련 성능을 높일 수 있는 위노그라드Winograd 콘볼루션 알고리즘이 디폴트로 활성화되어 있지 않습니다. ResNet을 비롯하여 요즘 규모의 콘볼루션 모델들에서 3×3 필터가 대세로 자리잡고 있습니다. 위노그라드 알고리즘은 3×3 행렬 계산의 연산 횟수를 줄여 줌으로써 모델 훈련 성능이 크게 증가됩니다. 이미 NVIDIA는 cuDNN5에서 부터 위노그라드 콘볼루션을 지원하고 있습니다. 일례로 Wide ResNet 에서 CIFAR10 데이터로 훈련시킬 때 K80 GPU에서 35%정도 빨라졌다고 합니다. 하지만 성능 개선의 정도는 GPU에 따라 다릅니다. 이 설정을 하려면 쉘이나 파이썬에서 아래와 같이 환경변수 TF_ENABLE_WINOGRAD_NONFUSED 를 지정해야 합니다.

os.environ['TF_ENABLE_WINOGRAD_NONFUSED'] = '1'
$export TF_ENABLE_WINOGRAD_NONFUSED=1

위노그라드 알고리즘의 설정이 파이토치PyTorch와의 성능 차이 요인 중 하나로 지적되면서 조만간 기본으로 사용하도록 설정될 것 같습니다. 일전에 소개해 드린 텐서플로우의 성능 테스트에서 사용한 코드도 위노그라드 설정을 지정하고 있습니다.

얼마전 NVIDIA가 GTC17에서 선보인 볼타Volta 아키텍처에서 16비트 부동소수점을 사용하여 성능을 크게 올렸다고 발표했습니다. 이와 동시에 페이스북이 지원하고 있는 Caffe2가 이미 16비트 부동소숫점을 지원한다고 발표했고 파이토치도 곧 기능을 추가할 거라고 언급했습니다. 아무래도 NVIDIA와 페이스북 간의 공조가 더 긴밀한 듯 합니다. 🙂

Intel 64byte instruction to Linux kernel for deep learning

img_0997
인텔의 최신 아키텍처에 포함될 뉴럴 네트워크를 위한 512bit(64byte) 명령어 세트가 리눅스 커널에 포함되었다고 합니다. 딥러닝을 위한 하드웨어로는 Nvidia GPU가 기본이 되는 현재 상황을 바꾸어 보려는 인텔의 노력이 기대됩니다. 조금 더 자세한 내용은 퀘벡 대학의 다니얼 르미르(Daniel Lemire) 교수의 블로그와 리눅스 커널 패치를 참고하세요.

DL Chip Race

card-hero2-800x550

출처: 마이크로소프트 리서치

어제 마이크로소프트가 개발하고 있는 딥러닝을 위한 칩 개발 프로젝트 ‘Catapult’에 대해 크게 보도가 되었습니다. 캐타펄트(Catapult)는 마이크로소프트에서 수년간 개발해 왔고 최근 클라우드에 실전 배치된 것으로 알려졌습니다. 이 칩은 FPGA(field programmable gate array) 타입이어서 재프로그래밍(reprogrammable)이 가능합니다. 와이어드(Wired)에 따르면 마이크로소프트가 이런 타입을 채택한 것은 딥러닝 알고리즘이 발전하면서 새로운 연산방식에 효과적으로 대응할 수 있기 때문이라고 합니다. TPU 방식이라면 아마도 구글은 계속 새로운 칩을 설계해야만 할 것이라고 보았습니다. 하지만 캐타펄트(Catapult)가 TPU 보다는 성능이 떨어진다고 합니다.

이 소식에 이어 바이두가 오늘 딥러닝을 위한 칩 벤치마킹 자료를 공개하였습니다. 딥벤치(DeepBench)는 딥러닝을 위해 사용할 수 있는 칩을 제조하는 메이커들의 경쟁을 이끌고 연구자들이 원하는 하드웨어를 선택할 수 있도록 도움을 주기 위해서라고 합니다. 이 벤치마크에 사용된 코드는 깃허브에 커밋되어 있습니다. 이 벤치마크는 딥러닝 프레임워크를 대상으로 한 것은 아니고 행렬연산이나 콘볼루션 연산 같은 저수준의 작업에 대한 성능을 평가한 것입니다.

딥러닝에 대한 경쟁은 학계에서 프레임워크로 또 하드웨어로까지 빠르게 확산되는 것 같습니다. 현재는 엔비디아(Nvidia)와 인텔(Intel)만이 딥벤치 결과에 참여했고 점차 확대될 것으로 보입니다. 하지만 구글이 TPU를 테스트해 줄지는 의문이네요. 딥벤치가 활성화되고 나서 바이두가 폭발적인 성능을 내는 칩을 내놓으려는 건 아닐런지…

Intel + Nervana

screen-shot-2016-08-08-at-12-16-04-pm딥 러닝을 위한 소프트웨어와 하드웨어 칩을 모두 만드는 너바나(Nervana) 시스템즈가 어제 인텔에 인수되었다는 소식을 블로그를 통해 공지했습니다. 예상컨대 이 인수는 딥 러닝 칩 분야의 선두인 엔비디아(Nvidia)와 경쟁하기 위해서 일것입니다. 대체적으로 너바나의 인수소식을 환영하는 분위기입니다. 아마도 경쟁자들이 많을 수록 더 싸고 좋은 시스템들이 만들어지리라 기대하기 때문이겠죠.

우연의 일치일까요. 거의 동시에 OpenAI의 설립자 중 하나인 엘론 머스크(Elon Musk)는 엔비디아가 OpenAI에게 DGX-1 컴퓨터를 기부한다고 밝혔습니다. 구체적으로 언제 얼만큼이 제공될지는 알려지지 않았습니다.

이와는 별개로 얼마전 머신러닝 소프트웨어 회사인 투리(Turi)가 애플에 인수되었습니다. 투리는 카를로스 구스트린(Carlos Guestrin)이 설립한 회사로 이전 이름은 Dato 였습니다. 카를로스는 워싱톤 대학의 아마존 교수(Amazon professor)로 아내 에밀리 폭스(Emily Fox)와 함께 코세라의 머신러닝 코스를 운영하고 있습니다. 투리의 소프트웨어 중 판다스(Pandas)의 클론격인 SFrame은 오픈소스로 공개되어 있고 머신러닝 라이브러리인 GraphLab Create는 연구용으로 라이센스를 제공하고 있습니다.(카를로스와 에밀리의 코세라 강좌는 SFrame와 GraphLab Create에 맞춰져 있습니다)

투리의 소프트웨어는 누구나 쉽게 머신러닝을 사용하는 것에 촛점을 맞추고 있습니다. 애플이 굳이 이런 종류의 패키지를 필요로 하는지 고개를 갸우뚱하게 만듭니다. 오히려 좋은 오픈소스 하나가 사라지게 될까 걱정이네요.

(업데이트) 지난 주에 엔비디아가 OpenAI에 DGX-1 첫 시제품을 제공했다고 블로그를 통해 알렸습니다. 젠슨 황 엔비디아 대표가 직접 들고갔다고 하네요.

15openai_inside_crowd_web

출처: 엔비디아 블로그

TPU is just for inferencing not training

Google IO 2016에서 선다 피차이 CEO의 키노트 말미에 발표한 TPU(Tensor Processing Unit)가 많이 회자되고 있습니다. 구글이 직접 칩셋을 만들기 시작했으니 Nvidia의 입장이 어떠할지 궁금하고 GPU의 가격이 좀더 낮아지지 않을까 하는 예상하는 사람들도 있었습니다.

며칠 전 대만에서 열린 컴퓨텍스(Computex) 전시회에서 젠슨 황 Nvidia 대표가 구글 TPU에 대해 언급한 내용이 보도 되었습니다. 젠슨은 구글의 TPU가 머신러닝의 훈련(training)과 추론(inferencing) 중 추론에 최적화되어 있다고 언급하고 대량의 데이터를 이용한 알고리즘 훈련 단계에서는 Nvidia GPU를 사용할 수 밖에 없음을 시사했습니다. 이는 Kevin Krewell이 언급한 내용을 보도한 기사에서도 같은 내용을 엿볼 수 있습니다. 추론단계의 연산은 훈련보다 복잡하지 않기 때문에 최적화하기 쉽다고 언급되어 있고 여전히 구글은 Nvidia로 부터 많은 양의 GPU를 구매하고 있다고 합니다.

그러나 어떤 내용에 근거해서 TPU가 추론단계에만 사용되는 프로세서라고 한 것인지는 찾지 못했습니다. 구글이 공식적으로 공개한 자료에는 그런 부분은 없는 듯 합니다. 다만 두 기사의 내용을 미루어 보아 상당히 믿을만하다고 보입니다. 다양한 웹 서비스를 제공하는 구글 입장에서는 추론에 드는 시간을 단축하여 사용자 경험을 높이는 쪽에 더 관심이 많았을 수 있습니다. Nvidia가 TPU에 대해 크게 걱정을 할 필요가 없는 것인지 아니면 그런 척하는 것인지, 또 앞으로 구글이 훈련단계에 까지 적용 가능한 프로세서를 만들어낼지 등등 많은 것이 궁금하네요.

The Expanding Universe of Modern AI

nvidia-ai-big-bang

클릭하시면 확대해서 보실 수 있습니다. 출처: Nvidia

Nvidia 에서 인공지능 분야의 테크놀러지 빅뱅(Big Bang)을 한 눈에 조감할 수 있는 이미지를 만들어 오늘 공개했습니다.

맨 왼쪽에는 연구분야로서 알파고로 유명한 딥마인드, OpenAI, 몬트리올/뉴욕/MIT 대학교 등이 눈에 뜨입니다. 그 다음으로는 핵심 기술이나 프레임워크로서 페이스북이 지원하는 Torch, 구글의 TensorFlow, 버클리의 Caffe, 몬트리올 대학교의 Theano, 마이크로소프트의 CNTK 등을 Nvidia의 cuDNN이 떠 받치고 있는 모습니다. ^^

그 오른쪽에는 머신러닝을 플랫폼화한 아마존 웹서비스와 IBM 왓슨, 구글, 마이크로소프트의 Azure가 있습니다. 그 다음으로가 가장 관심이 갈 만한 인공지능 분야의 떠오르는 스타트업입니다. 가운데 얼마전 세일즈포스로 인수된 메타마인드(MetaMind)가 있습니다. 여기에 언급된 회사들을 한번쯤 눈여겨 보아두면 아마 언젠가 뉴스에서 큰 기사거리로 만날 수 있을 것 같습니다.

산업부분의 리더 들이 가장 오른쪽에 위치해 있는데요. Andrew Ng 박사가 합류한 바이두(Baidu)가 아직 뚜렷한 성과를 내지 못해서인지 이곳에 있는 게 약간 의외입니다. 머지않아 구글이나 페이스북과 나란히 위치해 있는 그림으로 바뀌지 않을까요.

인공지능을 위한 GPU – Nvidia Tesla P100

tesla-p100-header-940x300-2

Nvidia Tesla P100, 출처: Nvidia

어제 Nvidia 는 GTC(GPU Technology Conference) 2016에서 새로운 GPU 칩인 Tesla P100을 발표하였습니다. 수년간 공을 들인 이 제품은 종전과는 달리 게임 시장보다 인공지능 시장을 위해서 기획한 제품이라고 합니다. 무려 150억개의 트랜지스터가 들어갑니다. 16GB 메모리에 들어간 것 까지 합치면 1,500억개의 트랜지스터가 집적되어 있습니다. @.@

P100은 11번째 Pascal 아키텍처로 만든 첫번째 GPU라고 합니다. Pascal 아키텍처를 지지하는 과학자로 페이스북의 Yann Le Cun, 바이두의 Andrew Ng 등이 있습니다. 사실 인공지능 분야에서 Nvidia 의 GPU를 지지하지 않고는 뾰족한 대안이 없기도 합니다.

jhhseaweed

GTC 2016에서 발표하는 Nvidia Jen-Hsun Huang CEO, 출처: Nvidia

Jen-Hsun Huang CEO 가 발표 중에 바이두(Baidu) 엔지니어와 구글(Google) 엔지니어를 감초 출연시켰는데요. 바이두(Baidu) 엔지니어로는 이 블로그에서도 소개해 드렸던 2015년 GTC 컨퍼런스에서 Andrew Ng 박사의 발표 후반부에 음성인식 라이브 데모를 시연한 Bryan Catanzaro 였습니다. 아마도 구글과 바이두 엔지니어들은 Tesla P100 시제품을 이미 쓰고 있겠죠?

머신러닝 분야에서는 AMD나 인텔이 뒤쳐진 것이 어떤 이유인지 사람들마다 의견이 분분합니다. OpenCL 때문이라던지 투자를 게을리했다던가 앞을 내다보지 못했다던가 등등. 어떤 사람들은 Nvidia의 CUDA가 개방적이지 않은 것에 대해 비판을 하기도 합니다. 과연 머신러닝을 위한 GPU는 몇몇 대기업이나 연구소, 클라우드 시스템에 장착되는 시장일까요? 게임 그래픽카드 처럼 많은 사람들에게 꼭 필요한 것이 될까요? 어쨋든 컨볼루션 인공신경망에 대해서라면 OpenCL 기반으로 Python, C++ API를 제공하는 DeepCL도 있습니다.

Tesla P100의 상품 상세는 여기에서 브로셔는 여기에서 보실 수 있습니다. 양산에 돌입했으며 먼저 클라우드 시장에 공급이 되고 내년 1/4분기에는 일반 서버 시장에 공급될 수 있다고 합니다.