MGLを触るためにとりあえず動作確認

Common Lisp機械学習ライブラリが一部で流行りなので、ちょっと触ってみた。

cl-cudaのquicklispへの登録が止まっているので、gitで直接もらってくる。

cd ~/.roswell/local-projects
git clone https://github.com/takagi/cl-cuda.git
git clone https://github.com/melisgl/mgl-mat.git
git clone https://github.com/melisgl/mgl.git

blaslapackをインストール。

apt-get install libblas-dev liblapack-dev

slimeを立ち上げmglをロードしようとすると、

(ql:quickload :mgl)

エラーとなる。

Component :OSICAT not found, required by #<SYSTEM "cl-cuda">

よく分からんけど、一度cl-cudaをロードしてからだと成功する。

(ql:quickload :cl-cuda)
(ql:quickload :mgl)

とりあえずmglのテストを実行。

(in-package :mgl-test)
(time (test))

なんかエラーになった。

arithmetic error FLOATING-POINT-INVALID-OPERATION signalled
   [Condition of type FLOATING-POINT-INVALID-OPERATION]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT] abort thread (#<THREAD "repl-thread" RUNNING {10050A0033}>)

Backtrace:
  0: (SB-KERNEL:TWO-ARG-< #<SINGLE-FLOAT quiet NaN> 84.919205)
  1: (SB-VM::GENERIC-<)
  2: ((FLET MGL-CG::UPDATE3 :IN CG))
...

NaNと比較した? もう一度やり直してみるも結果は変わらず。