サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
qiita.com/syoyo
ChatGPT(GPT-3.5?) しゅごいよねぇ... ローカルで(GPU で)似たようなの動かしたい... 追記: 2023/06 時点ですと 8bit 量子化が成熟してきていてで 3090 x 1 で問題なく動きました. また日本語ですと rinna 3.6B がいい感じでした. https://zenn.dev/syoyo/articles/946c17666e10fb LangChain + GPT-NEOX-Japanese-2.7b で日本語 LLM やりとり整備するメモ https://qiita.com/syoyo/items/d0fb68d5fe1127276e2a GPT-NEOX-Japanese-2.7b 試したけどなんか微妙だったネ... とりま LLM では大きさは正義と思いますので, gpt-neox-20b 試します. https://www.infoq.
M1 macOS で arm64 native な python と numpy/scipy/matplotlib, Jupyter-lab など入れてデータサイエンスしたい. 現状だと x86 の時と同じやり方でインストールしようとすると, M1(arm64) の場合はコンパイルがコケたりなどしてうまく行きません (pip とか, macports 経由とかでインストールとか) 例えば altivec(みんな知っているかな!) コンパイルフラッグが clang 未サポートで numpy ビルドできないなどの issue があります. いずれ時が解決するでしょうが, 待つのもめんどいです. ソースからビルドするのはもっとめんどい. ぺろっとお手軽に Arm64 native なデータサイエンス環境セットアップしたいですよね. miniforge Apple Silicon, run Sci
背景 レイトレやビジョン系機械学習(顔認識とか)で画像を出す + GUI がほしい. C/C++ で記述されたもの. ピクセルデータ(配列)から画像データが表示できること cross platform(Linux, Windows, macOS)対応 X11 で画面を飛ばして描画したいなどで, OpenGL を使わないようにしたい x11vnc とかだと画面全体を転送で遅い(=> 10GbE にすればある程度解決するかもだが?) ミニマルな構成 and 環境整備が楽であることが理想 いろいろ開発マシンを変えて開発したり, 各人の PC でも問題なくコンパイルできるように, すぐに環境整えられる or git sumodule で追加できるのが理想 cmake, meson でサクッと追加できる 候補 クロスプラットフォームで Software 描画で, そこそこ機能が充実しているものとして
背景 レイトレーシングや機械学習など, aarch64(arm64) linux のプログラムを書いていたり, ライブラリをビルドしていたりする 市販で入手しやすい Native 環境(e.g. Raspberry Pi 4, Android スマホ + termux や, Jetson AGX とか. だいたい aarch64 4 コア + 8 GB mem な環境) だとビルドが遅かったり, 並列ビルドすると out-of-memory になりつらいので, つよつよ host PC(Threadripper とか)で cross-compile でやりたい 特に embree-aarch64 で ARM のビルドだと, 同等の性能の x86 の 5~10 倍はコンパイル遅いような現象が出て辛い AWS とかでつよつよ ARM インスタンス借りる手もあるが, レイトレーシングなど画面に出
背景 Chainer で書かれた automatic portrait image matting のモデルを, ONNX にコンバートしてモバイルで動かしたい resize_images を pyramid pooling で利用している. onnx-chainer では resize_images のエクスポートに対応していなかったので, 対応しようとしたところ, resize_images(より正確には upsampling + bilinear 補間)の振る舞いが Chainer と ONNX で異なる(TensorFlow とも異なる)ことがわかった Chainer, ONNX, TensorFlow いずれもドキュメントでは bilinear 補間するとだけ書いてあり, 実際どのような bilinear 補間をするのかという仕様がありません. 実のところ, bilinear 補
冬到来! RX470 8GB マイニングエディションと ROCm TensorFlow で, GPU 機械学習をはじめよう(CIFAR10 7,600 examples/sec @ 88W)TensorFlowROCmrx470 冬到来! RX470 と ROCm TensorFlow で GPU 機械学習をはじめよう! RX470 8GB mem mining 版(中古)が, 税込 6.5 千円ちょっとくらいで買えるので(2019 年 1 月 10 日時点), お手軽に試せるよ! 優秀な TensorFlow 小学生さまにおかれましては, お年玉で買えてしまいますね. RX470 mining 版はメモリが 8GB で機械学習を始めるのによいのですが, 画面出力が無いので, GPU 内臓の Intel CPU と組み合わせるか, 画面出力用に別 GPU で Linux をセットアップして
libClang/LLVM を使って C++ コードを JIT コンパイルする環境を整えます. 概要 構成としては以下のようになります. +------------------+ includes | | JIT +------------+ +--------------+ | C++ app | <--+- | C++ code |<---| STL header | | | | +------------+ +--------------+ +------------------+ | | C header | | libClang | | +--------------+ +------------------+ | | | libLLVM(MCJIT) | | | +------------------+ | | | STL/libc runtime |----+--------
Docker でコンテナを起動するとデフォルトは root になりますね. run するときに -u オプションでユーザを指定することができます. ただしこのユーザ名はコンテナ内でのユーザ名なので, ホスト側のユーザ syoyo を使って,
単一画像からの最新ディープラーニング顔アルゴリズムを試す(2017 年 7 月 14 日時点) (2020 年 1 月 1 日追記)顔認識顔形状復元inverse_rendering 漢なら, 単一画像から顔認識したり顔メッシュを復元したりをディープラーニングでやりたいですね! やりましょう! DenseReg DenseReg: Fully Convolutional Dense Shape Regression In-the-Wild https://arxiv.org/abs/1612.01202 顔のセグメンテーション(目, 鼻, 眉とか)と形状推定ができます. Semantic Image Segmentation 用に DeepLab http://liangchiehchen.com/projects/DeepLab.html を使っています. 独自 python caffe
漢なら GPU クラスタで CUDA でレイトレースしたり機械学習したいですね! GPU を使っていないときはマイニングで機材費用の足しにしたいですね. 調べると nicehash とかでは, NVIDIA 系でも性能の出せるハッシュアルゴリズム(?)を使うことができるようです. 今回は(まだまだ先行者利益がありそうな) ZCash をマイニングすることにします. アイコンが「ネ」に見えて素敵ですね. 匿名性を高めた決済用通貨を狙っているようなので, 今後期待できそうな暗号通貨かもしれませんね. Mining tool 今回は以下を使いました. この miner だと, 現在は nicehash pool 専用のようで, ビットコインアドレスで使います(ビットコインに逐次変換されるのかな? ZCash で持ちたい場合は違うツールとマイニングプールを使うことになりそうです) 最高 400 S
漢なら GPU でレイトレーシングしたり機械学習ですね! しかし GPU クラスタを組んでも, タスクがあまりなくて遊待(idle)が多かったり, 夜使わないとかだともったいないですね. そこで最近話題の仮想通貨の GPU 採掘(Mining)で GPU 構築費用の足しにしてみることを考えたり, GPU をエージングし稼働耐性の高い GPU 個体を抽出するなどしたり, GPU 性能のベンチマークに使ったりとかしたいですね! ビットコインは ASIC 使うのが強いので, ASIC 耐性が考えられていてまだまだ GPU を使うことに意義のあるイーサリアムを採掘してみることにしましょう. 2017/04/21 時点ではイーサリアムが第二の取引ボリュームを持っています. https://coinmarketcap.com/ Radeon RX480と最近のイーサリアム事情 http://tatuj
int main(int argc, char **argv) { const char *cpc; const char *cpc2 = (const char*)cpc; short b = argc; return b; } $ clang-tidy file.cc 7 warnings generated. file.cc:1:27: warning: unused parameter 'argv' [clang-diagnostic-unused-parameter] int main(int argc, char **argv) ^ file.cc:4:3: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] const char *cpc2 = (
漢なら golang で文字列テンプレート処理したいですね! golang では text/template パッケージが標準で入っています. でもサンプルを見ると構造体を作ってデータを流し込んでいてちょっと面倒ですね. type Inventory struct { Material string Count uint } sweaters := Inventory{"wool", 17} tmpl, err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}") if err != nil { panic(err) } err = tmpl.Execute(os.Stdout, sweaters) if err != nil { panic(err) } package main impor
漢なら GitHub コミットして Travis ビルドして Bintray へデプロイですね! travisCI + Bintrayによる自動デプロイを試したメモ 参考になります, ありがとうございます. しかし Travis が用意しているサンプル手順 https://docs.travis-ci.com/user/deployment/bintray/ だと, バージョン番号は手動で JSON に書く必要があります. 毎回手作業はめんどうですね... 人間の欲望は飽きない. git tag を打ったら自動でよろしく tag 名でバージョンを設定してよろしく Bintray にアップロードしたくなりますね. そこで sed でバージョン番号とリリース日を travis ビルド後に書き換えた .json を作り bintray にアップロードする手を考えてみました. tinyobjloa
夏休み到来ですね! 新しいジブンにチャレンジの季節! 夏休みの自由研究でパストレーシングやりたいですね! 優秀な若人がヘッダーオンリーレイトレーシングライブラリ NanoRT と tinyobjloader で人類史上最速(2 日)でパストレーシングサンプルを作ってくれました(私が十数年前にパストレーシングを実装した時は 1 年くらいかかりましたね... 知の加速を感じますね). 素晴らしいですね! 最高のパストレーシングの夏にしようね! 映画ジャングルブックもパストレーシングだよ! https://www.fxguide.com/featured/out-of-the-pages-and-into-the-jungle-book/ パストレーシングする. $ git clone https://github.com/lighttransport/nanort $ cd nanort/ex
4K モニタで PbP で Mac/Win/Linux の画面を集約して表示してクロスプラットフォームグラフィックアプリ開発の効率化を図る4K 漢なら Mac/Win/Linux のクロスプラットフォームグラフィックスアプリ開発ですよね! しかし GPU を用いたグラフィックアプリ開発(OpenGL, Vulkan, OpenCL, etc)だと, リモートデスクトップや X11vnc で画面を飛ばすのは遅くて使いものにならないので, 基本ネイティブに画面を表示することになります. それゆえ, 3 つの 2K モニタで表示して開発という辛い日々が続いていました. また, 色味もモニタごとにことなるので, レンダリング画像の比較も難しい状況でした(毎回レンダリング画像を特定のモニタに転送して比較) そんなとき, ふとしたことから, 最近の 4K モニタでは PbP(Picture by Pi
春到来ですね! github で公開しているオープンソース C++ コードの外見もリフレッシュして新しいジブンにチャレンジしたいですね! あわよくば運命的な C++ 出会いも期待できちゃうかも...! そこでここでは, 春トレンドを先取りした C++ スタイルコーデを集めてみました. Google C++ Style Guide みんなの憧れ, デキる大人のギロッポン外資系クールな C++ スタイル! なんだかルールがいっぱいで大変そう... と思ったズボラでうっかりな性格のアナタでも大丈夫! cpplint がコーデを自動でチェックして全力アシスト! LLVM Coding Standards アーティスティックでスタイリッシュ, でもちょっとコンサバな新宿スタイル! clang-format と組み合わせて周りの視線をがっちりキャッチ! WebKit Code Style Guidel
自分で作ったオープンソースな C++ ライブラリ, メモリリークやバグの少ない状態で, いろいろな人に安心して喜んで使ってもらえるように, 普段から内面をキレイに保っておきたいですよね! ここでは C++ のコードを内面からキレイに保つレシピを集めてみました. (追記) @MitsutakaTakeda さんの C++ コードのデトックスも合わせて読んで, この春, 一歩先行くぬけがけ美ワザを極めちゃお! http://qiita.com/MitsutakaTakeda/items/6b9966f890cc9b944d75 Instruments MacOSX ユーザであれば, XCode に付属(?)の Instruments がオススメ. GUI でお手軽にメモリのプロファイリングやリークの調査が行えます. Valgrind 昔からある実行バイナリをインストゥルメントして解析してくれる
Matt Pharr 大先生がいつのまにやら golang で Google Drive と連携するコマンドラインファイル操作ユーティリティ作ってました. 漢なら黙って活用ですね! 何ができるか
漢は黙ってシングルファイル C/C++ ライブラリですね! シングルファイル C/C++ ライブラリとは, ヘッダファイル .h ひとつだけで機能が実装されているライブラリ(もう少し条件をゆるくして .cc も含む)のことです. header-only とも言われれたりします. このあたりの元祖は nothings 先生 http://nothings.org/ ですね. 最近は github にコードをあげています. https://github.com/nothings/stb シングルファイル系のライブラリまとめ一覧もあります. シングルファイル系が便利すぎてやばいので, 自分でもいくつか作りました. TinyObjloader(Wavefront .obj loader) https://github.com/syoyo/tinyobjloader TinyEXR(OpenEXR
漢なら GCE で Preemptible VMs を instance group で 100 万インスタンス規模でオンデマンドで立てて分散レイトレーシング処理を短時間で行いたいですよね! でもまだベータ機能なので 100 万インスタンス起動は無理そうですので, とりあえず準備として instance groups で Preemptible VM をささやかに立ててみましょう. できました. Terminate モードに設定を忘れずに gcloud CLI 経由で作業するものとします. instance template の create 時に --preemptible (--preemptive で無いことに注意!) に加えて, maintenance-policy を TERMINATE に設定する必要があります. --maintenance-policy TERMINATE T
A Fast, Minimal Memory, Consistent Hash Algorithm ご紹介(システム系論文紹介 Advent Calendar 2014).hashシステム系論文紹介分散ストレージjumpconsistenthash (本稿は, システム系論文紹介 Advent Calendar 2014, 12/20 です http://www.adventar.org/calendars/440) 論文は arXiv から取得できます. http://arxiv.org/abs/1406.2294 Jump Consitent Hash と呼ばれる, 分散ストレージ系で有益なハッシュ関数を求めるアルゴリズムです. 現在史上最強のハッシュアルゴリズムのひとつと言えるでしょう. 無性に分散ストレージライブラリを作りたくなってきますね! 共著者の Eric Veach にも注
漢ならアプリに CPU 優先度を付けて実行したいですよね! でも nice だとうまくいかない… 悲しくて涙で枕を濡らす日々が続いていました… そこで昨今の Linux に搭載されている cgroups による CPU リソース制御を使ってみます. 当然ベンチマークアプリは aobench http://code.google.com/p/aobench/ ですね. OpenMP 化してマルチスレッド実行するようにしておきましょう. 設定 cgroups の機能を有効にしておきます.
漢なら RDMA でデータ送りたいですね! とりあえず手っ取り早く rsocket http://syoyo.wordpress.com/2012/12/06/rsocket-new-way-of-rdma-aware-programming/ を使い, 既存の python スクリプトで高速転送を実現してみましょう. 構成 Server と Client は InfiniBand QDR と, 1 GbE で物理的に繋がっています. InfiniBand のレイヤは IPoIB で繋がっているものとします. テストスクリプト Client から 1GB のデータを送り, Server 側はそれを受け取るだけというスクリプトです(単方向データ通信). # server.py import socket import itertools HOST = '' PORT = 8081 s = s
漢なら GCE(Google Compute Engine) から GCS(Cloud Storage) に, 安全かつお手軽にアクセスしたいですよね! GCE インスタンス起動 GCE インスタンス起動時に, cloud storage へのアクセスが出来る様ようにしておきます. を参考に, scopes の devstorage.full_control あたりです. GCE から GCS にアクセスしてみる. GCE のインスタンスに gcutil ssh INSTANCE-NAME でログインし, 内部から OAuth アクセストークンをメタデータサーバから取得してみます(curl がインストールされていると仮定). $ curl "http://metadata/computeMetadata/v1/instance/service-accounts/default/token"
漢なら Docker で OpenGL アプリを HW accelerated で(GLX)動かしたいですね! できました. TODO 現状だと 1 container が GPU を占有するようなので, 複数 container で共有できるようにする. Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
漢なら docker コンテナで CUDA を使いたいですね! CUDA を使えるようにしましょう. セットアップ ホスト OS に CUDA とドライバ一式をいれておきます. 今回は Centos6.5 CUDA 6.0(driver 331.67) /usr/local/cuda に nvcc やら toolkit をインストール にしました. コンテナ内で CUDA プログラムを動かす. privileded つきで, libcuda.so と /usr/local/cuda を container に expose(volume mount)します. サンプルコードを /media にマウントします. $ docker run --privileged -v /usr/lib64/libcuda.so:/usr/lib64/libcuda.so -v /usr/lib64/libc
追記(2022/02): 本記事の想定するユースケースでは, 長期稼働する場合 tailscale(wireguard)がよさそうです! ただ, tailscale は sudo 権限いるようなので, sudo が使えない場合のとき(第三者のサーバやクライアント PC 使っているとか)は本記事の reverse ssh tunnel がいいかもしれません. (一応いろいろ設定すれば user 権限でもうごく. パフォーマンスも問題ないようである! https://tailscale.com/blog/throughput-improvements/) Reverse ssh tunnel は便利な機能で, たとえばグローバル IP などで直接アクセスできない自宅 PC に外部からアクセスしたり, VPN をオフィス(仕事場環境)で使えない(が, ssh port は使える. or VPN
漢なら Parallella(ARM Linaro) でも Docker 動かしたいですね! Raspberry Pi で動いている報告があるので, Parallella でも動くはず! 現時点では動かない が, 現時点ではカーネルをリコンパイルしないとまずは動かないことが判りました. カーネルリコンパイルをする旅に出ます. 果報は寝て待ちましょう. パッケージのインストール Docker は go 言語で記述されているので, go コンパイラをインストールします. なぜか go 言語での websocket のパッケージで hg(mercurial) が求められるので, mercurial も忘れずにインストールしておきましょう. $ sudo apt-get install lxc $ sudo apt-get install bridge-utils $ sudo apt-get i
次のページ
このページを最初にブックマークしてみませんか?
『@syoyoのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く