学生がいろいろやってくれた見たいですが、
* 結局、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:
Post a Comment