2023年05月30日

CUDA (2)

梅雨に入ってしまいましたね。

CUDA を使った開発を Windows 上で行っているわけですけど、Linux とは環境が変わるので色々とトラブルもあったりします。どちらかといえば gcc を使ってコンパイルしたいですが、今のところは Microsoft の cl にしか対応していないということで、cl にしか出力されないエラーなんかに悩まされることが多いですね。CUDA 自体にもいろいろと制約があるので、対応方法が見つからず、しばらく開発がストップすることもしばしば。
ようやく、ニューラルネットワークを CUDA で処理できるようプログラムは完成し、動作テストしてみたけど一発では動かないですねえ。いろいろと苦戦中の状態です。  

2023年05月23日

GPU の VRAM は大きいほうが得?

このところ、地震が多くて怖いですね。

去年くらいから話題になっていたようですが、画像生成 AI のStable Diffusion というものがあります。プロンプトというキーワードを入力すれば、自動的に画像を生成してくれるというツールで、YouTube では Stable Diffusion を使った画像が大量に出回っていますね。
このツール、GPU を利用しているので VRAM の大きさが重要になるそうです。今、自分が持っているグラボは GeForce RTX 3060Ti で、ゲームをしない身としては、これでもかなり高スペックなものを買ったつもりだったのですが、VRAM が 8GB ということで、少ない部類に入ります。スピードよりも容量のほうが重要みたいなんですよね。
今の段階でスペックの最も高いのが GeForce RTX 4090 で、メモリも 24GB 搭載しているものの、値段は 25 ~ 30 万円程度ということで論外です。GeForce RTX 4070 がメモリ 12GB で 10万円を切るくらい。今さら買い替える気にもならず、Stable Diffusion は使ってみたいけど、GPU 交換してまで試す気はないですね。

でも、どちらかというと、仕組みの方に興味があるので、作ってみて GPU が必須と分かったら考えるかも。  

Posted by fussy at 08:19Comments(0)TrackBack(0)

2023年05月15日

ChatGPTの使い所は?

使い始めると便利な ChatGPT ですが、万能というわけではありません。
プログラム関係には強いというのが一般的な評価になっていると思うんですけど、ちょっと厄介な問題を尋ねると変な答えが返ってくることがあります。C++ でのムーブセマンティックという、今まで使ったことがなかった仕組みを今回使う必要が生じて、派生クラスなどの絡みもあり、これで正しいコードであるのかと聞いてみたところ、問題があると回答が得られ、修正案も提示されました。ところが、その修正案がどう考えても間違いで、ここがおかしいと指摘したら謝罪とともにソースコードを修正して再出力します。それを何度やっても、正しい答えになはらず、最後には元のコードに逆戻りしました。それを見た時は、笑いましたね。

的確に答えを出してくれることもありますが、感覚としては半々の正解率といった感じで、正解になっていそうなコードも注意深くチェックしないと結局使えなかったりと、まだ改善の余地があるようです。
でもGoogleで検索して調べることを考えたら、ヒントを与えてくれるツールとして捉えれば非常に便利なものです。プログラマの人なんかは活用すると非常に重宝すると思いますよ。  

2023年05月08日

連休終了

連休、あっという間でしたね。今日から出社です。

連休中、ずっと GPU プログラミングの勉強をしていました。久々に熱中できるおもちゃを見つけたという感じです。何が効果的なのかよく分からず、手探りの状態なので、同じ場所を行ったり来たりしているみたいでなかなか先に進みません。でも、こうやって色々と考えている時間が楽しいんですよね。
今のところ、VirtualBox 上の Linux での開発は不可。Windows 上に必要な開発リソースをインストールして、コンパイラが利用できる状態にしました。Visual Studio 必須と思っていたので、最初はそれをインストールしたのですけど、Visual Source Code に慣れた身としてはあまりにも使いづらいので、開発環境だけをインストールして、作業は Visual Source Code で行えるようにしました。CUDA のインストール自体はそれほど難しくもなく、Linux と同じようにコマンドライン上で開発作業を行う環境が構築できて、あとはひたすら作っては試してみることの繰り返しです。
ニューラルネットワークではユニットを並べた層を重ねてシステムが構築されるので、それらを表すためのオブジェクトを用意しました。畳み込みニューラルネットワークでは二次元配置となるため、複雑なデータ構造になりますけど、一応、必要最低限の準備はできたかなというところです。今まで作ったネットワークをCUDA に置き換えて、どれだけ高速にできるか、楽しみですね。  

Posted by fussy at 03:40Comments(0)TrackBack(0)

2023年05月01日

連休に入りました

見事に九連休です。嬉しいですね。

畳み込みニューラルネットワークを使った機械学習が非常に奥深く、連休を利用していろいろとプログラミングしてみようと考えています。で、GPU を最大活用するために CUDA を勉強しているんですけど、やはり分からないところがたくさん出てくるわけです。こんな時は、いつも Google 先生を使って検索していましたが、ChatGPT を活用すると、少々怪しげながらも答えが得られるので、最近は苦労して最適な答えを探す必要がなくなってきました。
例えば、CUDA でテンプレートは使えるのか質問すると、サンプルコード付きで丁寧に説明してくれました。ここまできちんと説明されると、すごいと思いますね。ただ、AI の限界みたいなものも感じられて、それは、どうしても Web 上にある内容以上のことは得られないということ。以前、調べたことを質問すると、Web 上で見つけた内容がほとんどそのまま返ってきました。これは、ある意味どうしようもないことですね。画像生成 AI なんかでも同じことは言えるでしょう。

しかし、いつかは自ら考えて受け答えをする本当の人工知能というものも登場するのでしょうかね。  

Posted by fussy at 08:27Comments(0)TrackBack(0)