Skip to content
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

[DEPLOYMENT] Jenkins remote deployment #564

Draft
wants to merge 37 commits into
base: master
Choose a base branch
from

Conversation

ismukhin
Copy link
Contributor

No description provided.

@ismukhin ismukhin marked this pull request as draft December 12, 2024 13:42
cmd_python_version = ''
os_type = platform.system()
if os_type == 'Linux':
cmd_python_version = '/home/itmm/miniconda3/envs/tvm_main/bin/python3'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Полный путь до интерпретатора, насколько я помню, планируется вынести в параметры бенчмарка. Так ведь?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да, планирую вынести в параметры бенчмарка, также надо будет вшить проверку, что там действительно интерпретатор, а не какой-нибудь rm. Просто такая вещь явно не является безопасной, хотя можно оставить это на совесть пользователей :)

import subprocess


class EnvCreator:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю назвать этот клас TVMEnvCreator, чтобы не было никаких вопросов.

parser = argparse.ArgumentParser()

parser.add_argument('-b', '--branch',
help='Branch to build tvm.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tvm -> TVM

self._run(f'{self.conda}/bin/conda install -n tvm_main -c conda-forge -y gxx_linux-64')
self._run(f'{self.conda}/envs/tvm_main/bin/pip3 install -r requirements.txt')
self._run(f'git clone --recursive https://github.com/apache/tvm -b {self.branch}')
self._run(f'cd tvm && mkdir -p build && cd build && cmake -DUSE_LLVM=ON ../ && make -j$(nproc --all) && cd ../python && {self.conda}/envs/tvm_main/bin/python setup.py install --user')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Разбейте, пожалуйста, строку на несколько, чтобы было не более 80 символов. Что-то типа такого должно сработать:

self._run(f'cd tvm && mkdir -p build && cd build && '
        f'cmake -DUSE_LLVM=ON ../ && make -j$(nproc --all) && cd ../python && `
        f`{self.conda}/envs/tvm_main/bin/python setup.py install --user')

parser = argparse.ArgumentParser()

parser.add_argument('-b', '--branch',
help='Branch to build tvm.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tvm -> TVM

self._command_line += f' {name_of_arg}'

def create_command_line(self, model_name, target, batch, opt_level):
self._command_line = (f'{self.conda}/envs/tvm_main/bin/python3 ' + f'{self.converter}')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Где-то написан python (tvm_build_pipeline.py, строка 22), а где-то python3. Понимаю, что при запуске разницы нет, но лучше везде использовать одинаковое название интерпретатора. Вообще у меня есть мысль, что идентичные константные f-строки надо вытащить в отдельный python-скрипт, а потом их везде использовать.

required=True,
type=Path)
parser.add_argument('-mi', '--models_info',
help='Txt file with info about models.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Имеет смысл выложить пример этого файла.

log = configure_logger('tvm_converter_log.txt')


class TXTParser:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вроде бы этот класс уже есть в скрипте tvm_compile_pipeline.py. Если они не отличаются, то имеет смысл уйти от дублирования кода.





Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Много пустых строк, провека стиля кодирования не пройдет.

@@ -198,6 +198,7 @@ def main():
log.info(f'Shape for input layer {args.input_name}: {args.input_shape}')
converter = TVMConverter.get_converter(create_dict_for_converter(args))
report_writer.update_framework_info(name='TVM', version=converter.tvm.__version__)
print(f'TVM version: {converter.tvm.__version__}')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отладочная информация?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, проверял, что запускается нужная версия TVM

@valentina-kustikova
Copy link
Contributor

@ismukhin, по ходу возникло еще несколько вопросов:

  1. Выложен ли фикс ошибки с DockerExecutor, которую вы нашли, когда делали запуск основного пайплайна?
  2. Выложены ли последние результаты экспериментов с OpenVINO, для которых я смотрела табличку?
  3. Для версии нашего кода, которая используется для запуска массовых экспериментов, создан ли tag? Нужен, чтобы в таблице с результатами экспериментов можно было поставить ссылку на код.

@ismukhin
Copy link
Contributor Author

@ismukhin, по ходу возникло еще несколько вопросов:

  1. Выложен ли фикс ошибки с DockerExecutor, которую вы нашли, когда делали запуск основного пайплайна?
  2. Выложены ли последние результаты экспериментов с OpenVINO, для которых я смотрела табличку?
  3. Для версии нашего кода, которая используется для запуска массовых экспериментов, создан ли tag? Нужен, чтобы в таблице с результатами экспериментов можно было поставить ссылку на код.
  1. Будет выложен с результатами TVM, OpenVINO в отдельном PR
  2. Еще не выложен
  3. Я запускался отдельно со своей ветки, поскольку приходилось на лету делать какие-то фиксы, tag в основном репозитории не делал

@valentina-kustikova
Copy link
Contributor

@ismukhin, по ходу возникло еще несколько вопросов:

  1. Выложен ли фикс ошибки с DockerExecutor, которую вы нашли, когда делали запуск основного пайплайна?
  2. Выложены ли последние результаты экспериментов с OpenVINO, для которых я смотрела табличку?
  3. Для версии нашего кода, которая используется для запуска массовых экспериментов, создан ли tag? Нужен, чтобы в таблице с результатами экспериментов можно было поставить ссылку на код.
  1. Будет выложен с результатами TVM, OpenVINO в отдельном PR
  2. Еще не выложен
  3. Я запускался отдельно со своей ветки, поскольку приходилось на лету делать какие-то фиксы, tag в основном репозитории не делал

Понятно, спасибо. Надо tag создать от того коммита, который использовался при запуске экспериментов.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants