Интеграция моделей PyTorch с TVM ухудшает ситуацию с точки зрения времени

Мне недавно сказали, что интеграция / компиляция моей модели PyTorch с помощью Apache TVM должна ускорить вывод, но меня очень смущает использование TVM, поскольку, похоже, есть несколько способов его использования.

В этом блоге на их сайте говорится

Использование простое:

import torch_tvm
torch_tvm.enable()

Это оно! PyTorch затем попытается преобразовать все операторы, которые он может, в известные операторы Relay во время процесса JIT-компиляции.

Если только это помогает, почему другие конкретные руководства являются более всеобъемлющими? После прочтения нескольких учебных пособий я предположил (не уверен, прав ли я), что TVM действительно не может использовать способ запуска кода torch по умолчанию и нуждается в компиляторе jit (нестандартный способ запуска кода torch) для работа закончена. Это предположение было основано на том факте, что в учебнике репозитория github показан следующий фрагмент

import torch
import torch_tvm

torch_tvm.enable()

# The following function will be compiled with TVM
@torch.jit.script
def my_func(a, b, c):
    return a * b + c   

где функция my_funcзавернут в декоратор, который, похоже, компилирует функцию с помощью jit. Но использование этой точно такой же функции и время ее использования с оболочкой + TVM и без нее показывает, что нормальное использование этой функции намного эффективнее по времени. Если это не ускоряет процесс, в чем именно помогает jit+tvm? и если предполагается, что это ускоряет процесс, почему это не так?

PS Прошу прощения за исчерпывающее описание моей проблемы. Я не смог понять это и понять, что происходит, даже после того, как прочитал и немного поработал с torch_tvm. Буду признателен за любую ссылку на ресурсы или любое объяснение, которое может мне помочь.

0 ответов

Другие вопросы по тегам