HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2021/02/27

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で PyTorch 1.7.1をビルドする方法 【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で PyTorch 1.7.1をビルドする方法

(OpenPifPafは PyTorch 1.7.1以上が必要なので PyTorch 1.7.1をビルドしてインストールします)

Tags: [Raspberry Pi], [電子工作], [ディープラーニング]




● NVIDIA Jetson Xavier NX、NVIDIA Jetson Nanoの違い、性能比較

Xavier NXNano
性能比6~30倍1
AI性能比21 TOPs472 GFLOPs
メモリ8GB4GB
M.2 SSD対応非対応
電源付属別売り
ファン内蔵別売り
SDカード別売り別売り
ケース別売り別売り
消費電力10W / 15W5W / 10W
 ※ 廉価版として Jetson Nanoの 2GB版が有りますが、メモリが足りなくて不幸なので買っちゃ駄目!


NVIDIA Jetson Xavier NX Developer Kit 開発キット クラウドネイティブ AIコンピュータ ディープラーニング
ASIN: B088TTD1QT

※ 低価格のハイエンドモデル

NVIDIA Jetson Nano Development Kit B01 開発キット AI コンピュータ 人工知能 エッジコンピューティング
ASIN: B085NQTKS9

※ 入門用の低価格 4GB版

GeeekPi Jetson Nanoケース(Jetson Nano B01およびA02バージョンをサポート)NVIDIA Jetson Nano開発者キットに適したファン付きJetson NanoケースSmall AI Powerful Computer
ASIN: B085PZ4F3X

SanDisk ( サンディスク ) 128GB microSD Extreme PRO microSDXC A2 SDSQXCY-128G-GN6MA [ 海外パッケージ品 ]
ASIN: B07G3H5RBT

※ 高速、大容量 SDカード


2020/06/27
【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!
【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!

  【ザビエル元年】Jetson Xavier NX 開発者キットを最安値で購入で、しかも国内在庫で注文から翌日で到着、ザビエル開封レビュー

2019/03/20
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

● Jetson Nano、Jetson Xavier NXの便利スクリプト

2020/07/03
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト

  Jetsonの面倒な初期設定やミドルウェアのインストールを bashスクリプトの実行だけで簡単にできます


● NVIDIA Jetsonの JetPack 4.5.1環境で PyTorch 1.7.1をビルドする方法

 2021年 JetPack 4.5.1の公式は PyTorch 1.7.0です。

 openpifpafは PyTorch 1.7.1以上が必要なので PyTorch 1.7.1をビルドしてインストールします。

PyTorch

vita-epfl / openpifpaf

PyTorch for Jetson - version 1.7.0 now available

 また、PyTorchのビルドで、gcc 7系はバグが有るので gcc 8系 gcc 8.4をインストールするのがオススメです。
 ※ 正確には gcc 8.3以下はバグ有りで駄目

2021/02/27
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で gcc 8.4をインストールする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で gcc 8.4をインストールする方法

  2021年 JetPack 4.5.1は いまだに gcc 7.5.0なので gcc 8.4.0をインストールします

# https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-7-0-now-available/72048

# Build wheel for Python 3.6 (to pytorch/dist)
sudo apt-get install -y python3-pip cmake libopenblas-dev

export USE_NCCL=0
# skip setting this if you want to enable OpenMPI backend
export USE_DISTRIBUTED=0
export USE_QNNPACK=0
export USE_PYTORCH_QNNPACK=0
export TORCH_CUDA_ARCH_LIST="5.3;6.2;7.2"

# without the leading 'v', e.g. 1.3.0 for PyTorch v1.3.0
export PYTORCH_BUILD_VERSION=1.7.1
export PYTORCH_BUILD_NUMBER=1
cd
git clone --recursive --branch v$PYTORCH_BUILD_VERSION http://github.com/pytorch/pytorch --depth 1
cd pytorch

# Apply Patch PyTorch issue #8103
# too many CUDA resources requested for launch error
# https://github.com/pytorch/pytorch/issues/8103#issuecomment-514802040

# https://gist.github.com/dusty-nv/ce51796085178e1f38e3c6a1663a93a1#file-pytorch-1-7-jetpack-4-4-1-patch
# // See https://github.com/pytorch/pytorch/issues/47098
# // patch for gcc 7 bug returns incorrect result on aarch64 if compiled by gcc-7.5.0
sed -i 's/#if defined(__aarch64__)/#if defined(__aarch64__)\n#if defined(__clang__) || (__GNUC__ > 8 || (__GNUC__ == 8 \&\& __GNUC_MINOR__ > 3))/' aten/src/ATen/cpu/vec256/vec256_float_neon.h

sed -i 's/}}}/#endif\n}}}/' aten/src/ATen/cpu/vec256/vec256_float_neon.h

# // patch for "too many resources requested for launch"
sed -i 's/device_prop, device_index));$/device_prop, device_index));\n  device_prop.maxThreadsPerBlock = device_prop.maxThreadsPerBlock \/ 2;/' aten/src/ATen/cuda/CUDAContext.cpp
grep maxThreadsPerBlock aten/src/ATen/cuda/CUDAContext.cpp

# // patch for "too many resources requested for launch"
sed -i 's/int CUDA_NUM_THREADS = .*;/int CUDA_NUM_THREADS = 512;/' aten/src/ATen/cuda/detail/KernelUtils.h
grep CUDA_NUM_THREADS aten/src/ATen/cuda/detail/KernelUtils.h

# // patch for "too many resources requested for launch"
sed -i 's/int CUDA_NUM_THREADS = .*;/int CUDA_NUM_THREADS = 512;/' aten/src/THCUNN/common.h
grep CUDA_NUM_THREADS aten/src/THCUNN/common.h
sudo pip3 install -r requirements.txt
sudo pip3 install scikit-build
# Successfully installed distro-1.5.0 packaging-20.9 pyparsing-2.4.7 scikit-build-0.11.1

sudo pip3 install ninja
# Successfully installed ninja-1.10.0.post2

free -h
# Jetson Xavier NX
#               total        used        free      shared  buff/cache   available
# Mem:           7.6G        305M        5.1G         20M        2.2G        7.1G
# Swap:          3.8G          0B        3.8G

# Jetson Nano
#               total        used        free      shared  buff/cache   available
# Mem:           3.9G        225M        1.5G         18M        2.1G        3.5G
# Swap:          1.9G          0B        1.9G

# if Jetson Nano Need export MAX_JOBS=3 to Reduce Memory usage
export MAX_JOBS=3

time python3 setup.py bdist_wheel
# Jetson Xavier NX
# real    355m36.122s
# user    1941m55.096s
# sys     78m0.800s

# Jetson Nano
# real    698m59.398s
# user    1927m0.192s
# sys     80m49.916s


find ./ -name "*.whl"
# ./dist/torch-1.7.1-cp36-cp36m-linux_aarch64.whl

ls -l ./dist/torch-1.7.1-cp36-cp36m-linux_aarch64.whl
# -rw-rw-r-- 1 jetson jetson 249073141 Mar  1 22:24 ./dist/torch-1.7.1-cp36-cp36m-linux_aarch64.whl
# Install PyTorch 1.7.1 from wheel
sudo apt-get install -y libopenblas-base libopenmpi-dev

# RuntimeError: Python version >= 3.7 required
sudo pip3 install Cython==0.29.22
sudo pip3 install numpy==1.19.5

#     The headers or library files could not be found for jpeg,
#     a required dependency when compiling Pillow from source.
#
#     Please see the install instructions at:
#        https://pillow.readthedocs.io/en/latest/installation.html
# Prerequisites for Ubuntu 16.04 LTS - 20.04 LTS are installed with
# https://pillow.readthedocs.io/en/latest/installation.html
sudo apt-get install -y libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \
    libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk \
    libharfbuzz-dev libfribidi-dev libxcb1-dev

sudo pip3 install Pillow==8.1.0
sudo pip3 install matplotlib==3.3.3

# sudo pip3 install --upgrade --force-reinstall ./dist/torch-1.7.1-cp36-cp36m-linux_aarch64.whl

sudo pip3 install ./dist/torch-1.7.1-cp36-cp36m-linux_aarch64.whl
# Successfully installed torch-1.7.1

pip3 list --format=legacy | grep torch
# torch (1.7.1)

cd
python3 -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name())"
# Jetson Xavier NX
# 1.7.1
# True
# Xavier

# Jetson Nano
# 1.7.1
# True
# NVIDIA Tegra X1


● torchvision v0.8.2
# torchvision v0.8.2
sudo apt-get install -y libavcodec-dev
sudo apt-get install -y libavformat-dev
sudo apt-get install -y libswscale-dev

cd
git clone --recursive --branch v0.8.2 https://github.com/pytorch/vision --depth 1
cd vision

time sudo python3 setup.py install
# Using /usr/local/lib/python3.6/dist-packages
# Finished processing dependencies for torchvision==0.8.0a0+2f40a48

# Jetson Xavier NX
# real    4m18.352s
# user    19m39.352s
# sys     1m44.984s

cd
python3 -c "import torchvision; print(torchvision.__version__);"
# 0.8.0a0+2f40a48 (torchvision v0.8.2)

pip3 list --format=legacy | grep torch
# torch (1.7.1)
# torchvision (0.8.0a0+2f40a48)
python3 -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name())"

python3 -c "import torchvision; print(torchvision.__version__);"


● openpifpaf


2021/02/27
【2021年】NVIDIA Jetsonに OpenPifPafで人体骨格検出を動かす!
【2021年】NVIDIA Jetsonに OpenPifPafで人体骨格検出を動かす!

  Jetsonで PyTorch + OpenPifPafで人体骨格検出を行なう!

 gcc 8.4でビルドの PyTorchは動作 OK
・openpifpaf with PyTorch 1.7.1 and gcc 8.4 OK
openpifpaf with PyTorch 1.7.1 and gcc 8.4 OK



 gcc 7系でビルドの PyTorchは動作 NG
 ※ 正確には gcc 8.3以下はバグ有りで駄目
 ※ gccバグのパッチを当てなかった場合

Many vec256 operations returns incorrect result on aarch64 if compiled by gcc-7.5.0 #47098

・openpifpaf with PyTorch 1.7.1 and gcc 7 bug operations returns incorrect result on aarch64 if compiled by gcc-7.5.0 #47098
openpifpaf with PyTorch 1.7.1 and gcc 7 bug operations returns incorrect result on aarch64 if compiled by gcc-7.5.0 #47098





Tags: [Raspberry Pi], [電子工作], [ディープラーニング]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト

  Jetsonの面倒な初期設定やミドルウェアのインストールを bashスクリプトの実行だけで簡単にできます

【2021年】NVIDIA Jetsonに OpenPifPafで人体骨格検出を動かす!
【2021年】NVIDIA Jetsonに OpenPifPafで人体骨格検出を動かす!

  Jetsonで PyTorch + OpenPifPafで人体骨格検出を行なう!

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で Python 3.7.10をビルドする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で Python 3.7.10をビルドする方法

  2021年 JetPack 4.5.1は いまだに Python 3.6.9なので Python 3.7.10をビルドしてインストールします

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で gcc 8.4をインストールする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で gcc 8.4をインストールする方法

  2021年 JetPack 4.5.1は いまだに gcc 7.5.0なので gcc 8.4.0をインストールします

【2021年】NVIDIA Jetsonに DeepStream Human Pose Estimationで人体骨格検出を動かす!
【2021年】NVIDIA Jetsonに DeepStream Human Pose Estimationで人体骨格検出を動かす!

  Jetsonで DeepStream Human Pose Estimationでリアルタイムに人体骨格検出を行なう!

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境に DeepStream SDKをインストールする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境に DeepStream SDKをインストールする方法

  2021年 JetPack 4.5.1に DeepStream SDKをインストールして DeepStreamのサンプルを動かして機械学習を遊ぶ

【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも爆速なな trt_poseを動かす方法
【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも爆速なな trt_poseを動かす方法

  trt_poseは爆速な姿勢推定を Jetsonで動かす!!! OpenPoseよりも爆速!!!

【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも軽量で爆速な trt_pose_handを動かす方法
【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも軽量で爆速な trt_pose_handを動かす方法

  trt_pose_handは爆速な Hand Pose Estimation And Classification!!!

【2021年】NVIDIA Jetsonの Ubuntsuデスクトップのスクリーンセーバーを無効にする方法
【2021年】NVIDIA Jetsonの Ubuntsuデスクトップのスクリーンセーバーを無効にする方法

  Jetsonの Ubuntsu GONOME Desktopの Screen Saverを無効にする方法

NVIDIA Jetsonで JetPack 4.5 cuDNN 8.0環境で OpenPose 1.7.0をビルドする方法
NVIDIA Jetsonで JetPack 4.5 cuDNN 8.0環境で OpenPose 1.7.0をビルドする方法

  OpenPose 1.7.0で cuDNN 8.0に正式に対応しました! JetPack 4.5で OpenPoseをビルドする

【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!
【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!

  【ザビエル元年】Jetson Xavier NX 開発者キットを最安値で購入で、しかも国内在庫で注文から翌日で到着、ザビエル開封レビュー

NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

【2021年】NVIDIA Jetsonで NumPyモジュールのバグで苦戦!
【2021年】NVIDIA Jetsonで NumPyモジュールのバグで苦戦!

  NumPyモジュールの最近の一部のバージョンには相性問題(不具合?)で地雷バージョンが有ります

【メモリ8GB】Raspberry Pi 4 Model B 8GBを KSYで最安値で購入。ベンチマークレビュー
【メモリ8GB】Raspberry Pi 4 Model B 8GBを KSYで最安値で購入。ベンチマークレビュー

  【技適取得】ラズパイ4B 8GBモデルを入手。従来の Pi3、Pi3B+と速度比較

【Vulkan】Raspberry Pi 4 Model Bで Vulkanドライバをビルドして 3Dグラフィックのデモを動かす
【Vulkan】Raspberry Pi 4 Model Bで Vulkanドライバをビルドして 3Dグラフィックのデモを動かす

  【v3dv】ラズパイ4Bで Vulkan APIを動かす、VK_ICD_FILENAMES broadcom_icd.armv7l.json

PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利
PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利

  ピクチャ イン ピクチャ機能付き 4K入力対応の 4入力 1出力 HDMI切り換え機 HDSFX0401P

EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強
EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強

  TESmart HMA0402A30 マトリックス切り替えで液晶画面 2台に接続できて更に EDID保持の便利機能付き HDMI切り換え機

機械学習用に画像検索の結果一覧のサムネイル画像を JavaScriptで全自動で一括で取得する方法
機械学習用に画像検索の結果一覧のサムネイル画像を JavaScriptで全自動で一括で取得する方法

  画像検索結果一括ダウンローダ、JavaScript言語を使って、ブラウザの開発者モードのコンソールで動かします、ググれ勝つ




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2021 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/nvidia_jetson_build_pytorch_1_7_1/