-
Notifications
You must be signed in to change notification settings - Fork 38
[TVM] Relax API #576
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TVM] Relax API #576
Conversation
src/configs/README.md
Outdated
@@ -354,6 +354,8 @@ | |||
изображения. | |||
- `ChannelSwap` - тег, необязательный для заполнения. Описывает изменение порядка каналов на | |||
входном изображении. По умолчанию будет установлен порядок (2, 0, 1), что соответствует BGR. | |||
- `HighLevelIR` - тег, необязательный для заполнения. Определяет используемое высокоуровневое API: `relay` или `relax`. По умолчанию задается значение `relay`. | |||
- `VirtualMachine` - тег, необязательный для заполнения. Определяет необходимость использования Virtual Machine API. Возможные значения: `True`, `False`. По умолчанию не установлен. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Vladislav-Denisov, по моим представлениям можно оставить только один тег, который определяет API (то, что называется HighLevelIR
, имеет смысл переименовать в HighLevelAPI
) и разрешить 3 возможных значения Relay
, VM
, Relax
. В TVM, насколько я понимаю, есть понятие и промежуточного представления модели, и программного интерфейса. Relay и VM APIs работают с Relay-представлением, а Relax API - с Relax.
@ismukhin, поправьте меня, если я не права.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@valentina-kustikova В таком случае могу предложить немного другие варианты: Relay
, RelayVM
, RelaxVM
. Так как Relay и Relax - это по сути именно представление.
Например, про Relax в официальной документации написано следующее.
Relax is a high-level abstraction for graph optimization and transformation in Apache TVM stack
А вот использовать VM или нет - это уже про способ запуска оптимизированной модели.
@@ -31,6 +31,7 @@ | |||
<Layout>NCHW</Layout> | |||
<Target>llvm</Target> | |||
<VirtualMachine>True</VirtualMachine> | |||
<HighLevelIR></HighLevelIR> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здесь нужны автоматические тесты для проверки работы Relax API.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relax поддерживается с версии tvm 0.16 и выше.
В PyPi для пакета apache-tvm самая последняя доступная версия 0.14
То есть в нашем случае необходимо собрать подходящую версию из исходников и использовать её.
Можем ли мы при инициализации окружения в CI как-то подсунуть туда собранную версию, которая будет лежать на каком-то сервере/хранилище?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Выглядит так, что мы можем описать отдельный job в https://github.com/itlab-vision/dl-benchmark/blob/master/.github/workflows/smoke_test.yml и прописать перечень команд для сборки tvm из исходников по аналогии с тем, как ставятся зависимости. Но это мое предположение, надо пробовать.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если разобраться с тем, как из одного джоба прокинуть собранный tvm в другой, то получится. Но, скорее всего, будет проблемно в плане очень большого количества времени и джоб смок теста должен будет синхронизироваться по окончании джобы сборки, чтобы поставить tvm в своё окружение.
Тут, как мне кажется, проще будет собрать исходники, положить в один из наших репозиториев, выкачивать их и ставить через wheel в питоновское окружение
bc76822
to
e482665
Compare
@valentina-kustikova посмотрите, пожалуйста |
@ismukhin, посмотрите, пожалуйста. |
1275ac6
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Vladislav-Denisov, текущую реализацию заливаю в основную ветку. Дальнейшие исправления предлагаю отдельными пулл-реквестами приносить.
Добавлена поддержка Relax API для Apache TVM.