labs.beatcraft.com
CUDA

CUDA/Jetson TK1 (Tegra K1 SOC)

This article is an introduction to Tegra K1 SOC board (hereafter Jetson), which is equipped with Kepler Core GPU. Even though Jetson has already installed Linux for Tegra (L4T) and CUDA 6.0 ToolKit by default, this article shows how to install L4T and CUDA 6.0 ToolKit, from the beginning.

Picture>

Hardware Specification of Jetson

The hardware specification of Jetson is listed below.

Installing Process

Although LT4 (Linux for Tegra) is initially installed in Jetson, this article explains how to install L4T and CUDA 6.0 from the scratch. These processes are based up on the L4T Quick Start Guide. For the details please click the URL shown below.

URL>

Caution1: To apply this installation process, the directory under /home/ubuntu/NVIDIA-INSTALLER will be gone and will NOT be recovered even if you apply the recovery process.

Caution2: To install default L4T, please use the commands below

cd home/ubuntu/NVIDIA-INSTALLER
sudo ./installer.sh

Then, reboot the system. However, installer.sh should only be run once.

The host OS is Ubuntu 12.04 LTS (64bit) . This article assumes that the host OS is already installed and running on your PC. This article does not explain the details of how to install Ubuntu on a PC nor a virtual machine.

About CUDA 6.0 Toolkit for L4T Rel-19.2

To obtain CUDA6.0 Toolkit for L4T Rel-19.2, you need to register for CUDA Registered Developer Program. Even though you register (join) the program, you can not download the Toolkit immediately. It will take a few hours before you can download the Toolkit. For its details, please visit the URL shown below.

URL>

Installing L4T

Remove the AC adapter from Jetson, connect to the host PC via a microUSB cable. Create a working directory on the host OS, and download Tegra_Linux_Sample-Root-Filesystem_R19.2.0_armhf.tbz2 and Tegra124_Linix_R19.2.0_armhf.tb2 from the URL listed below.

URL>

Code>

Applying the root privilege, expand Tegra124_Linux_armhf.tbz2. Eventually, a new directory Linux_for_Tegra is created. Under Linux_for_Tegra directory, there is rootfs directory. Please move to this rootfs directory,

Code>

Move to the rootfs directory. Then, download and expand the other file, Tegra_Linux_Sample_Root_Filesystem_R19.2.0_armhf.tbz2, at the rootfs directory.

Code>

Configuring USB3.0 port

As reinstalling L4T, the USB 3.0 port of Jetson is turned off. As the default setting, the USB port of Jetson is configured as USB 2.0. To be recognized as USB3.0, edit Linux_for_Tegra/Jetson-tk1.conf. For the details, please click the URL shown below.

URL>

This is how the file is edited.

Code> Completing the modification of jetson-tk1.conf, execute apply_binaries.sh. apply_binaries.sh is a script, which places binaries to rootfs.

Code> While push down the button of FORCE RECOVERY on Jetson and push RESET button, Jetson is recognized by the host OS. Then, check the presence of Jetson on host PC by lsusb. If it has not been recognized, push RESET button again.

Code>

Applying the root privilege, execute the command shown below. Kernel and rootfs are transfered. Because of NFS mount and transfer by tft, it will take at least 30 minutes to complete the transfer.

If not automatically execute reset when the transfer is completed, please push the RESET button and execute reset.

When reset is completed, the recovery of L4T is completed.

Code>

Checking and Setting up L4T on Jetson

Checking and setting up L4T, which is re-installed on Jetson. User Name and Password are Ubuntu and Ubuntu, respectively.

Checking Kernel Version of L4T on Jetson

Kernel version of L4T on Jetson is listed as it is followed.

Code>

Checking USB 3.0 port of Jetson

To check enabling USB 3.0, apply lsusb command.

Back up libgix.so

Create a back-up of libgix,so. When the update of xserver overwrite libgix.so, this libfgix.so is used for brunging back to the previous settings. For more details, please look at the PDF, which the URL points out below.

URL>

Code>

Adding extra repository

To obtain the code for development, easily, an extra repository is added. The URL below provides more information on adding an extra repository.

URL>

Code> Caution: Sometimes, the currently executing process is suspended, as applying sudo apt-get upgrade. If this happens, reset, first. Execute sudo dpkg –configure -a. Then, re-execute sudo apt-get update, and sudo apt-get upgrade.

Installing CUDA6.0 ToolKit

Caution: Assuming that you have already downloaded cuda-repo-14t-r19.2_6.0-42_armhf.deb.

Before reinstalling CUDA6.0 Toolkit, reset the clock by the command of ntpdate. This is for avoiding warnings of time conflicts when cuda-repo-14t-r19.2_6.0-42_armhf.deb is installed.

Code>

Install cuda-repo-14t-r19.2_6.0-42_armhf.deb, and update repository. Then, CUDA 6.0 Toolkit is installed.

Code>

Default user, Ubuntu, is added to the video group.

Code>

Then, set the environment variable as adding the two lines of code to the end of .bashrc.

Code>

Installing and Executing CUDA Samples

Applying the commands below, install and build CUDA Samples.

After its build process is completed, move to the directory of ~/NVIDIA_CUDA-6.0_Samples/bin/armv7l/linux/release/guneabihf. Then, execute deviceQuery, which is listed at the section of Running the Binaries of NVIDIA CUDA Getting Started Guide for Linux.

URL>

Code>

Compare and Comparison between Tesla K20c and Jetson TK1 (Tegra K1)

Update CUDA of the machine, which is introduced at the article of CUDA5/CentOS6.4 to CUDA6, compare and comparison of executing results of the CUDA_Samples between them.

The major differences are defined in bold.

Table> Caution: Tesla K20c does have 13 units of MP.


Front page   New List of pages Search Recent changes   RSS of recent changes