Jetson TK1: Mobile Embedded Supercomputer Takes CUDA Everywhere
By Mark Harris | April 3, 2014
Tags: Computer Vision, CUDA, Embedded, Jetson TK1, Mobile, Tegra
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.
Jetson 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
Jetson 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.
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 a Principal System Software Engineer working on RAPIDS. Mark has twenty years of experience developing software for GPUs, ranging from graphics and games, to physically-based simulation, to parallel algorithms and high-performance computing. While a Ph.D. student at The University of North Carolina he recognized a 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
View all posts by Mark Harris
CUDACasts Episode 21: Porting a simple OpenCV sample to the Jetson TK1 GPU
By Mark Ebersole | October 13, 2014
Low-Power Sensing and Autonomy With NVIDIA Jetson TK1
By Dustin Franklin | June 25, 2014
JetPack 2.3 with TensorRT Doubles Jetson TX1 Deep Learning Inference
By Dustin Franklin | September 12, 2016
CUDACasts Episode 20: Getting started with Jetson TK1 and OpenCV
By Mark Ebersole | August 28, 2014