Jetson Xavier NXにHalide環境を入れてみた(docker)
初めての投稿ですが、メモ的な内容を書きます。少しずつ整理していきます。
高速で画像処理したいことがあったので、色々調べていたらHalideに辿り着きました。なんだか凄そうなので、勉強してみようと思い立ったものの、手元にGPUを積んだデバイスはJetson(借物)しかなかったので、Jetsonを使う事にしたのですが、沼にはまりました。
当初は、環境構築はこちらのDockerfileで一発楽勝じゃん、と思っていましたが、全くダメでした。
linuxとかdockerとか良く分からない素人なりにGoogleでひたすら検索しながら進めました。
【環境】
Jetson Xavier NX
Jetpack4.5
【Docerfile】
FROM ubuntu:18.04
RUN apt-get update && apt install -y --no-install-recommends \
ca-certificates build-essential python python3 wget git unzip \
ninja-build zlib1g-dev libssl-dev libtinfo-dev libxml2-dev clang
RUN cd /tmp && wget https://github.com/llvm/llvm-project/releases/download/llvmorg-12.0.1/clang+llvm-12.0.1-aarch64-linux-gnu.tar.xz
RUN cd /tmp && tar -Jxvf clang+llvm-12.0.1-aarch64-linux-gnu.tar.xz
RUN export PATH/tmp/clang+llvm-12.0.1-aarch64-linux-gnu/bin/llvm-config:$PATH
RUN ldconfig
RUN cd / && git clone https://github.com/Kitware/CMake
RUN cd CMake && ./bootstrap && make && make install
RUN echo export PATH=$HOME/cmake-3.17.1/bin/:$PATH
RUN cd / && git clone https://github.com/halide/Halide.git
RUN ldconfg
RUN cd /Halide && mkdir halide_build
RUN cd /Halide/halide_build && make -f ../Makefile
dockerを立ち上げた後、halideのライブラリパスを書いた"halide.conf"を"/etc/ld.do.conf.d/"に入れる。
【注意】
halaideのビルドにはllvm12以上が必要なのでプレビルドのバイナリをダウンロードして使う。
llvmはこちら<https://github.com/llvm/llvm-project>
halideはこちら<https://github.com/halide/Halide>
cmakeは3.16以上が必要なのでソースからビルドする。
【動作確認】
とりあえずhalideのlesson_01_basic.cppをビルドしてみたらSuccess!と出たので上手くいったのかな。 lesson_01_basic.cppはこちら ビルドのコマンドはこちら
g++ lesson_01*.cpp -g -I <path/to/Halide.h> -L <path/to/libHalide.so> -lHalide -lpthread -ldl -o lesson_01 -std=c++17