CUDA6/Jetson TK1 (Tegra K1 SOC) †Kepler Core GPU を搭載した Tegra K1 SOC ボード Jetson の主なハードウェア仕様 †Jetson の主なハードウェア仕様は以下のとおりです。
インストール手順 について †Jetson には L4T(Linux for Tegra) がプリインストールされていますが、 CUDA 6.0 Toolkit for L4T Rel -19.2 について †CUDA 6.0 Toolkit for L4T Rel -19.2 を入手するため L4T のインストール †Jetson から AC アダプタをはずし、ホスト PC と $ mkdir ~/Jetson $ cd Jetson/ $ wget https://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/Tegra_Linux_Sample-Root-Filesystem_R19.2.0_armhf.tbz2 $ wget https://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/Tegra124_Linux_R19.2.0_armhf.tbz2 Tegra124_Linux_R19.2.0_armhf.tbz2をroot権限で展開します。 $ sudo tar xpf Tegra124_Linux_R19.2.0_armhf.tbz2 $ cd Linux_for_Tegra/rootfs/ 移動先ディレクトリ内でもうひとつのダウンロードファイル $ sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R19.2.0_armhf.tbz2 USB 3.0 ポートの設定 †下記URL(PDF)のように Jetson の USB 3.0 ポートは再インストール時、 $ vi jetson-tk1.conf # USB 2.0 operation on USB2 port(J1C2 connector)/for use as root device use ODMDATA=0x6009C000; # USB 3.0 operation on USB2 port(J1C2 connector) use ODMDATA=0x6209C000, requires firmware load from userspace or initial ramdisk ODMDATA=0x6209C000; <- コメントイン #ODMDATA=0x6009C000; <- コメントアウト jetson-tk1.conf 変更完了後、apply_binaries.sh を実行します。 $ cd .. $ sudo ./apply_binaries.sh Using rootfs directory of: /home/beat/Jetson/Linux_for_Tegra/rootfs ... <snip>... Extracting the firmwares and kernel modules to /home/beat/Jetson/Linux_for_Tegra/rootfs Installing the board *.dtb files into /home/beat/Jetson/Linux_for_Tegra/rootfs/boot Success! Jetson 本体の FORCE RECOVERY ボタンを押下しながら電源を入れ $ lsusb | grep -i nvidia Bus 001 Device 002: ID 0955:7140 NVidia Corp. root 権限で以下のコマンドを実行し、 Kernel と rootfs を転送します。 $ sudo ./flash.sh -S 8GiB jetson-tk1 mmcblk0p1 copying dtbfile(/home/beat/Jetson/Linux_for_Tegra/kernel/dtb/tegra124-pm375.dtb) to tegra124-pm375.dtb... done. Making system.img... populating rootfs from /home/beat/Jetson/Linux_for_Tegra/rootfs... done. Sync'ing... done. System.img built successfully. copying bctfile(/home/beat/Jetson/Linux_for_Tegra/bootloader/ardbeg/BCT/PM375_Hynix_2GB_H5TC4G63AFR_RDA_924MHz.cfg) to bct.cfg... done. copying cfgfile(/home/beat/Jetson/Linux_for_Tegra/bootloader/ardbeg/cfg/gnu_linux_fastboot_emmc_full.cfg) to flash.cfg... done. creating gpt(ppt.img)... *** GPT Parameters *** device size -------------- 15766388736 bootpart size ------------ 8388608 userpart size ------------ 15758000128 Erase Block Size --------- 2097152 sector size -------------- 4096 Partition Config file ---- flash.cfg Visible partition flag --- GP1 Primary GPT output ------- PPT->ppt.img Secondary GPT output ----- GPT->gpt.img Target device name ------- none ...<snip>... Create, format and download took 4315 Secs Time taken for flashing 4317 Secs *** The target ardbeg has been flashed successfully. *** Reset the board to boot from internal eMMC. Jetson 上での確認と設定 †L4T を再インストールした Jetson 上で下記の項目の確認と Jetson の Kernel バージョン †Jetson の Kernel バージョンは以下のとおりです。 $ uname -a Linux tegra-ubuntu 3.10.24-g6a2d13a #1 SMP PREEMPT Fri Apr 18 15:56:45 PDT 2014 armv7l armv7l armv7l GNU/Linux Jetson USB 3.0 ポートの確認 †上記USB 3.0 ポートの設定が反映されていることを確認します。 $ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub libglx.so のバックアップ †下記URL(PDF)にあるように、libglx.so のバックアップを作成します。 $ cd /usr/lib/modules/extensions/ $ sudo cp libglx.so __libglx.so_orig リポジトリの追加 †下記 URL にあるように開発用コードを取得しやすくするため、 $ sudo apt-add-repository universe $ sudo apt-get update $ sudo apt-get upgrade 注;sudo apt-get upgrade実行中に更新が停止してしまうことがあります。 CUDA 6.0 Toolkit のインストール †注:cuda-repo-l4t-r19.2_6.0-42_armhf.deb をダウンロードしている前提で記載します。 $ sudo ntpdate ntp.nict.jp $ date cuda-repo-l4t-r19.2_6.0-42_armhf.deb を導入し、リポジトリの更新後 CUDA 6.0 Toolkitを $ sudo dpkg -i cuda-repo-l4t-r19.2_6.0-42_armhf.deb $ sudo apt-get update $ sudo apt-get install cuda-toolkit-6-0 デフォルトユーザ: ubuntu を video グループにいれます。 $ sudo usermod -a -G video ubuntu また .bashrc の末尾に以下の2行を追加し CUDA の環境変数を設定します。 export PATH=/usr/local/cuda-6.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-6.0/lib:$LD_LIBRARY_PATH CUDA Samples の導入と実行 †以下のコマンドを実行し CUDA Samples を導入します。 $ cuda-install-samples-6.0.sh ~/ $ cd NVIDIA_CUDA-6.0_Samples/ $ make $ cd bin/armv7l/linux/release/gnueabihf/ $ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GK20A" CUDA Driver Version / Runtime Version 6.0 / 6.0 CUDA Capability Major/Minor version number: 3.2 Total amount of global memory: 1746 MBytes (1831051264 bytes) ( 1) Multiprocessors, (192) CUDA Cores/MP: 192 CUDA Cores GPU Clock rate: 852 MHz (0.85 GHz) Memory Clock rate: 924 Mhz Memory Bus Width: 64-bit L2 Cache Size: 131072 bytes M aximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 32768 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: No Integrated GPU sharing Host Memory: Yes Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 0 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.0, CUDA Runtime Version = 6.0, NumDevs = 1, Device0 = GK20A Result = PASS Tesla K20c と Jetson TK1 (Tegra K1)の比較 †CUDA5/CentOS6.4の CUDA を CUDA6 に入れ替え、Tesla K20c と Jetson TK1 で CUDA_Samples を実行した結果を
更新履歴 †2014/06/25 Tesla K20c と Jetson TK1 (Tegra K1)の比較 の項を追加 syariten
|