どういう効果があるのか、わかっていませんが、CNMeMのインストール方法だけ記述します。
まず、ファイルのダウンロード(GitHubより)
$ cd $HOME
$ git clone https://github.com/NVIDIA/cnmem.git
CNMeMのビルド
$ cd cnmem
$ mkdir build
$ cd build
$ cmake ..
$ make
ファイルのコピー
$ sudo cp include/*.h /usr/local/cuda/include
$ sudo cp -a build/libcnmem.so* /usr/local/cuda/lib64/
$ sudo ldconfig
※シンボリックリンクがシンボリックリンクとしてコピーされるように cp には -a をつけました。
コピーしたファイルの所有者などはこんな感じに設定しました
$ ll cnmem.h
-rw-rw-r-- 1 root root 11482 10月 28 2015 cnmem.h
$ ll libcnmem*
lrwxrwxrwx 1 root root 13 1月 17 15:55 libcnmem.so -> libcnmem.so.1
lrwxrwxrwx 1 root root 17 1月 17 15:55 libcnmem.so.1 -> libcnmem.so.1.0.0
-rw-rw-r-- 1 root root 671248 1月 17 15:55 libcnmem.so.1.0.0
theanoで動作確認した出力(virtualenv&virtualenvwrapper環境下)
(theano) $ python
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import theano
Using gpu device 0: GeForce GTX 1050 (CNMeM is enabled with initial size: 80.0% of memory, cuDNN 5005)
(参考にしたサイト)
NVIDIA/cnmem/README.md
Yet Another Blog