Pull Requests created in 2022

振り返った。昨年の振り返りは以下。 Pull Requests created in 2021 昨年の7件から28件へと大幅に増えた。今年から業務でもOpen Source Softwareへ貢献できるようになったことが影響している。 件数が多いのでプロジェクト別にまとめる。 検索式 is:pr is:public author:mshr-h -user:mshr-h created:2022 Apache TVM OSSで開発されている機械学習コンパイラのプロジェクト。 主にCIスクリプトの修正をした。 Gitやpipコマンドの改善、不要な一時ファイルの削除など。 Use shallow clone when cloning tensorflow repo by mshr-h · Pull Request #9864 · apache/tvm [CI][Rust] Change rust installation profile from default to minimal by mshr-h · Pull Request #9878 · apache/tvm [CI][Verilator] Remove downloaded source code archive by mshr-h · Pull Request #9879 · apache/tvm [CI][Zephyr] Remove downloaded zephyr installer by mshr-h · Pull Request #9883 · apache/tvm [CI] Fix pip cache config bug by mshr-h · Pull Request #9933 · apache/tvm [CI] Update minor git options by mshr-h · Pull Request #13398 · apache/tvm Hummingbird 古典的な機械学習をテンソル演算へ変換するためのコンパイラ。 これもCIの改善をした。 依存ライブラリの更新、deprecation warningの対処、CI実行環境の更新など。...

2023-01-11 Wed ·     "Masahiro Hiramori"

My though on the logging in the VS Code extension

This is an article for Visual Studio Codeのカレンダー | Advent Calendar 2022 - Qiita. I’m a creator and maintainer of mshr-h/vscode-verilog-hdl-support, VS Code extension for hardware developers. I created it when the VS Code was released in 2015. So it’s been 7 years of maintaining. In this article, I’ll summarize the lack of a standard way of logging implementation on the VS Code extension even in 2022! Logging is an act of taking application information, system information, or use activities....

2022-12-21 Wed ·     "Masahiro Hiramori"

DNN compiler, Apache TVM, Hummingbird and ONNX-MLIR

This is an article for MLOps Advent Calendar 2022. Deep neural networks (DNNs) are complex machine learning models that are composed of multiple layers of interconnected nodes, or “neurons,” which are used to process and analyze large amounts of data. These models are typically trained using vast amounts of data and require significant computational resources to run. To optimize the performance of DNNs, many tools and technologies have been developed, including DNN compilers....

2022-12-16 Fri ·     "Masahiro Hiramori"

mshr-h/sandbox

ライブラリを試使用した時のスクリプトとか、ちょっとした実験的なプログラムをmshr-h/sandboxに詰め込んでいる。 ディレクトリ構造は以下。ライブラリや言語ごとにディレクトリを切っている。間違ってPythonからインポートしないようにディレクトリ名の末尾に_をつけている。 $ tree -L 1 . ├── LICENSE ├── README.md ├── golang_ ├── hummingbird_ ├── mlflow_ ├── onnx-mlir_ ├── onnx_ ├── onnxruntime_ ├── opencv_ ├── tvm_ ├── wasm_ └── zig_

2022-08-02 Tue ·     "Masahiro Hiramori"

ObsidianのTemplaterプラグインでDaily note作成時に定期タスクを自動追加するやり方

ObsidianのコミュニティプラグインTemplaterは、 テンプレートファイルにJavaScriptコードを埋め込み、ノート作成時にコードの実行結果をノートに埋め込める。 もちろんライブラリ関数の呼び出しや変数定義、ifやforといった制御構文も使える。 ObsidianのDaily note作成時に定期タスクを自動追加する方法のメモ。 Daily noteには、次のようなタスクがある。 曜日ごとに実施するタスク 月曜には可燃ごみの廃棄、金曜日には業務用カレンダーからミーティング時間を個人カレンダーにコピーする、など 特定の日付に実施するタスク 毎月25日に給与振込口座を確認する 月初めのある曜日に実施するタスク 毎月第1土曜日にmonthly noteを作成する Daily noteのファイル名はyyyy_MM_dd(例2022_08_02)とする。 この3種類のタスク作成をTemplaterを使ってどのように自動化するか。 1. 曜日ごとに実施するタスク まず、1. 曜日ごとに実施するタスクについて。これはまずファイル名から曜日を取得し、if elseで条件分岐すればよい。 TemplaterにJavaScriptコード(コマンド)を埋め込むには、<%* ... code ... %>で記述する。末尾が-%>の場合、コマンド記述の直後の改行を削除する。 コマンド内でファイル名を取得するには、Templaterが提供する組み込みコマンドtp.file.titleを使用する。 日付はtp.date.now()コマンドで解析できる。第1引数から順に取得したい要素(曜日や年月日など)、オフセット、解析対象の日付の文字列、解析対象の日付フォーマットをしていする。 フォーマットの指定はMoment.jsに従っているので詳細はそちらを参照。 条件分岐はJavaScriptと同じif (contition) { statement }の書き方。 上記を使って曜日ごとに実施するタスク生成を記述するとこんな感じになる。Daily noteの曜日が水曜の場合、some taskを追加してくれる。 <%* dow = tp.date.now("ddd", 0, tp.file.title, "YYYY_MM_DD") -%> <%* if (dow == "Wed" ) { -%> - [ ] some tasks <%* } -%> 2. 特定の日付に実施するタスク これも基本的には1. と同じ考え方でできる。tp.date.now()の第1引数で曜日ではなく日付を取得するように変更するだけ。 <%* if (tp.date.now("DD", 0, tp....

2022-08-02 Tue ·     "Masahiro Hiramori"

正規表現チートシート

VSCode向け。 .:任意の1文字にマッチ ^:文字列の先頭にマッチ $:文字列の末尾にマッチ []:ブラケット内の任意の1文字にマッチ [0-9]:半角数字1文字にマッチ [a-c]:a、b、cの1文字にマッチ [^]:ブラケット内を除く任意の1文字にマッチ *:直前の文字を0回以上繰り返す ?:直前の文字を0か1回繰り返す +:直前の文字を1回以上繰り返す {n}:直前の文字やグループをn回繰り返す {n,m}:直前の文字やグループをn回以上m回以下繰り返す {n,}:直前の文字やグループをn回以上繰り返す ():参照表示。カッコ内の文字列を$nで参照できる。 \s:空白、タブにマッチ \S:空白、タブを除く1文字にマッチ \t:タブにマッチ \d:半角数字にマッチ \D:半角数字以外にマッチ \w:半角英数とアンダースコアにマッチ \W:半角英数とアンダースコアを除く1文字にマッチ \n:改行コードにマッチ

2022-06-23 Thu ·     "Masahiro Hiramori"

正規表現でカッコの開き忘れを検出する

()の開き忘れを検出する正規表現の例 ^[^\(]+\) ^:行頭から [^\(]+:(以外の文字を検索 )を探す ネストしたカッコは検出できない Related link 正規表現チートシート

2022-06-23 Thu ·     "Masahiro Hiramori"

GitHub Actionsの効率的なデバッグ方法が分からない

GitHub ActionsのYAMLファイルをデバッグする際、 ①YAMLファイルを編集する ②commit&push ③GitHub Actions動く ④結果確認 ①に戻る の手順で試行錯誤しているが、③の完了に非常に時間がかかって困る。Dockerのコンテナビルドのような、変更部分移行を実行する、みたいな機能があればいいのに。

2022-06-15 Wed ·     "Masahiro Hiramori"