1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ascend-metadef

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

метадеф

Описание

metadef — это определение метаданных для Ascent, которое включает в себя соответствующие структуры данных и определения внешних интерфейсов.

Описание структуры каталога

metadef
├── error_manager                       # Определения соответствующих кодов ошибок
├── exe_graph
|   ├── lowering                        # Реализация интерфейсов для построения выполнения графа
|   ├── runtime                         # Реализация интерфейсов для выполнения графа
├── graph                               # Реализация интерфейсов графа, включая модуль кэширования графа и сериализацию
├── inc
|   ├── common                          # Некоторые общие заголовочные файлы
|   ├── exe_graph                       # Заголовочные файлы для выполнения графа
|   ├── external                        # Заголовочные файлы для внешнего использования (обеспечивающие совместимость)
|   ├── graph                           # Заголовочные файлы для интерфейсов графа
|   ├── register                        # Заголовочные файлы для регистрации операторов
├── proto                               # Определения протоколов для графа
├── register                            # Реализация регистрации операторов
├── tests                               # Каталог для тестирования разработчиками

Подготовка окружения

Перед компиляцией исходного кода убедитесь, что ваше окружение удовлетворяет следующим требованиям:- Установлен пакет CANN (Ascend-cann-toolkit_<cann_version>_linux-<arch>).

Пакет CANN можно получить с ссылки. Поддерживаемые способы установки и операционные системы указаны в соответствующем руководстве пользователя.

Пример команды для установки пакета CANN:

- Установка по умолчанию
  ```shell
  ./Ascend-cann-toolkit_<cann_version>_linux-<arch>.run --install
  ```

  - Если установка выполняется пользователем root, после завершения установки все программы будут расположены по пути `/usr/local/Ascend/ascend-toolkit/latest`.
  - Если установка выполняется пользователем, не являющимся root, после завершения установки все программы будут расположены по пути `$HOME/Ascend/ascend-toolkit/latest`.

- Установка в определенное место
  ```bash
  # Пример команды для установки пакета CANN:
  ./Ascend-cann-toolkit_<cann_version>_linux-<arch>.run --install --install-path=${install_path}
  ```

 После завершения установки все программы будут расположены по пути `${install_path}`.
  • Установлены следующие зависимости:- Для сборки исходного кода требуются следующие зависимости. Если они отсутствуют в вашем окружении, пожалуйста, установите их самостоятельно.
    • gcc: версия 7.5.0 и выше (рекомендуется 7.5.0)
    • cmake: версия 3.20.0 и выше (рекомендуется 3.20.0)
    • компиляционный кэш, оптимизирующий инструмент для ускорения повторной компиляции
    # Пример команды установки:
    sudo apt-get install ccache
    • graph-easy (необязательно)
    # Пример команды установки:
    sudo apt-get install libgraph-easy-perl
    ```## Скачивание исходного кода
    
git clone https://gitee.com/ascend/metadef.git

Настройка переменных окружения

Настройте переменную окружения ASCEND_INSTALL_PATH, чтобы указать путь к хранению связанных программ после установки Ascend-cann-toolkit.

  • Пример настройки для сценария установки Ascend-cann-toolkit с использованием пользователя root и по умолчанию:

    export ASCEND_INSTALL_PATH=/usr/local/Ascend/ascend-toolkit/latest
  • Пример настройки для сценария установки Ascend-cann-toolkit с использованием пользователя, отличного от root, и по умолчанию:

    export ASCEND_INSTALL_PATH=$HOME/Ascend/ascend-toolkit/latest
  • Пример настройки для сценария установки Ascend-cann-toolkit в пользовательском пути, если путь установки равен ${install_path}:

    export ASCEND_INSTALL_PATH=${install_path}/ascend-toolkit/latest

Примечание:

Если разработчик использует IDE CLion для последующей компиляции исходного кода и выполнения тестовых примеров, перед компиляцией и выполнением необходимо выполнить настройку CMake в CLion. Подробнее см. Настройка CLion.

Компиляция сторонних библиотек

Репозиторий Metadef зависит от некоторых сторонних библиотек. Перед основной компиляцией необходимо выполнить компиляцию сторонних библиотек. Команда для этого следующая:

bash build_third_party.sh --output_path=${THIRD_LIB_PATH}

Эта команда загружает все исходные коды сторонних библиотек, затем выполняет их компиляцию и копирует результаты в выходной каталог. - Параметр third_party_pkg_path

Если этот параметр указан, скрипт будет использовать исходные коды сторонних библиотек из указанного каталога, в противном случае они будут загружены онлайн.
  • Параметр enable_github

    Исходные коды сторонних библиотек могут быть загружены из двух источников: gitee и github. Если параметр third_party_pkg_path не указан, скрипт будет загружать исходные коды сторонних библиотек онлайн. Если параметр enable_github указан, загрузка будет выполнена с github, в противном случае с gitee.

  • Параметр output_path

    Каталог для хранения результатов компиляции задается этим параметром, и его значение по умолчанию равно ./output/third_party. Результаты компиляции третьих сторон могут быть сохранены на длительное время и не требуют перекомпиляции каждый раз, если зависимости не изменились.

Вы можете просмотреть подробное описание опций скрипта с помощью команды bash build_third_party.sh -h.

Когда указанный каталог исходного кода является локальным, требуется следующая структура каталога: ```angular2html some-path-name └── libs ├── abseil-cpp │ └── abseil-cpp-20220623.1.tar.gz ├── benchmark │ └── v1.5.5.tar.gz ├── boost │ └── boost_1_82_0.tar.gz ├── cares │ └── c-ares-cares-1_18_1.tar.gz ├── ge_gtest │ └── release-1.11.0.tar.gz ├── ge_nlohmann_json │ └── v3.11.2 │ └── include.zip ├── grpc │ └── grpc-v1.41.1.tar.gz ├── libjpeg-turbo │ └── 2.1.1.tar.gz ├── openssl │ └── openssl-3.0.9.tar.gz ├── protobuf │ └── protobuf-all-3.14.0.tar.gz ├── pybind11 │ └── v2.10.3.tar.gz ├── re2 │ └── re2-2021-11-01.tar.gz ├── symengine │ └── v0.10.1.zip └── zlib └── zlib-v1.2.13.tar.gz


`Metadef` предоставляет возможность однокнопочного запуска компиляции, которая может быть выполнена следующей командой:

```shell
bash build.sh --ascend_install_path=${ASCEND_INSTALL_PATH} --ascend_3rd_lib_path=${THIRD_LIB_PATH}

Значение по умолчанию для опции --ascend_install_path равно /usr/local/Ascend/ascend-toolkit/latest. После завершения компиляции в каталоге output/package будет создан пакет CANN-metadef-linux.<arch>.run, где <arch> представляет архитектуру операционной системы и может принимать значения x86_64 и aarch64.

Скрипт build.sh по умолчанию ищет библиотеки третьих сторон в каталоге ./output/third_party. Если при выполнении build_third_party.sh указан другой каталог для хранения библиотек третьих сторон, его можно настроить с помощью опции build.sh --ascend_3rd_lib_path=<указанный каталог библиотек третьих сторон>.

Дополнительные параметры компиляции можно просмотреть с помощью команды bash build.sh -h.

Локальная проверка (UT/ST)

Репозиторий Metadef предоставляет возможность однокнопочного запуска компиляции и выполнения тестов для разработчиков. Подробные настройки можно просмотреть с помощью команды bash tests/run_test.sh -h.

  bash tests/run_test.sh -u --ascend_install_path=${ASCEND_INSTALL_PATH} --ascend_3rd_lib_path=${THIRD_LIB_PATH}

Значение по умолчанию для опции --ascend_install_path равно /usr/local/Ascend/ascend-toolkit/latest.

Скрипт tests/run_test.sh ищет пути к библиотекам третьих сторон так же, как и скрипт build.sh.## Установка

После компиляции установка может быть выполнена следующей командой:

./CANN-metadef-linux.<arch>.run --full --install-path=${install_path}/ascend-toolkit

Откат

Если вы хотите откатить установку пользовательского пакета metadef до состояния после установки Ascend-cann-toolkit, выполните следующую команду.

./CANN-metadef-linux.<arch>.run --rollback --install-path=${install_path}/ascend-toolkit

Руководство по вкладам

Для репозитория Metadef разработчики должны учитывать следующие моменты при подготовке локального кода и создании запроса на включение (PR):

  1. Пожалуйста, используйте код, соответствующий стилю программирования Google, подробнее см. Google проектный стиль.
  2. При создании PR, пожалуйста, внимательно заполните информацию о бизнес-контексте, цели и схеме PR в соответствии с шаблоном PR.
  3. Если ваша правка не является простым исправлением ошибки, а включает в себя добавление новых функций, интерфейсов, параметров конфигурации или изменение процесса кода, обязательно обсудите схему в Issue перед тем, как отправить PR, чтобы избежать отказа в включении вашего кода. Если вы не уверены, относится ли ваша правка к категории "простое исправление ошибки", вы также можете обсудить схему в Issue.## Приложения

Настройка CLion

Если разработчики используют IDE CLion для компиляции исходного кода и выполнения тестовых примеров, перед компиляцией и выполнением необходимо выполнить следующие настройки:

  1. Выберите "File -> Settings" в меню, чтобы перейти на страницу настроек "Settings".
  2. В левой части окна "Settings" выберите "Build, Execution, Deployment -> CMake", чтобы перейти на страницу настроек "CMake".
  3. В настройках "CMake" выполните следующие настройки.
    • Тип сборки, установите значение на "GCOV".
    • Параметры CMake, установите следующие значения:
      -DENABLE_OPEN_SRC=True
      -DENABLE_METADEF_UT=True
      -DENABLE_METADEF_ST=True
      -DASCEND_INSTALL_PATH=${ASCEND_INSTALL_PATH}
      -DASCEND_3RD_LIB_PATH=${THIRD_LIB_PATH}
      Подробное описание значения переменной ASCEND_INSTALL_PATH см. в разделе Настройка переменных окружения.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Определение метаданных Ascend Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ascend-metadef.git
git@api.gitlife.ru:oschina-mirror/ascend-metadef.git
oschina-mirror
ascend-metadef
ascend-metadef
master