[OV] Compare OV vs GC compilation time
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 15/100
- issue の種類
- リファクタリング
- 明瞭さ
- 説明が足りない
- 活発さ
- 活発
- 技術スタック
- cpp
- 領域
- compilers, performance
調査の方向性
Start where a finalized cldnn::primitive is handed off to compilation in the GPU plugin, and put timing around the linalg -> binary stage including the IGC invocation; on the GPU-native side measure the same point while skipping the transformation_pipeline and cldnn::graph passes. Begin with a single-operation graph (matmul or SDPA) to check the ~600ms vs ~1ms estimate, then repeat per kernel type (oneDNN pre-compiled binaries vs pure CL kernels). Done means per-stage numbers that show where IGC time goes and why it differs from OV-GPU.
索引モデルが issue の本文から書いたものです。
説明
We have to formally compare model's compilation time in OV via MLIR and GPU-Native path. We agreed to exclude ov -> mlir conversion time out of the scope, what we're interested in is the time we spend in GC during linalg -> binary compilation (including IGC time). We have to compare against GPU-plugin-native's path and understand what causes the difference. When measuring GPU-plugin-native's path we have to exclude transformation_pipeline and cldnn::graph passes (as MLIR goes through the same path). We have to identify where a finalized cldnn::primitive starts compiling and measure its time.
It's suggested to first compare compilation on a graph of a single operation (matmul/sdpa?). We have an estimate of ~600ms for MLIR pipeline(with IGC taking ~50% of the time) and ~1ms for GPU-native pipeline(which also somehow includes IGC compilation). We have to verify if this is a true estimate and find out why IGC takes so much time in our case (compared with OV-GPU). My assumptions is that it's because oneDNN uses templates of pre-compiled binaries.
There are several "types" of kernels that are used inside of GPU plugin. We have to measure and understand the compilation flow for all of them. I know about two types:
- oneDNN kernels(pre-compiled-binaries?) - are written on oneDNN side, OV simply invokes these.
- Pure cl-kernels - are written&compiled on OV's side
- ??? something else
- 主要言語
- C++
- スター
- 64
- フォーク
- 20
- 平均マージ
- 1日 6時間
- マージ済み PR(30日)
- 16
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
intel/graph-compiler のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 50/100
intel/graph-compiler#459 ·
メンテナーはふだん 1 日以内に返信
intel/graph-compiler の issue をすべて見る
似ている issue
-
runtime: lf_f128_mod is documented as fmodq (truncating) but implements floor-based modulo; unusedオープンinternal correctness low priority rt_lib
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 87/100
-
PriorityNotificationQueue::wakeUpAll() loses the wake-up for a thread that is not waiting yet対応中かも @matejk が今日担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
pocoproject/poco#5674 ·
メンテナーはふだん 2 日以内に返信
-
bug docs GUI
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
sonic-pi-net/sonic-pi#3609 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
SanderMertens/flecs#2395 ·
メンテナーはふだん 1 日以内に返信