奥村 の検索結果:

姿勢推定モデル MoveNet を TensorRT でベンチマーク

R&D チームの奥村(@izariuo440)です。日本で気温が暖かくなると姿勢推定が盛り上がってくるように見えるのは私だけでしょうか?今年の5月に発表された人物姿勢推定モデルの MoveNet v3 をTensorRT でベンチマークしてみました。CPU でもかなり高速推論が可能ですが、CUDA でもっと速く、TensorRT でもっともっと速くなることが確認できました。 MoveNet TFLite モデルを ONNX モデルに変換 ONNX モデルを加工 ベンチマーク結…

Edge TPU の July 2021 Updates を追う

…は、R&D チームの奥村(@izariuo440)です。 前回の Edge TPU の記事から1年4ヶ月ほど空いてしまいました。その間、Windows 向けの PCIe ドライバのβ版が公開されたり Edge TPU ランタイムが OSS になったり、Python/C++ 向けの API が整理されたり MobileDet が利用可能になったりしました。今回の更新では、コンパイラや修正ツールの更新でより多くのモデルがコンパイルできるようになったり、物体検出の Efficien…

TensorRT 8 でさらに快適な高速推論

…画像解析をやっている奥村です。手元に NVIDIA RTX A4000 が届いてわくわくしています(PCIe 3.0 でも動作する模様)。TensorRT 8 の変更点についてメモしました。 はじめに 気になった内容 QAT で訓練されたネットワークのサポート リサイズ方法の強化 NMS の試験的なサポート EfficientDet サンプルの追加 意訳 TensorRT 8.0.1 GA 主要な機能と改善 破壊的な API 変更 互換性 まとめ はじめに TensorRT …

rust-bindgen で手軽に共有ライブラリを動的読み込み

R&D チームの奥村(@izariuo440)です。共有ライブラリを動的読み込み(動的リンクではない)できると、プラグインやアドオンによってアプリケーションを拡張可能にできて便利です。今回は、rust-bindgen を使って Rust 製アプリケーションから C API を持つ共有ライブラリを手軽に動的読み込みする方法のメモです。まとめると以下のとおりです。 rust-bindgen は、v0.58.0 から共有ライブラリの動的読み込みコードを生成できる 共有ライブラリの動…

TensorRTの演算精度・バージョンのメモ

…た R&D チームの奥村(@izariuo440)です。今回は、2021/04/12 に発表された Ampere 世代の各種 GPU に対して TensorRT でその性能を十分に引き出すために必要な知識をまとめておきます。FP16/INT8 をうまく使うと、推論速度が2〜4倍になったりするのでおすすめです。 演算精度 演算精度 FP16/INT8 をサポートしている GPU FP16 の威力 INT8 の威力 TensorRT のバージョン 互換性 さいごに 演算精度 NV…

遅いコードに出会ったら (1)

…先 R&D チームの奥村(@izariuo440)です。ソフトウェア開発をしていると遅いコード*1に出会う*2ことがよくあります。私なりの習慣で対処していますが、これまで言語化できていなかったので挑戦してみました。 この記事は銀の弾丸ではありませんが、遅いコードに出会ったときの適切な対処の足がかりとなり、解決までの時間短縮などによる生産性向上(または生産性低下の抑制)に寄与できれば幸いです。数回に分けて紹介していきます。また、具体的な高速化手法については触れない予定です。今回…

ONNX 2020

R&D チームの奥村(@izariuo440)です。相変わらず深層学習モデルの推論に取り組んでいます。深層学習モデルの推論器として二年前に ONNX Runtime を軽くレビューしましたが、当時と比較するとかなり進歩しており、ONNX Runtime だけでなく ONNX 自体や関連ソフトウェアも成熟が進んでいるので、備忘録として私がお世話になっているものをかいつまんで紹介します。 OPTiM TECH BLOG Advent Calendar 2020 12/18 の記事…

TFLite C++ API for Android ビルド手順メモ

R&D チームの奥村(@izariuo440)です。TensorFlow 2.3 以降、TFLite が XNNPACK で高速になりそうな機運を感じたので Android での性能を少し確認してみました。XNNPACK を有効化してスレッド数を適切に設定すれば、CPU でも従来の 1.2 〜 2.0 倍の FPS が得られそうな感触をつかめました。 背景と動機 2020/02/05、TensorFlow Lite に XNNPACK1 が取り込まれました。2020 年 3 …

CUDA で一時領域の確保・破棄を回避して速度低下を防ぐ

R&D チームの奥村(@izariuo440)です。今年も新卒が CUDA プログラミングを嗜んでいたところ、思ったより速度が出ないという話を聞いたので「CUDA で一時領域の確保・破棄を回避して速度低下を防ぐ」という対策をまとめました。Happy CUDing! 関連記事 tech-blog.optim.co.jp tech-blog.optim.co.jp 背景と動機 CUDA の同期について 暗黙的なメモリ確保・破棄を回避する カスタムアロケータ おわりに 背景と動機 …

物体検出器 EfficientDet をブラウザで高速推論

R&D チームの奥村(@izariuo440)です。EfficientDet がブラウザで動いているのを見たことがなかったので、やってみました。以下はブラウザで実行中の様子1です。 結果として、EfficientDet-D0 で 256x256 の解像度の画像を TensorFlow Lite で推論させると、ネイティブで 20 FPS、WebAssembly SIMD support ありの Chrome で 7 FPS 程度の速度性能を確認できました。 Case XNNP…

Edge TPU の April 2020 Updates を追う

…す。R&D チームの奥村(@izariuo440)がお送りします。 Edge TPU に関しては、過去記事も参考になるかもしれません。 2019インターン紹介: Edge TPU向けPoseNetのリアルタイム姿勢推定 - OPTiM TECH BLOG Edge TPU の性能を引き出すためには? - OPTiM TECH BLOG Edge TPU の September 2019 Updates を追う - OPTiM TECH BLOG Edge TPU の Janu…

Dockerコンテナ上でEdge TPUコンパイラを使う

…た。R&D チームの奥村(@izariuo440)がお送りします。 ベースイメージ選定 Dockerfile を書く Docker イメージのビルド EfficientNet-lite のモデルの準備 Docker でコンパイル おわりに おまけ Edge TPU に関しては、過去記事も参考になるかもしれません。 Edge TPU の July 2019 Updates を追う - OPTiM TECH BLOG 2019インターン紹介: Edge TPU向けPoseNetの…

深層学習モデルの高速推論を支える TensorRT の概要

…る R&D チームの奥村(@izariuo440)です。これまで何度か TensorRT について触れてきましたが、どのように使うのかは触れていませんでした。今回は、TensorRT の C++ API を使うための主要オブジェクトについて紹介します。Python API については触れません。 TensorRT をなぜ使うのかについてはこちら。 TensorRT で物体検出・姿勢推定はどれくらい速くなる? - OPTiM TECH BLOG TensorRT の更新ウォッチ…

Edge TPU の January 2020 Updates を追う

…る R&D チームの奥村(@izariuo440)です。前回の Edge TPU 更新からはや4ヶ月。今回の更新では、Edge TPU が macOS や Windows で動くようになりました。この記事では Edge TPU January 2020 Updates をベースに、意訳・追記をしています。いくつかは実際に試してみましたが、すべてを試したわけではありませんのであしからず。 Edge TPU に関しては、過去記事も参考になるかもしれません。 Edge TPU の …

TensorRT 7 でさらに快適な高速推論

…画像解析をやっている奥村です。TensorRT 7 の変更点についてメモしました。非推奨機能に関するポリシーの明確化や、NLP、特に BERT に関するサポートの拡充、ありそうでなかった PReLU のサポートが気になった変更点です。 はじめに 気になった内容 非推奨機能に関するポリシー 一部のパーザーの非推奨化 PReLU のビルトインサポート 意訳 TensorRT 7.0.0.11 GA 主要な機能と改善 ループの使用 ONNX パーザーの動的 shape のサポート …

Beating C with 60 Lines of Python: wc -l (failed) ~Python での行数カウントを手軽に高速化~

R&D チームの奥村です。最近シェルスクリプトばっかり書いてます。Beating C with 70 Lines of Go - Ajeet D'Souza を見て気になったので、Python によるテキストファイルの高速な行数カウントを試しました。実験の結果、いくつかの簡単な処理を加えるとことで、ナイーブな実装に比べて、コアの数× 0.9 程度倍の高速化が達成できました。私の環境だと 8 コアなので、処理時間はおおよそ 1/7 で済むようになりました。残念ながら wc -l…

実装した ROS node のコードを社内に晒したらマサカリが飛んできた話

…日のテックリード会で奥村さんがC++はスレッドやら色々辛いと言っていたのが如実に思い出されました、、、 ■今日工夫した所 boostライブラリを駆使した ■今日の仕事を後30分効率化できたやり方 boost使いすぎたかも知れません。。。 今思い返すと、バイネームで当社エグゼグティブエンジニア奥村の名前を出したのが運の尽きだったのかも知れません。。 マサカリが飛んできた 翌日に奥村から以下の返信を貰いました。 メモリリーク、リソースリーク、ハンドルリーク、etc...C++11…

OPTiM TECH NIGHT 開催!~OPTiMを牽引するエンジニア達によるLT大会!

…テックブログ執筆中の奥村(@izariuo440)と中野も登壇! ※LTコンテンツは現時点での予定となりますので、変更となる場合がございます。 弊社ディレクターの山本大祐の登壇も決まりました! 山本大祐 統合開発環境「ActiveBasic」を開発し、2005年度にIPA未踏ユース スーパークリエイターを授与。 2006年末にオプティムにジョイン後、研究開発に従事、現在はAI・IoT新規事業立上げを担う。 2019年3月 「AIプロジェクト実践読本」を出版(マイナビ出版)。 …

Edge TPU の September 2019 Updates を追う

…た R&D チームの奥村(@izariuo440)です。前回の Edge TPU 更新からはや2ヶ月。今回の更新では、apt-get 対応強化、コンパイラ更新、Python ライブラリ更新、GitHub への移行、などが行われました。この記事では Edge TPU September 2019 Updates をベースに、意訳・追記をしています。いくつかは実際に試してみましたが、すべてを試したわけではありませんのであしからず。 Edge TPU に関しては、過去記事も参考にな…

TensorRT 6 でさらに快適な高速推論

…画像解析をやっている奥村です。 2019/09/17 の Tweet で TensorRT 6 のリリースを発見しました。TensorRT 5.1.5 のリリースから約四ヶ月ぶりのリリースとなります。今回は RC がなく、いきなり GA となっています。気になった内容がいくつかあったので、TensorRT 6.0.1 のリリースノートをベースに、意訳(直訳)したものをメモしました。公式情報ではないので参考程度にしてください。TensorRT については特にここでは触れませんが…

Edge TPU の性能を引き出すためには?

…画像解析をやっている奥村です。 Edge TPU は NVIDIA GPU と同じような感覚で使うことはできません。NVIDIA GPU よりもメモリの制約が強く、Edge TPU の性能を引き出したり、複数のモデルを1つの Edge TPU で同時に実行するにはいくつかのコツが必要になります。Edge TPU Compiler | Coral をベースに、意訳・追記したものをメモしました。 Edge TPU はモデルのパラメータデータをキャッシュするための 8MB 程度の …

プログラミング未経験者が3か月で開発エンジニアに!~オプティムが本気で取り組む IT人財教育プログラムの全貌〜

…合的なアドバイザーに奥村、という布陣を敷きました。また、現役エンジニアから近い距離感でアドバイスやサポートを受けられるようなサポーターチームを設置しました。私は塾長補佐としていくつかの講義と実習中の技術サポートを担当しました。 研修概要 講義による広い知識の獲得、実習(プログラミング研修)​によるプログラミングの体得の2軸で実施しました。 実習(プログラミング研修)​の後半ではチーム開発を行い、各受講生が現場配属後にチーム開発時の連携、コミュニケーション等で苦労することなく、…

Edge TPU の July 2019 Updates を追う

…活躍している(自称)奥村(@izariuo440)です。Edge TPU リリースからはや4ヶ月。周辺ソフトウェアの更新でハードウェアの潜在能力が顕在化してきています。先日、post-training quantization がサポートされました。この記事では Edge TPU July 2019 Updates をベースに、意訳・追記をしています。実際に試してみた、という記事ではないのであしからず。 Edge TPU の USB アクセラレータ版はとても小さいです。参考と…

Papers With Code で Deep Learning に関する情報を効率的に収集する

…画像解析をやっている奥村です。時代は INT8 だと思います。 Deep Learning は非常に研究が活発で、論文がポンポンポンポン出てきます。 多くの論文は、arXiv1 (アーカイブと読みます)というサイトに投稿されます。例えば、2018 年 5 月には 12,000 本を超える投稿があり、コンピュータサイエンス関連は 3,264 本あったそうです2。 これらすべてに逐一目を通すのは人間には不可能に近いので、筋の良い論文を効率的に探したくなります。また「理論はさておき…

RefineDet より高精度な物体検出器、M2Det を実行する

…画像解析をやっている奥村です。最近の主力開発言語は Rust になりました。噂の M2Det のコード *1 が公開されたようなので試してみましょう。すでに Ubuntu の開発環境があれば 30 分ほどで試せます。GPU はあった方がいいです。 github.com M2Det は 2018 年 11 月に登場したばかりです*2。SSD や YOLO と同じく、Single-Stage Detectors の一つです。SSD の派生系です。 arxiv.org はじめに 環…

TensorRT/Rust/CUDA/thrust... 技術選定 2018

…ム R&D チームの奥村です。今回は、私がどういう風に技術選定してきたかという振り返りです。2018 年は、動画解析ミドルウェアの開発などに取り組んできましたので、その中で学んだことの一部 (TensorRT/Rust/CUDA/thrust) を振り返る形でお伝えししてみます。 学んだこと TensorRT 学び方 検討できなかったこと C++ (復習) 学び方 Rust 学び方 検討できなかったこと おまけ:パフォーマンス解析 CUDA/thrust 学び方 検討できなか…

Microsoft の ONNX Runtime を速攻レビュー

…じめに オプティムの奥村です。Microsoft が 2018/12/04 に ONNX Runtime を MIT ライセンスでオープンソースとして公開しました。 azure.microsoft.com ONNX Runtime は 2018/10/16 に Preview として公開されて気になっていましたが、コードが公開されたのでざっと目を通してみて、ONNX Model Zoo に登録されている物体検出モデルの Tiny YOLOv2 を動かしてみました。 ONNX …

TensorRT で物体検出・姿勢推定はどれくらい速くなる?

…画像解析をやっている奥村といいます。 www.optim.co.jp Semantic Segmentation (領域抽出)、Object Detection (物体検出)、Pose Estimation (姿勢推定) などが中心です。学生のころはアクションゲーム開発、グラフィックエフェクトに興味がありました。 d.hatena.ne.jp はじめてコードを書いたときから、かれこれ 20 年を超えました。Twitter やってます。 最近やっていること 最近は Google…