書籍 "C++で学ぶディープラーニング" のサンプルに出てくる cuMat/cuMat.h のコンパイルエラーに関して。
https://github.com/takezo5096/cuMat/blob/master/cuMat.h
おんちゃんの、開発環境
Windows10
VisualStudio 2017 Community (VS 2017 用 x64 Native Tools コマンド プロンプト -> cl.exe)
Cuda tool kit 10.1(cuda_10.1.105_418.96_win10.exe)
boost_1_68_0
で、上記 cuMat.h をインクルードしてプログラムサンプルをコンパイルしようとすると、エラーが出たので、その対応方法を書いてみました。
https://so-zou.jp/software/tech/programming/cpp/grammar/pointer/array.htm
|--> "要素の数は定数式で指定しなければなりません。"
結局は、Windows C++(cl.exe) が、配列のアロケートに変数が使えないとの事のようです。
注) 上記では、nvcc で、 test.cpp をコンパイルしていますが、
nvcc から、 ネイティブのコンパイラー( cl.exe ) がコールされて、cpp はコンパイルされるみたいです。
cuMat.h
これを変数で指定するならば、new演算子で生成します。との事なので、
Linux の gcc の方では、問題ないと、インターネットに記載がりました。
因みに、a.exe を作成する場合は、こちらをたたきます。
libcumat.lib は、同じディレクトリー(cuMat) の Makefile を実行して、作成しておきますが、こちらも Windows の nmake を使うので、 Makefile の手直しが必要です。
Makefile の例。