I've been looking at the new NVIDIA Jetson TX1 Developer Kit for a few days, and while it's not directly Android-related, it's too cool not to talk about.
This is the future of technology in its own tiny package. Machines can already see, hear and learn. They can drive a car. They can build a car. They fill ink cartridges, test condoms, and pick oranges — all without any direct human intervention. But things get really interesting when you join a bunch of them together and help them teach themselves, and each other.
You've probably heard the term "Neural Network" and might even know what one is and how they work. You get a bunch of powerful computers networked together, and let them let them analyze what they see, or hear, or gather from any other source of input. Together they learn and share data, so they can do things like read handwriting, detect cancer, play chess or trade shares on the stock market. Cognitive science isn't exactly a new thing, but it's taken off in a big way in the past few years.
Products like the NVIDIA Jetson TX1 are going to be a big part of where we go from here, and how fast we get there.
What is the Jetson TX1?
The Jetson TX1 is an embedded "supercomputer" module. It's designed to provide all the computational power needed to run equipment, machinery and the things that haven't been invented yet, and presented as a small (the TX1 module itself is the size of a credit card) package that will fit in places where a conventional large form-factor machine won't. Because of software advancements, GPU computation is leading the innovation in spaces like automation, medical equipment and machine vision. NVIDIA is one of the companies leading the way for GPU computing, both on the hardware and software side.
The Jetson TX1 Developer Kit is a low-cost, commercially available product that allows for development on the exact hardware that will be deployed in the final product. The TX1 module is small, and able to interface through standard input/output channels. The carrier board has all these standard inputs and outputs, saving many hours of fab and design for the software engineering side.
For us, Android and technology enthusiasts, it's probably easier to say what the Jetson TX1 is not. The TX1 isn't something you would buy to build a mini HTPC, for example. There are plenty of boards more suitable for "hobbyists" and hobby-level projects, and they cost a lot less. If you want to build an LED controller for home theater mood lighting, buy a Raspberry Pi or one of the Snapdragon single-board PC units. If you have a need for serious computational work in a more scientific or industrial setting, then you would want to look at the Jetson TX1.
Of course, the TX1 would probably make for a killer HTPC when all is said and done. But you don't need a room's worth of computational power to play videos on your television, and you don't need to spend $600 on the board to get started on one.
The hardware technology
The heart of the TX1 is NVIDIA's 256-core (yes, 256) Tegra X1 processor. It's extremely compact and power efficient, delivering TeraFLOP performance at 16-bits via a quad-core ARM Cortex-A57 CPU and a full-fledged Maxwell GPU. The module also integrates 4GB of LPDDR4 RAM, 16GB of eMMC 5.1 storage, Gigabit ethernet, 802.11ac Wifi (2x2) and it's own PMIC. A 400-pin connector provides both high and low speed industry-standard I/O connections, and a thermal transfer plate allows the use of a single heatsink to keep the module within temperature tolerances.
Also included in the developer's kit is a TX1 carrier board. Using the 400-pin board-to-board connection, the Jeston TX1 provides a complete and flexible development platform, using industry-standard connections. Plug the Jeston TX1 into the carrier board, add the heatsink (the kit we were provided with came pre-assembled) and you have a full development computer, ready for any R&D shop or engineers desk.
Here's a breakdown of the I/O provided by the complete Jeston TX1 Developer Kit:
- Connection to Jetson TX1 Module via 400-pin (8x50) Board-to-Board Connector
- Storage: Full Size SD Card Slot, SATA Connector (Power & TX/RX)
- USB 3.0 Type A + USB 2.0 Micro AB
- Connectivity: Gigabit Ethernet (RJ45 Connector with LEDs), 802.11 ac Wifi, Bluetooth 4.1
- Standard PCIe x4 connector
- Display Expansion Header — DSI (2x4 lanes), eDP x4 lanes, backlight with PWM/Control
- Full sized HDMI 2.0 Type A connector
- Camera Expansion Header: CSI: 6, x2 / 3 x4, Cameral CLK, I2C & Control, I2S, UART, SPI
- M.2 Key E Connector: PCIE x1 Lane, SDIO, USB2.0 / I2S, UART, I2C / Modem and Wifi Control
- Expansion Header: I2C, SPI, UART, I2S, D-MIC, Audio Clock and Control
- Touch Input: SPI/I2C (On Display Header)
- Power, Reset & Force Recovery buttons
- Power and SOC Enale LEDs
- JTAG Connector (Standard 20-pin header)
- Debug Connector (60-pin Board-Board)
- Power, reset, and recovery serial connectors
- JTAG, UART1, I2C and Serial Port Signals on a 1x6 header
- Power: DC Jack: 6V-19V
- Main 3.3V/5V Supplies: 2xTPS53015
- Main 1.8V Supply: APW8805
- USB VBUS Supplies: RT9715 and APL3511
- 12V for PCIe & SATA: LM3481
- Charge Control Header: 10-pin Flex receptacle
Yes, I had to look half of these up myself, so don't feel bad if it's all Greek to you. The point is that the Jetson TX1 Developer Kit is set up to connect to and power just about any sensor, component or peripheral you can buy or develop yourself.
The software technology
The software needed to develop on the Jeston TX1 is both extensive and simple to set up. The Jetson Jetpack is a complete package consisting of Ubuntu 14.04 (including the needed development and compilation tools), required middleware and code samples. The package is customized for the Jetson boards (both last year's Jetson TK1 as well as the more powerful TX1) built from tools familiar to GPU-compute developers and open-source components. The included APIs and various toolkits:
- OpenGL 4.4: A cross-platform, cross-language API for rendering 2D and 3D graphics
- CUDA 7.0: A programming environment for C and C++ developers building GPU-accelerated applications.
- cuDNN 4.0: The CUDA Deep Neural Network libraries, providing highly-optimized routines for designing and training neural networks.
- OpenCV 3.0: (Open Source Computer Vision) A library of functions used for real-time computer vision.
- OpenVX 1.0: Royalty-free standard for cross-platform GPU acceleration of computer vision applications.
- VisionWorks 1.0: A toolkit developed by NVIDIA that provides algorithms optimized for CUDA capable GPUs and SoCs.
- ROS: (Robot Operating System) A set of frameworks and middleware designed for robotic software development.
In addition, a complete set of application design and development tools are provided, aimed for ease-of-use when developing with the Tegra X1 and the Jeston TX1. A full IDE is provided using Eclipse, specialized graphics debuggers with support for OpenGL across platforms, and the NVIDIA PerfKit to debug and profile both OpenGL and D3D applications.
The software installation is designed for users familiar with Linux and development tools, which is who this kit was made for. The process is very straightforward, and your Jetson TX1 will boot to a usable state out of the box. We were provided with the needed tools and updates on an SD card, but end users will have full access to NVIDIA's development tools via the Internet.
You'll be expected to understand how to change permissions, navigate the command line, and flash OS updates via the USB connection to a host machine also running Ubuntu 14.04.
The Jetson Jetpack bundle makes things simple when it's time to install your development tools. A graphical Component Manager (very much like the Android SDK manager) allows you to install, update and manage your tools, samples and various development components in a single window.
Other samples and demos are installed through the native Ubuntu package manager, using NVIDIA's CUDA repository.
A full suite of benchmark tools, code samples and demo applications are provided, and you'll be able to get the answers to any of your questions at NVIDIA's Embedded Computing support site. NVIDIA is serious about their Jetson products, and are in this for the long haul. You'll find ample support, both from users and NVIDIA corporate.
How it fits together
Hardware and software development is hard. It's also very stressful. And it's very rewarding. You need the right tools to get the job started, and a support team with strong shoulders to get the job finished. This is where NVIDIA and the Jetson TX1 come into play.
The TX1 Developer Kit is a complete, out of the box solution to get started with. The hardware is more than capable for the intended use, pretty simple to set up and relatively inexpensive. The software support is excellent, and NVIDIA is taking a vested interest in the platform as a whole, as well as the success of their partners.
Most importantly, the TX1 module was designed specifically for embedded applications that require intensive computation. Using NVIDIA's CUDA libraries and tools, you can get results similar to a high-end desktop CPU, with roughly one-tenth of the power requirements. All from a computer the size of your Visa card.
You're seeing the future of technology that will integrate into all of our lives here. "Smart" machines that think together on a neural network, especially unsupervised learning equipment, need what's called capacity to perform more and more complex analyzation on input. You need powerful computers that are very energy-efficient to gain capacity. The Jetson TX1 is a powerful, energy efficient computer.
The Jetson TX1 Developer Kit ships today for $599. Educational sales are only $299. You can buy from Amazon, Newegg, Micro Center or direct from NVIDIA.