TK1_applications

Jetson TK1: Mobile Embedded Supercomputer Takes CUDA Everywhere

Today, cars are learning to see pedestrians and road hazards; robots are becoming higher functioning; complex medical diagnostic devices are becoming more portable; and unmanned aircraft are learning to navigate autonomously. As a result, the computational requirements for these devices are increasing exponentially, while their size, weight, and power limits continue to decrease. Aimed at these and other embedded parallel computing applications, last week at the 2014 GPU Technology Conference NVIDIA announced an awesome new developer platform called Jetson TK1.

TK1_Dev_Kit-6350-GREEN-V4_280Jetson TK1 is a tiny but full-featured computer designed for development of embedded and mobile applications. Jetson TK1 is exciting because it incorporates Tegra K1, the first mobile processor to feature a CUDA-capable GPU. Jetson TK1 brings the capabilities of Tegra K1 to developers in a compact, low-power platform that makes development as simple as developing on a PC.

Jetson TK1 is aimed at two groups of people. The first are OEMs, including robotics, avionics, and medical device companies, who would like to develop new products that use Tegra K1 SoCs, and need a development platform that makes it easy to write software for these products. Once these companies are ready to move to production, they can work with one of our board partners to design the exact board that they need for their product. The second group is the large number of independent developers, researchers, makers, and hobbyists who would like a platform that will enable them to create amazing technology such as robots, security devices, or anything that needs substantial parallel computing or computer vision in a small, flexible and low-power platform. For this group, Jetson TK1 offers the size and adaptability of Raspberry Pi or Arduino, with the computational capability of a desktop computer. We’re excited to see what developers create with Jetson TK1!

Tegra K1

Tegra K1 is NVIDIA’s latest mobile processor.  It features a Kepler GPU with 192 cores, an NVIDIA 4-plus-1 quad-core ARM Cortex-A15 CPU, integrated video encoding and decoding support, image/signal processing, and many other system-level features.  The Kepler GPU in Tegra K1 is built on the same high-performance, energy-efficient Kepler GPU architecture that is found in our high-end GeForce, Quadro, and Tesla GPUs for graphics and computing. That makes it the only mobile processor today that supports CUDA 6 for computing and full desktop OpenGL 4.4 and DirectX 11 for graphics.

Tegra K1 is a parallel processor capable of over 300 GFLOP/s of 32-bit floating point computation. Not only is that a huge achievement in a processor with such a low power footprint (Tegra K1 power consumption is in the range of 5 Watts for real workloads), but K1′s support for CUDA and desktop graphics APIs means that much of your existing compute and graphics software will compile and run largely as-is on this platform.

Jetson TK1 Features

NVIDIA-Jetson-Pro-Development-Platform-front-back-viewJetson TK1 is a 5″ wide by 5″ long PC board with a Tegra K1 processor, 2 GB of RAM, 16 GB 4.51 eMMC memory, and the following peripherals and ports.

  • 1 Half mini-PCIE slot
  • 1 Full size SD/MMC connector
  • 1 Full-size HDMI port
  • 1 USB 2.0 port, micro AB
  • 1 USB 3.0 port, A
  • 1 RS232 serial port
  • 1 ALC5639 Realtek Audio codec with Mic in and Line out
  • 1 RTL8111GS Realtek GigE LAN
  • 1 SATA data port
  • SPI 4MByte boot flash

In addition the following signals are available through an expansion port: DP/LVDS, Touch SPI, 1×4 + 1×1 CSI-2, GPIOs, UART, HSIC, and i2c.

Camera Support

Jetson TK1 is capable of supporting multiple cameras through a variety of interfaces. A variety of of USB 3.0 and GigE cameras are becoming available, so these ports are useful for cameras as well as networking and other peripherals. An additional GigE port can also be added via the PCI-e x1 port. The CSI 1×4 and 1×1 buses can be used to feed camera images directly into the integrated signal processor (ISP) on Tegra K1 (bypassing memory), for direct image processing.

Software Platform

Jetson TK1 runs Linux For Tegra (L4T), a modified Ubuntu 13.04 Linux distribution provided by NVIDIA. NVIDIA provides the board support package and software stack which includes the CUDA Toolkit and OpenGL 4.4 drivers. You can get downloads for these as well as examples and documentation on the Jetson Support Page.

CUDA for Embedded Applications

Jetson TK1 supports the complete CUDA Toolkit version 6.0. Tegra K1 supports Unified Memory, however in contrast to current desktop / server GPUs, the memory on Tegra is physically unified. However, there are separate GPU and CPU caches. This just means that you need to use the cudaMallocManaged API to allocate memory on Tegra K1, just like you do on Tesla and GeForce; you have the same programming model across all GPUs.

Getting Started and Connecting to Jetson TK1

Getting started with Jetson TK1 is easy, thanks to all the software that comes pre-installed on the on-board flash memory. This means you can take your Jetson TK1 board out of the box, plug in the power supply, an HDMI display, and USB keyboard and mouse (you’ll either need a USB hub or a combined keyboard/mouse that uses a single USB port), power it on, and it is ready to run.  Once you get it set up initially, you may want to remotely connect to Jetson TK1 instead of using it like a PC.  You can connect to Jetson TK1 using a variety of methods, including the serial or USB ports, but the most common is to set it up on your LAN and SSH, or VNC to it.

Once you are up and running, you can download and install the CUDA Toolkit v6.0 and the VisionWorks SDK from the Jetson Support Page, and get started developing amazing software.

Order Jetson TK1 Now, just $192

Jetson TK1 is available to pre-order today for $192. In the United States, it is available from the NVIDIA website, as well as newegg.com and Micro Center. See the Jetson TK1 page for details on international orders.

Tegra® K1 CUDA® Vision Challenge

Do you have a great idea for a Tegra K1-based product or technology? If you are working on computer vision applications in Automotive or Autonomous Vehicles, Defense or Security, Robotics, Medical and Life Sciences or others, this is your opportunity to be among the first 50 developers to run your application on the world’s first embedded supercomputer. Simply submit a proposal of your work by April 30, 2014. Entries will be judged for innovation, impact on research or industry, public availability, and quality of work. The top 50 applicants will be awarded a Jetson TK1 DevKit and access to technical support documents and assets. Make your submission here.

∥∀

About Mark Harris

Mark is Chief Technologist for GPU Computing Software at NVIDIA. Mark has fifteen years of experience developing software for GPUs, ranging from graphics and games, to physically-based simulation, to parallel algorithms and high-performance computing. Mark has been using GPUs for general-purpose computing since before they even supported floating point arithmetic. While a Ph.D. student at UNC he recognized this nascent trend and coined a name for it: GPGPU (General-Purpose computing on Graphics Processing Units), and started GPGPU.org to provide a forum for those working in the field to share and discuss their work. Follow @harrism on Twitter
  • James Price

    Do the drivers for this board provide OpenCL support?

    • http://www.markmark.net/ Mark Harris

      Not at this time. Jetson TK1 is targeted at embedded CUDA applications.

      • http://fortpedro.com/ Tony Becker

        As one who purchased a Jetson TK1 so I could develop for Tegra K1… and having seen several documents from Nvidia indicating that Tegra K1 would support OpenCL 1.2… this is very disappointing.

  • jipe4153

    Getting mine today ;-)

    • http://blogs.nvidia.com Mark Ebersole

      Glad to hear it. Let us know how it goes!

    • Mark Ebersole

      Excellent! Let us know how it goes!

  • KANG CHANG HEE

    how much is the maximum output mipi?

  • timmy

    so i sent email asking for mechanical drawing (dxf or gerber) and drill data so I can make an add-on board utilizing the highdensity board connector and I never got a reply. Is this normal? Should I be contacting someone specific about this kinda stuff?

    • Mark Ebersole

      I think you’re looking for the Jetson TK1 mechanical design link found on the support page: https://developer.nvidia.com/jetson-tk1-support

      If that is not enough, you can try asking specific questions on the support forum here: https://devtalk.nvidia.com/default/board/139/embedded-systems/

      • timmy

        ya saw that. I’m not a 3d cad engineer, so I don’t have any tools to deal with 3d model. all I need is 2d drawing of the PCB outline, mounting holes, and any connector etc position. the documentation didn’t even mention connector part number or manufacturer etc. schematic just shows pin out and nothing else. it’s kinda hard to do add-on board without this info.

        • Mark Ebersole

          We’re working on making the details you’re looking for available on the Jetson TK1 support page. Will probably be a few days, so please check back later!

          • timmy

            great. my board hasn’t shipped yet ( i pre ordered from this site), so hopefully by the time it does, the info will be available.

          • Mark Ebersole

            Trust me, it’s in process. The content needs to go through a number of reviews to make sure we aren’t posting information which isn’t supposed to be public, and to make sure it’s in a usable format.

          • Mark Ebersole

            Try the support page now and see if everything you need is there: https://developer.nvidia.com/jetson-tk1-support

          • timmy

            Hey, looks good
            The DXF was exactly what I needed. Now I can make the expansion board as planned. Thank you!

          • Mark Ebersole

            Glad to help! Keep us posted on anything cool you end up doing with Jetson TK1! You can either comment here, use the contact form, or post on devtalk.nvidia.com.

          • timmy

            OK, so few days have passed, the board was shipped and delivered, and still no trace of mechanical drawing/connector positions/board outline/mounting holes dimensions etc.

            Is there any ETA to when this info will be on the site?
            gerbers for production board would be sufficient, however if that’s not available/under NDA, then just mechanical outline/drill file and maybe top silk or something is all I really need…

  • Mitch Baker

    Hopefully I’ll be lucky enough to win one. I’m only a senior in high school and can’t quite afford one yet. I’d like to see if i’d be able to make this into a mobile hand held solution of some sort, or at the very least a portable solution. I’m still new to all this but I feel that when I get my hands on one it will help improve my knowledge greatly as i love to learn about new technologies.

  • Chen Sun

    >> In addition the following signals are available through an expansion port: DP/LVDS, Touch SPI, 1×4 + 1×1 CSI-2, GPIOs, UART, HSIC, and i2c.
    How to get this expansion port?

    • Mark Ebersole

      The expansion ports are built into the Jetson TK1 board, so they are already present.

  • Clemens Eisserer

    No OpenCL?!

  • Paweł Ptasznik

    Hi, I want to buy this board to develop an autonomous robot.
    1. Assuming that I will only be using an open source tools like OpenCV, may use this robot commercially afterwards (e.g. sell it)?
    2. What is the difference between Linux for Tegra and Debian/Ubuntu/CentOS (assuming that L4T is a Linux distribution, not just a driver package)?
    3. May I install RTLinux kernel patch on it and use it efficiently?
    4. What kind of OS is installed on the board initially?
    Best regards

  • Lachlan Taylor

    Hi there – I have a rendering application called align_image_stack (part of Hugin package for linux) which supports OpenGL 4.4 but not specifically CUDA. Not knowing anything about GPU architecture, can you tell me whether this is likely to work and whether it would utilise all 192 cores? Does OpenGL sit atop CUDA and CUDA is handled by the OS? Apologies – as you can see, I have very limited knowledge of GPU capabilities..

    Thanks. Great product – hopefully it does what I am after…!

    • JohnCalla

      The application would have to be compiled for the ARMv7 processor used on this board if it hasn’t been already. You’ll have to investigate that aspect with the software distributor.

      The board supports OpenGL 4.4. So applications that use OpenGL should be compatible out of the box from that aspect.

      CUDA is a different concept and requires the application to have support built-in. Although CUDA and OpenGL are distinct frameworks for accessing the same GPU hardware, CUDA can be a bit more efficient for many workloads, including image manipulation.

      • Lachlan Taylor

        Ok great. So you are saying if compiled for arm 7 and OpenGL compatible, it should take advantage of all the cores and that CUDA simply just does it better….

        That’s great – thanks for that!

  • Aanchan mohan

    Is there any program to make the Jetson available to researchers outside the field of computer vision? Say perhaps speech recognition?

  • Jason

    I was very surprised to find that this development board does not currently have VDPAU support. Is this something that will be added in a later driver release, or is the hardware functionality missing?

  • http://www.tsubasakato.com Tsubasa Kato

    I really want this! :) My dream will come true! I think it will be useful for defense related applications too.

  • Zhu Peiru

    Hello, Tegra K1 is a greatly excellent product. I have a question whether the VisionWorks library can be run on other GPU of your company such as GeForce because it’s very convenient to develop software in the PC and finally test on the Tegra K1.

  • peepo

    Mark,

    could you please comment?

    you say: you can download and install the CUDA Toolkit v6.0 and the VisionWorks SDK from the Jetson Support Page,

    but 6 months later VisionWorks is not available.

    I bought into Jetson in large part because of the promotion around VisionWorks.

    many thanks

    Jonathan

    • http://www.markmark.net/ Mark Harris

      Sorry about this. I’ve updated the text to be more correct, and will update it again when VisionWorks is released.

      • peepo

        Mark,

        cannot see updated text? currently states: Jetson TK1 comes with NVIDIA’s new VisionWorks Computer Vision Toolkit pre-installed.

        please could you comment on delay?

        apologies, but I do feel this may now be significant.

        Jonathan

        • http://www.markmark.net/ Mark Harris

          Sorry, this was due to miscommunication internally about VisionWorks. It will be available in the future but it is not available today.

  • Amy

    Is tegra support CUDA streams?? I am unable to use stream, it hurts each application on performance

    • http://www.markmark.net/ Mark Harris

      Tegra K1 supports CUDA streams. Can you provide more information about what doesn’t work for you?

      • Amy

        I am facing a problem to execute concurrent kernels on Jetson Tk1. I am using Tegra Jetson TK1 with Linux for Tegra “L4T 19.3 & CUDA Toolkit 6.0″. I am executing a simple program to launch multiple kernels to run concurrently using CUDA Streams. but I am failed every time with my Tegra Jetson TK1.
        So I have tried same code/project on different machine which is MacBookPro with NVIDIA GeForce GT 650M, It is perfectly launching concurrent kernels with optimised time.

        I have also tried samples provided by NVIDIA (i.e samples/6_Advanced/concurrentKernels) program running fine, but kernels are executing sequentially not in concurrent way.

        I am using ubuntu 12.04 for cross compilation to build executable for Tegra Jetson TK1. and I am running from ssh (using Remote Debugging from Nsight IDE) for Profiling. below are the information of my build and target machine.

        Build Machine:

        OS : ubuntu.12.04

        IDE : Nsight 6.0.0

        CUDA Toolkit : 6.0

        Target machine(Jetson TK1):

        OS: L4T 19.3

        CUDA Toolkit : 6.0

        For more information I have attached my sample project with executable ( built for Tegra Jetson Tk1) including profiling screen shots.

        Is Tegra Jetson TK1 supporting concurrent kernels using CUDA Streams.?. If yes, then please help me to execute kernels concurrently on my Tegra Jetson TK1.

        • http://www.markmark.net/ Mark Harris

          Hi Amol, I believe you are running into a known software issue on the Jetson platform, for which we are currently working on a fix.

  • Slipis

    hi

  • Dara Yem

    Hi Mark, just a little curios about NvLink does the motherboard has to support this function build onto it to have that working? Sorry for this question I’m just a regular joe that work in Video Productions and like to keep up with the latest technology that can benefit my skill.

    Thanks