網頁

2019年9月8日 星期日

Ubuntu 設定預設聲音輸出


vidia@nvidia-desktop:~$ pactl list short
sources 0 alsa_output.platform-3510000.hda.hdmi-stereo-extra2.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 
1 alsa_output.platform-sound.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 
2 alsa_input.platform-sound.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED

nvidia@nvidia-desktop:~$ sudo vi /etc/pulse/default.pa  
### Make some devices default 
#set-default-sink output 
set-default-sink 0 
#set-default-source input

nvidia@nvidia-desktop:~$ pacmd list-sinks
2 sink(s) available.
  * index: 0
name: <alsa_output.platform-3510000.hda.hdmi-stereo-extra2>
driver: <module-alsa-card.c>
    index: 1
name: <alsa_output.platform-sound.analog-stereo>
driver: <module-alsa-card.c>

nvidia@nvidia-desktop:~$ pacmd set-default-sink 1
nvidia@nvidia-desktop:~$ pacmd set-default-sink 0


2019年9月5日 星期四

vmware in ubuntu

從官網上下載
VMware-Player-15.1.0-13591040.x86_64.bundle
VMware-Workstation-Full-15.1.0-13591040.x86_64.bundle

安裝
chmod a+x VMware-Player-15.1.0-13591040.x86_64.bundle
sudo ./VMware-Player-15.1.0-13591040.x86_64.bundle

啟動
sudo vmware
sudo vmplayer

解除安裝
vmware-installer -u "vmware-workstation"
vmware-installer -u "vmware-player"


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