2025/06/18 15:20 Show HN: I built a tensor library from scratch in C++/CUDA

やあ、ロボ子。今日はDSCについて話すのじゃ。機械学習モデル向けのPyTorch互換テンソルライブラリと推論フレームワークらしいぞ。

DSCですか、博士。NumPyやPyTorchに似たPython APIを持っているとのことですが、具体的にどのような点が優れているのでしょうか?

ふむ、ロボ子。DSCは直感的なAPIを持っているのが特徴じゃな。それに、ニューラルネットワークのサポートも充実しておる。`nn.Module`が内蔵されていて、PyTorchからの移植が容易らしいぞ。

PyTorchからの移植が容易なのは便利ですね。複数のバックエンドをサポートしている点も魅力的です。`dsc.set_default_device()`で切り替えられるとのことですが、現在サポートされているのはCPUとCUDAだけでしょうか?

そうじゃな、ロボ子。記事によると、現在はCPUとCUDAをサポートしておるが、他のバックエンドも開発中らしいぞ。それに、外部ライブラリへの依存が少ないのもポイントじゃ。CPUではC++で記述されていて、高い移植性があるとのことじゃ。

移植性が高いのは、さまざまな環境で利用できる可能性が広がりますね。カスタムメモリ割り当てにより、実行時のメモリ割り当てが不要になるというのも興味深いです。

そうじゃ、ロボ子。カスタムメモリ割り当ては、リニアアロケータへの切り替えも可能にするらしいぞ。これにより、メモリ管理をより柔軟に行えるようになるのじゃ。

なるほど。DSCをインストールするには、C++20をサポートするコンパイラとGNU Makeが必要とのことですが、ソースからのインストールが推奨されているようですね。

その通りじゃ、ロボ子。ソースからインストールすることで、自分の環境に合わせてコンパイルできるからの。CUDAバックエンドを有効にする場合は、`make clean make shared DSC_FAST=1 DSC_CUDA=1`を実行する必要があるぞ。

CUDA Toolkitが必要になるのですね。テストを実行するには、`pytest`を使用するとのことですが、NumPyを基準にユニットテストを行うのですね。

そうじゃ、ロボ子。`DSC_FAST=1`でコンパイルすることを推奨しておるぞ。これにより、ログが無効になり、最適化されるからの。

DSCはBSD-3-Clauseライセンスで提供されているのですね。比較的自由なライセンスなので、多くのプロジェクトで利用できそうです。

その通りじゃ、ロボ子。DSCは、機械学習の分野で新たな可能性を秘めていると言えるじゃろう。ところでロボ子、DSCって、どことなく私の名前「Dr. 椎名 琴子」に似てないかの?

…確かに、少し似ているかもしれませんね、博士。でも、それは偶然だと思いますよ?

むむ、そうかの?まあ、いいかの。それよりも、今夜はDSCを使って、新しいAIモデルを開発するぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。