■
cmake
CMake Tutorial | CMake
CMake by Example – Mirko Kiefer’s blog
CMake Useful Variables - KitwarePublic
Are CMAKE_SOURCE_DIR and PROJECT_SOURCE_DIR the same in CMake? - Stack Overflow
Is it better to specify source files with GLOB or each file individually in CMake? - Stack Overflow
CMAKE によるビルド自動化とテスト実行 - zonomasaの日記
CMake: 便利なコマンド・変数 - Qiita
http://www.cs.gunma-u.ac.jp/~nagai/wiki/index.php?cmake%20%A4%CE%BB%C8%A4%A4%CA%FD
cmake - How do you add Boost libraries in CMakeLists.txt? - Stack Overflow
c++ - Debug vs Release in CMake - Stack Overflow
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wall")
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
make VERBOSE=1
■
C-APIで作ったpythonモジュールのメモリリークのチェック
以下のサイトを参考にやってみる。
Using AddressSanitizer - Atomic Simulation Environment
Pythonのソースコードはこちらから。
Python Source Releases | Python.org
export CC='gcc -fsanitize=address' export CXX='g++ -fsanitize=address' export LSAN_OPTIONS=exitcode=0
cd ~/code/pysanitize/Python-3.5.2 ./configure --prefix=~/code/pysanitize --without-pymalloc --disable-ipv6 make make install
export PATH=~/code/pysanitize/bin:$PATH
setuptools, cython, numpyの順にインストールしていく。ソースコードはPyPIからダウンロード。
setuptools 30.2.0 : Python Package Index
Cython 0.25.1 : Python Package Index
numpy 1.12.0b1 : Python Package Index
インストールはsetup.pyで行う。
python3 setup.py install --prefix=~/code/pysanitize
同様にmatplotlib, h5pyもインストールする。ただし、その前に以下のパッケージを先にシステムのパッケージマネージャでインストールする。
sudo aptitude install libfreetype6-dev libpng-dev libhdf5-dev
Index of Packages : Python Package Index
matplotlib 1.5.3 : Python Package Index
PyYAML 3.12 : Python Package Index
Ubuntu-mate 16.04の場合、デフォルトでシステムにインストールしているnumpyが邪魔をするので、setup.pyや実行するpython scriptのなかで、例えば以下のようにしてsys.pathから取り除く必要があるかもしれない。
import sys del_i = [] for i, p in enumerate(sys.path): if 'dist-packages' in p: del_i.append(i) if 'local' in p: del_i.append(i) for i in del_i: del sys.path[i]
■
VASPコンパイル with CUDA-8.0
コンパイルでコケる。kernels.hの182行目あたりを以下の情報のように書き換える。
cuda - error: function "atomicAdd(double *, double)" has already been defined - Stack Overflow