ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [딥러닝; Deep Learning] NVIDIA 엔비디아 Jetson Tx2 알아보기!!!
    Deep Learning | AI/임베디드: Jetson Tx2 2020. 7. 1. 16:56

    1. Jetson Tx2란???

        Jetson Tx2는 GPU 개발로 유명한 NVIDIA사에서 개발한 임베디드 보드입니다. 이 Jetson Tx2는 NVIDIA사가 GPU로 유명한 만큼, 컴퓨터 과학(Computer Science)분야 중에서도 특히 Deep Learning에 강점을 보이는, 초점을 맞춘 Device(기기)라고 볼 수 있습니다.

        이 글을 읽고 계신 분들이라면, 대부분 이 분야에 대해 어느 정도 지식을 가지신 분들이라고 추측이 됩니다. 그래서, Arduino를 직접 만져보셨거나 행여 만져보지 않았더라도 들어보시긴 했을 겁니다. 이 Jetson Tx2 기기는 이러한 Arduino의 고차원 상위 호환 임베디드 보드라고 생각하면, 편하실 것 같습니다.

        Linux계열의 OS를 지원하며, 실제 Host 컴퓨터와 상호작용이 가능하며, 여러 가지 라이브러리와 프레임워크 등의 수 많은 소프트웨어와의 호환성을 보이는 AI Computing Device입니다. NVIDIA Jetson Tx2는 간단하게 이렇게 소개를 할 수 있겠습니다. 더욱 자세한 사항은 다음 부제목 및 설명을 통해 알아봅시다.

    Jetson Tx2 Developer Kit    출처: NVIDIA 공식 사이트

     

     

    2. Jetson Tx2의 구성 부품???

        Jetson Tx2가 하나의 임베디드 보드이지만, 또 다르게는 하나의 소형 컴퓨터로도 볼 수 있습니다. 컴퓨터라면, 스펙과 사양을 확인해보지 않을 수가 없겠죠? 다음 아래는 NVIDIA 공식 사이트 문서에서 가져온 (제가 사용하는) Jetson Tx2의 스펙입니다!

     

       - CPU: ARM Cortex-A57 (quad-core) @ 2GHz / NVIDIA Denver2 (dual-core) @ 2GHz

       - GPU: 256-core Pascal @ 1300MHz

       - Memory: 8GB 128-bit LPDDR4 @ 1866MHz | 59.7 GB/s

       - Storage: 32GB eMMC 5.1

       - Encoder: 4Kp60, (3x) 4Kp30, (8x) 1080p30

       - Decoder: (2x) 4Kp60

       - Camera: 12 lanes MIPI CSI-2 | 2.5 GB/sec per lane | 1400 megapixels/sec ISP

       - Display: 2x HDMI 2.0/ DP 1.2/ eDP 1.2 MIPI DSI

       - Wireless: 802.11a/b/g/n/ac 2x2 867Mbps | Bluetooth 4.1

       - Ethernet: 10/100/1000 BASE-T Ethernet

       - USB: USB 3.0 + USB 2.0

       - PCIe: Gen | 1x4 + 1x1 or 2x1 + 1x2

       - CAN: Dual Can bus controller

       - Misc I/O: UART, SPI, I2C, I2S, GPIOs

       - Socket: 400-pin Samtec board-to-board connector, 50x87mm

       - Thermals: -25℃ to 80℃ 

       - Power: 7.5W

     

        자세한 사항은 아래 사이트를 참조해 주세요!

        https://developer.nvidia.com/embedded/develop/hardware

     

     

    3. Jetson Tx2는 왜 쓸까???

        먼저, NVIDIA에서는 Jetson Tx2와 비슷하게 현재 Jetson Tx1, Jetson Nano, Jetson AGX Xavier 등과 같은 기기들을 공개하고 있습니다. 이러한 기기들을 통틀어 Jetson Series라고 합니다. Jetson Series는 개발자들이 꽤나 많이 찾는 이유가 있습니다.

        그 전에 일반적으로 싼 가격에 머신 러닝을 구동시키기 위해서는 Raspberry Pi(통칭 라즈베리 파이)를 많이 이용하고 있습니다. 가격을 비교해 보시면, 라즈베리 파이 보드가 약 4~5만원 선에 소비자 가격이 형성되어 있고, Jetson Series는 가장 저렴한 Jetson Nano가 약 15만원 선에서 소비자 가격이 형성되어 있습니다. 백번 양보해도 라즈베리 파이가 가격적으로는 눈이 갑니다. 하지만, 라즈베리 파이는 가벼운 머신 러닝 혹은 학생들의 학습을 위해 많이 사용됩니다. (물론 개발자들이 쓰지 않는 것은 아닙니다.)

        그렇다면, 본격적으로 Jetson Tx2는 왜 사용할까요? 비싸도 사용하는 이유가 있겠죠? 그 이유는 여러가지로 뽑을 수 있습니다. 제가 생각했을 때 Jetson Tx2를 사용하게 되는 이유는 아래와 같습니다.

     

    1. 꽤 무거운 수준의 딥러닝도 거의 무리 없이 구동이 가능하다.
    2. NVIDIA의 꾸준한 개발과 수정으로 지원 영역의 폭이 넓다.
    3. Jetson Series의 포럼이 아주 크게 형성되어 있다(실 개발자의 답변을 얻을 수 있다!).
    4. 다양한 소프트웨어, 프레임워크 및 언어와의 호환성이 좋다.
    5. NVIDIA사의 딥러닝 특화 알고리즘 사용이 가능하다.

        여기서 저는 모두 좋은 특성이지만 특히나 1, 4, 5번의 장점이 매우 매력적이라고 생각합니다! Jetson Series 기기를 사용하는 대부분의 사람들에게 Jetson Series의 가장 근본적인 이유는 1번 항목에 있을 것입니다. 4번의 경우는 다음 문단에서 논해보도록 합시다. 5번의 경우, 정말 최고의 매력적인 특성이라고 생각합니다. NVIDIA사는 기본적으로 GPU로 유명합니다. AI의 이슈화로 인해 머신러닝과 딥러닝도 각광받게 되었는데요. 이러한 머신러닝과 딥러닝은 CPU보다는 GPU에 매우 의존적이게 됩니다. 머신러닝부터는 병렬 처리가 필요하기 때문입니다. 

        어찌됐든, Jetson Series를 이용하게 되면, 우리는 TensorRT라는 딥러닝 가속화 라이브러리 소프트웨어를 사용할 수 있습니다. 이 TensorRT가 얼마나 큰 영향력을 갖고 있냐면, TensorRT를 사용하지 않았을 때의 딥러닝 처리 속도를 몇 배부터 몇 백배까지 빠르게 가속화할 수 있습니다. 만약 다른 임베디드에는 이런 지원이 있을 수도 있고 없을 수도 있지만, NVIDIA사의 TensorRT 딥러닝 가속 알고리즘은 거의 독보적이라고 할 수 있습니다. 기본적으로 Jetson Series는 이 TensorRT를 사용할 수 있게끔 기본적으로 설계되어 나오지만, 다른 임베디드 보드를 이용하거나 다른 컴퓨터를 통해 TensorRT를 이용하기 위해서는 NVIDIA사의 GPU를 필수로 요구합니다. 그러니, GPU의 교체가 어려운 타 딥러닝 임베디드 보드에 대해서는 절대적으로 장점을 갖고 있다고 할 수 있습니다.

    출처: https://bit.ly/2VF4uj7

        여기서 우리는 TensorRT의 힘을 알 수 있습니다. 다른 소프트웨어와의 결합보다도 TensorRT와의 결합시 처리 속도가 월등합니다. 그리고 이러한 TensorRT는 정말 많은 곳에 사용되고 있습니다. 아래는 TensorRT를 사용하고 있는 기업들의 목록입니다. 우리나라 SK Telecom도 있네요.

    출처: https://developer.nvidia.com/tensorrt

     

     

    4. 호환 소프트웨어는???

        호환이 가능한 소프트웨어는 정말 많습니다. 다음의 프레임워크들이 모두 호환 가능합니다. 이는 Major Framework들이고, 이 밖에도 매우 많은 종류의 소프트웨어 라이브러리와 호환이 가능합니다.

    - OpenCV

    - TensorFlow

    - MathWorks(MATLAB)

    - Caffe

    - PyTorch

    - Chainer

    - mxnet

    - CNTK

    - PaddlePaddle

     

     

    오늘은 이렇게 글을 마치도록 하겠습니다! 시간이 되는대로 Major Frameworks중에서도 가장 많이 쓰는 소프트웨어들에 대해서 이 소프트웨어는 무엇인지, 그리고 왜 쓰는지에 대해서 작성(수정)해 놓도록 하겠습니다! 오늘도 좋은 하루 되시구요! 

    다음 글에서는 Jetson Tx2를 어떻게 사용하는 지에 대한 글로 찾아 오도록 하겠습니다!

Designed by Tistory.