Saturday, 21 May 2016

TensorFlow

というわけで読み始めたわけですが、まず、

Hello World

を trace していくわけですが、

PythonからSWIGという言語インタフェースライブラリ経由でC++に。そこで、C++11 のlambda構文を使って、ThreadPool に行くところまでは極めてスムース。

あぁ、でも、lambda構文は結構ひどいなぁ。Javaだと nestedな interface 構文で finally した変数は interfaceから参照できるみたいな構文なんですが、C++ は「渡す環境は[]で明示する」方式らしい。なんで、引数が[]と()とあるのか不思議だったけど。

でも、なんか cu* なCudaの関数にたどり着かない。

なので、もう少し複雑な例題で、cu*な関数に break pointをかけるという方法にしたんですが...

* エラーで落ちる

cuMemcpyAsync がOS ERRORを返してる。あらら。Eigenというライブラリなんですが、独自にヘッダファイル持っているみたいだな。

OS X な TensorFlow は先週 merge されたらしい。なので、ちょっと動作が怪しいみたいです。

落ちるのは、tf.initializAllVariables() なので、変数をGPUに送り込む部分がだめなんだな。ということは全然動いてないか。

* まぁ、ソースを読みたいのであって、動いてなくても関係ない説

はあるわけですが、なんか install をミスってるのかも。最新の版でやってるのが裏目に出てるかもなぁ。

こんな状態で明日に続くわけですが、まぁ、なんとかなるでしょう。
Post a Comment