Sunday, 22 May 2016

ソースコード読み会の続き

学生がいろいろやってくれた見たいですが、

* 結局、OS X では動かない

という結論らしく。Cudaは動いているんですけどね。

* TensorFlowの簡単な例題は cu* なAPI に届かない
* Eigenなどの複雑な例題だと cuAsyncmemcpy で死ぬ

cuAsyncmemcpy 自体は動かして動作を確認したので、Eigenの問題らしい。まぁでも、 cuAsyncmemcpy には届くので、

* pythonからの呼び出しから、thread pool 経由で、nodeをinterpretしながらCudaのAPIに届くところまでは読めました。

まぁ、バグなんだけど、いまいち原因はわからず。この手のはっきりしたエラーが出るものはデバッグしやすいんだけどな。

Python側とC++側で、だいたい30-40の呼び出し階層があり、そのうちの10段ぐらいは、

* C++14 のfunctional

ですか。いや、apply とかが何の役にたってるのかはわからなかったんですが。Nodeに定義されている操作(関数)をapplyするってことね。

unique_pointer, static_cast, dynamic_cast そして、

* localに定義した Object へ(castして)コピーしてから処理する

とういのが多用されてる。Effective C++でそうしろと書かれているのでは、まぁ、C++ってのはそういうものなんですが。

* これで本当にプログラマは幸せになってるの?

とは思いますね。

やっぱり、素直に、Linux側でやるべきだったか。新しいGPU買うには予算がないが、そんなに高いものでもないらしい。 OS Xで動くのも時間の問題でしょうけど。

No comments: