Jetson Xavier - Initial Thoughts

5 minute read

Published:

Ever since the Jetson Xavier was announced, I’ve been itching to get my hands on one of them to put it through it’s paces. Thanks to James over at Ghost Robotics I finally get to play with one of these. I’ve spent a fair amount of time with the Jetson TX1 and Jetson TX2 and I will be making direct comparisons to the Xavier’s predecessor, the TX2.

Hardware and Design

Out of the box, the Xavier devkit in no way resembles the previous devkits, and that’s a good thing because the previous dev kits had limited to no practical value for what we use them for (mobile robots - Falcon 250 + Open Vision Computer). The entire physical footprint of the devkit is slightly larger than the actual module, and it appears that it couldn’t get much smaller even in a tightly packed carrier board (good job @nvidia). However, the first reaction is to the weight of this unit. It weighs roughly 660gms out of the box, without the power supply. Since this is a loaner unit and since I cannot gut the thing yet, I will guesstimate that most of this weight is the extremely heavy heat sink and casing. I will update this post once I get my own unit and take all of that off! The unit is a bit tall too but it’s mostly 70% heatsink and fan enclosure.

Figure 1: TX2 devkit vs Xavier devkit (food truck cash card for size comparison) devkit-comparisons-1 Figure 2: Height Comparison devkit-comparisons-2 Figure 3: The incredible bulk xavier-weight Figure 4: Dimensions xavier-height Figure 5: Dimensions xavier-width Figure 6: Under the carrier hood xavier-carrier Figure 7: Power suply xavier-ps

Adding to the good news, this product seems well build and extremely well protected. If weight isn’t a problem, I would strap one of these onto a robot directly without the hassle of manufacturing or buying a separate carrier board.

I would have liked if there was at least another USB Type A port. The eSATAp+USB3.0 TypeA port is cool but I think most robotics peripherals are still on Type A and I would have preferred not to bring the battle of dongles into the robotics world, but oh well. The kind folks at NVIDIA do ship the devkits with USB-C to Type-A dongles and don’t charge you extra for it (take that @apple). Apart from the USB-C, the rest of the I/O is similar to the TX2 dev-kits. There’s an additional M2 which will definitely prove usefull. For those that care, the power supply adapter is now a bit smaller too. Now, onto the fun stuff..

Specifications and Performance

CUDA Compatibility Major/Minor version number: 7.2

Multiprocessors: 8 (TX2 has 2)

CUDA Cores/Mp: 64 (TX2 has 128)

Total CUDA Cores: 512 (TX2 has 256)

Global Memory: ~16GB (TX2 has ~8GB)

GPU Max Frequency: 1500GHz (TX2 has 1300GHz)

Memory Clock Rate: 1500MHz

Memory Bus Width: 256-bit (TX2 has 128-bit)

Figure 8: Device Query device-query

The CUDA Cores to Multiprocessor ratio is interesting. I will post a more detailed follow up with actual benchmarks on my code soon. I suspect the Xavier will be able to better handle multiple CUDA streams and kernel launches because of this, and that is exciting.

In the CPU realm, the Xavier brings 8 ARMv8 Processor cores, which seem to perform significantly better than the TX2, where the Denver cores didn’t really make significant contributions to performance. The CPU max frequency is 2265Hz and I did a little stress test to see how hot things could get.

sudo ./jetson_clocks

Here is somewhat of a baseline for CPU and GPU temperatures. The device was idling when these were recorded. These are not freshly booted temperatures. Those are in the late 30 degres celsius range.

Figure 8: Before CPU stress test: thermal-baseline

Let’s stress it out:

stress --cpu 8 --io 6 --vm 6 --vm-bytes 2048M --timeout 600s

Figure 9: Stress temperatures: thermal-cpu

CPU-bound processes seem to be handled fairly well. I ran the stress test for 10 minutes each a few times and temperatures stayed in the 50s.

To add some fuel to the fire, I threw in a pretty intensive GPU-bound process to the mix (and dialed back the CPU stress io and vm parameters to 2).

./nbody_opengles -benchmark -fp64 -fullscreen -numbodies=1000000

Figure 10: GPU Stress temperatures: hot-hot-hot

Things got hot. Both CPU and GPU internal temperatures began to cross the 70 degree mark. Temperatures remained in the 70s and didn’t appear to increase much even at 100% CPU and 100% GPU usage.

While the devkit seems to be well cooled, I suspect the Xavier will not take well to having it’s heatsink, fan and casing thrown away (as we bravely do with the Falcon 250, but that is an experiment I still intend on performing).

Final Thoughts

30-10-02: I think this is a great step forward when compared to the TX2 devkits. Performance out of the box is impressive. A proper benchmark on existing TX2 code is next on the to-do list along with a more comprehensive thermal analysis experiment without the fan and heat sink.