[OV] Compare OV vs GC compilation time

Abierto
#460 1 comentario 0 reacciones 0 asignados Ver en GitHub

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

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:

  1. oneDNN kernels(pre-compiled-binaries?) - are written on oneDNN side, OV simply invokes these.
  2. Pure cl-kernels - are written&compiled on OV's side
  3. ??? something else
Lenguaje dominante
C++
Estrellas
64
Forks
20
Merge medio
1 d 6 h
PR fusionados (30 d)
16

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de intel/graph-compiler

Todos los issues de intel/graph-compiler

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.