[OV] Compare OV vs GC compilation time
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 15/100
- Tipo de issue
- Refactorización
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- compilers, performance
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- C++
- Estrellas
- 64
- Forks
- 20
- Merge medio
- 1 d 6 h
- PR fusionados (30 d)
- 16
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de intel/graph-compiler
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 50/100
intel/graph-compiler#459 ·
Los mantenedores suelen responder en 1 día
Todos los issues de intel/graph-compiler
Issues similares
-
runtime: lf_f128_mod is documented as fmodq (truncating) but implements floor-based modulo; unusedAbiertointernal correctness low priority rt_lib
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 87/100
-
PriorityNotificationQueue::wakeUpAll() loses the wake-up for a thread that is not waiting yetPosiblemente ocupada @matejk la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pocoproject/poco#5674 ·
Los mantenedores suelen responder en 2 días
-
bug docs GUI
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
sonic-pi-net/sonic-pi#3609 ·
-
Unreachable code warningAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
SanderMertens/flecs#2395 ·
Los mantenedores suelen responder en 1 día