網頁

2019年8月27日 星期二

nethogs
Monitor Per Process Network Bandwidth Usage in Real Time

iotop
simple top-like I/O monitor

2019年8月24日 星期六

Build OpenCV 3.4 with CUDA

Build OpenCV 3.4 on NVIDIA Jetson AGX Xavier Developer Kit

原先內建的 OpenCV 放在 /usr
心建立的會放在 /usr/local

$ git clone https://github.com/jetsonhacks/buildOpenCVXavier.git
$ cd buildOpenCVXavier
$ git checkout v1.0
$ ./buildOpenCV.sh

sudo ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so envs/OpenAiGym/lib/python3.6/site-packages/



2019年8月21日 星期三

numpy 之 GPU 版本, CuPy, MinPy

目前有 CuPy 和 MinPy
而 MinPy 有 Automatic gradient support,但感覺相容性不佳,要更動很多程式碼



CuPy 安裝和使用
pip install cupy

cupy_array = cupy.array(numpy_array)
numpy_array = cupy.asnumpy(cupy_array)

numpy.argwhere(cond) 要換成
cupy.transpose(cupy.asarray(cupy.nonzero(cond), dtype=np.int), axes=())

numpy.array([array1, array2]) 要換成
cupy.stack([array1, array2])

idx = numpy.max(array) 若只有1個值 要換成
idx = cupy.max(array).item()



MinPy 安裝和使用
查詢 mxnet 和 CUDA 版本的配合
https://mxnet.apache.org/versions/master/install/index.html?platform=Linux&language=Python&processor=GPU

sudo apt-get update
sudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev

git clone --recursive -b v1.5.0 https://github.com/dmlc/mxnet
cd mxnet;
cp make/config.mk .
echo "USE_CUDA=1" >>config.mk
echo "USE_CUDA_PATH=/usr/local/cuda" >>config.mk
echo "USE_CUDNN=1" >>config.mk
make -j$(nproc)

pip install numpy pyyaml
python ~/mxnet/python/setup.py install

minpy_array = minpy.array(numpy_array)
numpy_array = minpy_array.asnumpy()

numpy.array([array1, array2]) 要換成
minpy.stack(*[array1, array2])

numpy_array.transpose(axes=()) 要換成
minpy.transpose(minpy_array, axes=())

numpy.zeros((0, 1)) 是合法的
minpy.zeros((0, 1)) 是不合法的

numpy_array[numpy.newaxis, :] 要換成
minpy.expand_dims(minpy_array, axis=0)

2019年8月14日 星期三

使用 TensorRT, 載入 frozen_model.pb 太慢

使用 TensorRT 就是要加快 inference 的速度
沒想到載入模型時,速度超慢

上網查到 extremely long model loading time problem
發現主要原因為 protobuf 使用 python
改用 cpp 才能改善速度

文章上使用 protobuf 3.6.1
但是我的 protobuf 使用 3.8.0
所以把相關參數改成 3.8.0
並把 protobuf 安裝在 python 的 virtualenv 上

sudo /usr/local/cuda-10.0/bin/nvprof --log-file=profile_freeze.log /mnt/XavierSSD/envs/OpenAiGym/bin/python inference.py