-
Notifications
You must be signed in to change notification settings - Fork 38
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
base: master
Are you sure you want to change the base?
Conversation
cmd_python_version = '' | ||
os_type = platform.system() | ||
if os_type == 'Linux': | ||
cmd_python_version = '/home/itmm/miniconda3/envs/tvm_main/bin/python3' |
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.
Полный путь до интерпретатора, насколько я помню, планируется вынести в параметры бенчмарка. Так ведь?
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.
да, планирую вынести в параметры бенчмарка, также надо будет вшить проверку, что там действительно интерпретатор, а не какой-нибудь rm
. Просто такая вещь явно не является безопасной, хотя можно оставить это на совесть пользователей :)
import subprocess | ||
|
||
|
||
class EnvCreator: |
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.
Предлагаю назвать этот клас TVMEnvCreator, чтобы не было никаких вопросов.
parser = argparse.ArgumentParser() | ||
|
||
parser.add_argument('-b', '--branch', | ||
help='Branch to build 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
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') |
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.
Разбейте, пожалуйста, строку на несколько, чтобы было не более 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.', |
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
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}') |
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.
Где-то написан 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.', |
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.
Имеет смысл выложить пример этого файла.
log = configure_logger('tvm_converter_log.txt') | ||
|
||
|
||
class TXTParser: |
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_compile_pipeline.py. Если они не отличаются, то имеет смысл уйти от дублирования кода.
|
||
|
||
|
||
|
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.
Много пустых строк, провека стиля кодирования не пройдет.
@@ -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__}') |
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.
Отладочная информация?
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
@ismukhin, по ходу возникло еще несколько вопросов:
|
|
Понятно, спасибо. Надо tag создать от того коммита, который использовался при запуске экспериментов. |
No description provided.