| @@ -52,7 +52,7 @@ ConstructorInitializerAllOnOneLineOrOnePerLine: true | |||
| ConstructorInitializerIndentWidth: 4 | |||
| ContinuationIndentWidth: 2 | |||
| Cpp11BracedListStyle: true | |||
| DerivePointerAlignment: false | |||
| DerivePointerAlignment: true | |||
| DisableFormat: false | |||
| ExperimentalAutoDetectBinPacking: false | |||
| FixNamespaceComments: true | |||
| @@ -94,7 +94,7 @@ PenaltyBreakString: 1000 | |||
| PenaltyBreakTemplateDeclaration: 10 | |||
| PenaltyExcessCharacter: 1000000 | |||
| PenaltyReturnTypeOnItsOwnLine: 200 | |||
| PointerAlignment: Right | |||
| PointerAlignment: Left | |||
| RawStringFormats: | |||
| - Language: Cpp | |||
| Delimiters: | |||
| @@ -124,6 +124,7 @@ RawStringFormats: | |||
| CanonicalDelimiter: '' | |||
| BasedOnStyle: google | |||
| ReflowComments: true | |||
| SortIncludes: true | |||
| SortUsingDeclarations: true | |||
| SpaceAfterCStyleCast: false | |||
| SpaceAfterTemplateKeyword: true | |||
| @@ -1,28 +0,0 @@ | |||
| <!-- Thanks for sending a pull request! Here are some tips for you: | |||
| 1) If this is your first time, please read our contributor guidelines: https://gitee.com/mindspore/mindspore/blob/master/CONTRIBUTING.md | |||
| 2) If you want to contribute your code but don't know who will review and merge, please add label `mindspore-assistant` to the pull request, we will find and do it as soon as possible. | |||
| --> | |||
| **What type of PR is this?** | |||
| > Uncomment only one ` /kind <>` line, hit enter to put that in a new line, and remove leading whitespaces from that line: | |||
| > | |||
| > /kind bug | |||
| > /kind task | |||
| > /kind feature | |||
| **What does this PR do / why do we need it**: | |||
| **Which issue(s) this PR fixes**: | |||
| <!-- | |||
| *Automatically closes linked issue when PR is merged. | |||
| Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. | |||
| --> | |||
| Fixes # | |||
| **Special notes for your reviewers**: | |||
| @@ -1,19 +0,0 @@ | |||
| --- | |||
| name: RFC | |||
| about: Use this template for the new feature or enhancement | |||
| labels: kind/feature or kind/enhancement | |||
| --- | |||
| ## Background | |||
| - Describe the status of the problem you wish to solve | |||
| - Attach the relevant issue if have | |||
| ## Introduction | |||
| - Describe the general solution, design and/or pseudo-code | |||
| ## Trail | |||
| | No. | Task Description | Related Issue(URL) | | |||
| | --- | ---------------- | ------------------ | | |||
| | 1 | | | | |||
| | 2 | | | | |||
| @@ -1,43 +0,0 @@ | |||
| --- | |||
| name: Bug Report | |||
| about: Use this template for reporting a bug | |||
| labels: kind/bug | |||
| --- | |||
| <!-- Thanks for sending an issue! Here are some tips for you: | |||
| If this is your first time, please read our contributor guidelines: https://github.com/mindspore-ai/mindspore/blob/master/CONTRIBUTING.md | |||
| --> | |||
| ## Environment | |||
| ### Hardware Environment(`Ascend`/`GPU`/`CPU`): | |||
| > Uncomment only one ` /device <>` line, hit enter to put that in a new line, and remove leading whitespaces from that line: | |||
| > | |||
| > `/device ascend`</br> | |||
| > `/device gpu`</br> | |||
| > `/device cpu`</br> | |||
| ### Software Environment: | |||
| - **MindSpore version (source or binary)**: | |||
| - **Python version (e.g., Python 3.7.5)**: | |||
| - **OS platform and distribution (e.g., Linux Ubuntu 16.04)**: | |||
| - **GCC/Compiler version (if compiled from source)**: | |||
| ## Describe the current behavior | |||
| ## Describe the expected behavior | |||
| ## Steps to reproduce the issue | |||
| 1. | |||
| 2. | |||
| 3. | |||
| ## Related log / screenshot | |||
| ## Special notes for this issue | |||
| @@ -1,19 +0,0 @@ | |||
| --- | |||
| name: Task | |||
| about: Use this template for task tracking | |||
| labels: kind/task | |||
| --- | |||
| ## Task Description | |||
| ## Task Goal | |||
| ## Sub Task | |||
| | No. | Task Description | Issue ID | | |||
| | --- | ---------------- | -------- | | |||
| | 1 | | | | |||
| | 2 | | | | |||
| @@ -1,26 +0,0 @@ | |||
| <!-- Thanks for sending a pull request! Here are some tips for you: | |||
| 1) If this is your first time, please read our contributor guidelines: https://github.com/mindspore-ai/mindspore/blob/master/CONTRIBUTING.md | |||
| 2) If you want to contribute your code but don't know who will review and merge, please add label `mindspore-assistant` to the pull request, we will find and do it as soon as possible. | |||
| --> | |||
| **What type of PR is this?** | |||
| > Uncomment only one ` /kind <>` line, hit enter to put that in a new line, and remove leading whitespaces from that line: | |||
| > | |||
| > `/kind bug`</br> | |||
| > `/kind task`</br> | |||
| > `/kind feature`</br> | |||
| **What does this PR do / why do we need it**: | |||
| **Which issue(s) this PR fixes**: | |||
| <!-- | |||
| *Automatically closes linked issue when PR is merged. | |||
| Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. | |||
| --> | |||
| Fixes # | |||
| **Special notes for your reviewers**: | |||
| @@ -3,33 +3,6 @@ build/ | |||
| mindspore/lib | |||
| output | |||
| *.ir | |||
| st_tests | |||
| kernel_meta/ | |||
| somas_meta/ | |||
| trace_code_graph_* | |||
| # mindspore lite java | |||
| mindspore/lite/java/java/.gradle | |||
| mindspore/lite/java/java/build | |||
| mindspore/lite/java/java/gradle | |||
| mindspore/lite/java/java/gradlew | |||
| mindspore/lite/java/java/gradlew.bat | |||
| mindspore/lite/java/java/app/build | |||
| mindspore/lite/java/java/app/libs | |||
| # flatbuffer | |||
| mindspore/lite/tools/converter/parser/tflite/schema_generated.h | |||
| mindspore/lite/tools/converter/parser/caffe/caffe.pb.cc | |||
| mindspore/lite/tools/converter/parser/caffe/caffe.pb.h | |||
| mindspore/lite/tools/converter/parser/onnx/onnx.pb.h | |||
| mindspore/lite/tools/converter/parser/onnx/onnx.pb.h | |||
| mindspore/lite/tools/converter/schema/*.h | |||
| mindspore/lite/tools/converter/schema/inner | |||
| mindspore/lite/schema/*.h | |||
| mindspore/lite/schema/inner | |||
| mindspore/lite/src/runtime/kernel/opencl/cl/fp16/*.inc | |||
| mindspore/lite/src/runtime/kernel/opencl/cl/fp32/*.inc | |||
| # Cmake files | |||
| CMakeFiles/ | |||
| @@ -53,8 +26,6 @@ cmake-build-debug | |||
| *_pb2.py | |||
| *.pb.h | |||
| *.pb.cc | |||
| *.pb | |||
| *_grpc.py | |||
| # Object files | |||
| *.o | |||
| @@ -94,16 +65,9 @@ test_temp_summary_event_file/ | |||
| *.ckpt | |||
| *.shp | |||
| *.pkl | |||
| *.pb | |||
| .clangd | |||
| mindspore/version.py | |||
| mindspore/default_config.py | |||
| mindspore/device_target.py | |||
| mindspore/package_name.py | |||
| mindspore/.commit_id | |||
| # lite test file | |||
| mindspore/lite/test/do_test/ | |||
| # lite opencl compile file | |||
| *.cl.inc | |||
| onnx.proto | |||
| mindspore/ccsrc/onnx.proto | |||
| @@ -1,6 +1,15 @@ | |||
| [submodule "akg"] | |||
| path = akg | |||
| url = https://gitee.com/mindspore/akg.git | |||
| [submodule "third_party/flatbuffers"] | |||
| path = third_party/flatbuffers | |||
| url = https://github.com/google/flatbuffers.git | |||
| [submodule "third_party/googletest"] | |||
| path = third_party/googletest | |||
| url = https://github.com/google/googletest.git | |||
| [submodule "third_party/incubator-tvm"] | |||
| path = third_party/incubator-tvm | |||
| url = https://github.com/apache/incubator-tvm.git | |||
| [submodule "third_party/protobuf"] | |||
| path = third_party/protobuf | |||
| url = https://github.com/protocolbuffers/protobuf.git | |||
| [submodule "graphengine"] | |||
| path = graphengine | |||
| url = https://gitee.com/mindspore/graphengine.git | |||
| @@ -1,52 +1,21 @@ | |||
| cmake_minimum_required(VERSION 3.14.0) | |||
| project(MindSpore) | |||
| if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0) | |||
| message(FATAL_ERROR "GCC version ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0") | |||
| endif() | |||
| cmake_minimum_required(VERSION 3.14) | |||
| project (MindSpore) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/options.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/check_requirements.cmake) | |||
| set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") | |||
| if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| if(NOT ENABLE_GLIBCXX) | |||
| add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0) | |||
| endif() | |||
| endif() | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(CMAKE_OSX_SYSROOT "") | |||
| set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Winconsistent-missing-override -Wuser-defined-warnings \ | |||
| -Wno-return-std-move -Wno-unused-private-field -Wno-unused-lambda-capture -Wno-sign-compare \ | |||
| -Wno-overloaded-virtual -Wno-unneeded-internal-declaration -Wno-unused-variable -Wno-pessimizing-move \ | |||
| -Wno-inconsistent-missing-override -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2") | |||
| else() | |||
| set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wl,--allow-shlib-undefined \ | |||
| -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2") | |||
| endif() | |||
| if(ENABLE_PYTHON) | |||
| add_compile_definitions(ENABLE_PYTHON) | |||
| endif() | |||
| set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -g2 -ggdb -fno-inline-functions -fno-omit-frame-pointer \ | |||
| -Wl,--allow-shlib-undefined -D_LIBCPP_INLINE_VISIBILITY='' -D_LIBCPP_DISABLE_EXTERN_TEMPLATE=1 \ | |||
| -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2 -Wno-cpp") | |||
| set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include -std=c++17 \ | |||
| -Werror -Wall -Wno-deprecated-declarations -fPIC") | |||
| set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -g2 -ggdb -fno-inline-functions -fno-omit-frame-pointer -Wl,--allow-shlib-undefined -D_LIBCPP_INLINE_VISIBILITY='' -D'_LIBCPP_EXTERN_TEMPLATE(...)=' -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2 -Wno-cpp") | |||
| set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wl,--allow-shlib-undefined -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2") | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include -std=c++17 -Werror -Wall -Wno-deprecated-declarations -fPIC") | |||
| set(CMAKE_EXPORT_COMPILE_COMMANDS ON) | |||
| set(PYBIND11_CPP_STANDARD -std=c++17) | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPTION_CXX_FLAGS}") | |||
| if(ENABLE_AKG AND (ENABLE_D OR ENABLE_GPU)) | |||
| add_subdirectory("${CMAKE_SOURCE_DIR}/akg") | |||
| endif() | |||
| find_package(Threads) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/mind_expression.cmake) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/securec/include) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatbuffers/include) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatbuffers/include/flatbuffers) | |||
| @@ -55,18 +24,6 @@ find_package(Python3 COMPONENTS Interpreter Development) | |||
| if(Python3_FOUND) | |||
| set(PYTHON_INCLUDE_DIRS "${Python3_INCLUDE_DIRS}") | |||
| set(PYTHON_LIBRARIES "${Python3_LIBRARIES}") | |||
| if(WIN32) | |||
| if(Python3_DIR) | |||
| message("Python3_DIR set already: " ${Python3_DIR}) | |||
| else() | |||
| string(LENGTH ${PYTHON_LIBRARIES} PYTHON_LIBRARIES_LEN) | |||
| string(LENGTH "libpythonxx.a" Python3_NAME_LEN) | |||
| math(EXPR Python3_DIR_LEN ${PYTHON_LIBRARIES_LEN}-${Python3_NAME_LEN}) | |||
| string(SUBSTRING ${Python3_LIBRARIES} 0 ${Python3_DIR_LEN} Python3_DIR) | |||
| message("Python3_DIR: " ${Python3_DIR}) | |||
| endif() | |||
| link_directories(${Python3_DIR}) | |||
| endif() | |||
| else() | |||
| find_python_package(py_inc py_lib) | |||
| set(PYTHON_INCLUDE_DIRS "${py_inc}") | |||
| @@ -79,15 +36,20 @@ include_directories(${PYTHON_INCLUDE_DIRS}) | |||
| set(MS_CCSRC_PATH ${CMAKE_SOURCE_DIR}/mindspore/ccsrc) | |||
| set(MS_CCSRC_BUILD_PATH ${BUILD_PATH}/mindspore/mindspore/ccsrc) | |||
| if(ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES) | |||
| if (ENABLE_GE) | |||
| link_directories(${CMAKE_SOURCE_DIR}/third_party/ge/lib) | |||
| else() | |||
| include(${CMAKE_SOURCE_DIR}/cmake/dependency_graphengine.cmake) | |||
| endif() | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/graphengine/inc) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/graphengine/inc/external) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/graphengine/inc/framework) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc/toolchain) | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") | |||
| add_subdirectory(mindspore/ccsrc) | |||
| add_subdirectory(mindspore/core) | |||
| if(ENABLE_TESTCASES OR ENABLE_CPP_ST) | |||
| if (ENABLE_TESTCASES) | |||
| add_subdirectory(tests) | |||
| endif() | |||
| include(cmake/package.cmake) | |||
| @@ -30,33 +30,23 @@ For individual contributor, please refer to [ICLA online document](https://www.m | |||
| Please follow this style to make MindSpore easy to review, maintain and develop. | |||
| - Coding guidelines | |||
| * Coding guidelines | |||
| The *Python* coding style suggested by [Python PEP 8 Coding Style](https://pep8.org/) and *C++* coding style suggested by [Google C++ Coding Guidelines](http://google.github.io/styleguide/cppguide.html) are used in MindSpore community. | |||
| - Unittest guidelines | |||
| * Unittest guidelines | |||
| The *Python* unittest style suggested by [pytest](http://www.pytest.org/en/latest/) and *C++* unittest style suggested by [Googletest Primer](https://github.com/google/googletest/blob/master/docs/primer.md) are used in MindSpore community. | |||
| - Document guidelines | |||
| We use *MarkdownLint* to check the format of markdown documents. MindSpore CI modifies the following rules based on the default configuration. | |||
| - MD007 (unordered list indentation): The **indent** parameter is set to **4**, indicating that all content in the unordered list needs to be indented using four spaces. | |||
| - MD009 (spaces at the line end): The **br_spaces** parameter is set to **2**, indicating that there can be 0 or 2 spaces at the end of a line. | |||
| - MD029 (sequence numbers of an ordered list): The **style** parameter is set to **ordered**, indicating that the sequence numbers of the ordered list are in ascending order. | |||
| For details, please refer to [RULES](https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md). | |||
| The *Python* unittest style suggested by [pytest](http://www.pytest.org/en/latest/) and *C++* unittest style suggested by [Googletest Primer](https://github.com/google/googletest/blob/master/googletest/docs/primer.md) are used in MindSpore community. | |||
| ### Fork-Pull development model | |||
| - Fork MindSpore repository | |||
| * Fork MindSpore repository | |||
| Before submitting code to MindSpore project, please make sure that this project have been forked to your own repository. It means that there will be parallel development between MindSpore repository and your own repository, so be careful to avoid the inconsistency between them. | |||
| - Clone the remote repository | |||
| * Clone the remote repository | |||
| If you want to download the code to the local machine, `git` is the best way: | |||
| ```shell | |||
| # For GitHub | |||
| git clone https://github.com/{insert_your_forked_repo}/mindspore.git | |||
| @@ -66,20 +56,18 @@ Please follow this style to make MindSpore easy to review, maintain and develop. | |||
| git remote add upstream https://gitee.com/mindspore/mindspore.git | |||
| ``` | |||
| - Develop code locally | |||
| * Develop code locally | |||
| To avoid inconsistency between multiple branches, checking out to a new branch is `SUGGESTED`: | |||
| ```shell | |||
| git checkout -b {new_branch_name} origin/master | |||
| ``` | |||
| Then you can change the code arbitrarily. | |||
| - Push the code to the remote repository | |||
| * Push the code to the remote repository | |||
| After updating the code, you should push the update in the formal way: | |||
| ```shell | |||
| git add . | |||
| git status # Check the update status | |||
| @@ -88,9 +76,9 @@ Please follow this style to make MindSpore easy to review, maintain and develop. | |||
| git push origin {new_branch_name} | |||
| ``` | |||
| - Pull a request to MindSpore repository | |||
| * Pull a request to MindSpore repository | |||
| In the last step, your need to pull a compare request between your new branch and MindSpore `master` branch. After finishing the pull request, the Jenkins CI will be automatically set up for building test. | |||
| In the last step, your need to pull a compare request between your new branch and MindSpore `master` branch. After finishing the pull request, the Jekins CI will be automatically set up for building test. | |||
| ### Report issues | |||
| @@ -100,7 +88,6 @@ When reporting issues, refer to this format: | |||
| - What version of env (mindspore, os, python etc) are you using? | |||
| - Is this a BUG REPORT or FEATURE REQUEST? | |||
| - What kind of issue is, add the labels to highlight it on the issue dashboard. | |||
| - What happened? | |||
| - What you expected to happen? | |||
| - How to reproduce it?(as minimally and precisely as possible) | |||
| @@ -111,19 +98,18 @@ When reporting issues, refer to this format: | |||
| - **If you find an unclosed issue, which is exactly what you are going to solve,** please put some comments on that issue to tell others you would be in charge of it. | |||
| - **If an issue is opened for a while,** it's recommended for contributors to precheck before working on solving that issue. | |||
| - **If you resolve an issue which is reported by yourself,** it's also required to let others know before closing that issue. | |||
| - **If you want the issue to be responded as quickly as possible,** please try to label it, you can find kinds of labels on [Label List](https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md) | |||
| ### Propose PRs | |||
| - Raise your idea as an *issue* on [GitHub](https://github.com/mindspore-ai/mindspore/issues) or [Gitee](https://gitee.com/mindspore/mindspore/issues) | |||
| - If it is a new feature that needs lots of design details, a design proposal should also be submitted. | |||
| - After reaching consensus in the issue discussions and design proposal reviews, complete the development on the forked repo and submit a PR. | |||
| - None of PRs is not permitted until it receives **2+ LGTM** from approvers. Please NOTICE that approver is NOT allowed to add *LGTM* on his own PR. | |||
| - After PR is sufficiently discussed, it will get merged, abandoned or rejected depending on the outcome of the discussion. | |||
| * Raise your idea as an *issue* on [GitHub](https://github.com/mindspore-ai/mindspore/issues) or [Gitee](https://gitee.com/mindspore/mindspore/issues) | |||
| * If it is a new feature that needs lots of design details, a design proposal should also be submitted. | |||
| * After reaching consensus in the issue discussions and design proposal reviews, complete the development on the forked repo and submit a PR. | |||
| * None of PRs is not permitted until it receives **2+ LGTM** from approvers. Please NOTICE that approver is NOT allowed to add *LGTM* on his own PR. | |||
| * After PR is sufficiently discussed, it will get merged, abondoned or rejected depending on the outcome of the discussion. | |||
| **PRs advisory:** | |||
| - Any irrelevant changes should be avoided. | |||
| - Make sure your commit history being ordered. | |||
| - Always keep your branch up with the master branch. | |||
| - For bug-fix PRs, make sure all related issues being linked. | |||
| - For bug-fix PRs, make sure all related issues being linked. | |||
| @@ -1,37 +1,21 @@ | |||
|  | |||
|  | |||
| ============================================================ | |||
| [](https://pypi.org/project/mindspore) | |||
| [](https://badge.fury.io/py/mindspore) | |||
| [](https://pepy.tech/project/mindspore) | |||
| [](https://hub.docker.com/r/mindspore/mindspore-cpu) | |||
| [](https://github.com/mindspore-ai/mindspore/blob/master/LICENSE) | |||
| [](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) | |||
| [](https://gitee.com/mindspore/mindspore/pulls) | |||
| [查看中文](./README_CN.md) | |||
| <!-- TOC --> | |||
| - [What Is MindSpore](#what-is-mindspore) | |||
| - [What is MindSpore?](#what-is-MindSpore) | |||
| - [Automatic Differentiation](#automatic-differentiation) | |||
| - [Automatic Parallel](#automatic-parallel) | |||
| - [Installation](#installation) | |||
| - [Pip mode method installation](#pip-mode-method-installation) | |||
| - [Source code compilation installation](#source-code-compilation-installation) | |||
| - [Docker Image](#docker-image) | |||
| - [Binaries](#binaries) | |||
| - [From Source](#from-source) | |||
| - [Quickstart](#quickstart) | |||
| - [Docs](#docs) | |||
| - [Community](#community) | |||
| - [Governance](#governance) | |||
| - [Communication](#communication) | |||
| - [Contributing](#contributing) | |||
| - [Maintenance phases](#maintenance-phases) | |||
| - [Maintenance status](#maintenance-status) | |||
| - [Release Notes](#release-notes) | |||
| - [License](#license) | |||
| <!-- /TOC --> | |||
| ## What Is MindSpore | |||
| MindSpore is a new open source deep learning training/inference framework that | |||
| @@ -42,9 +26,9 @@ processor, and software hardware co-optimization. At the meantime MindSpore as | |||
| a global AI open source community, aims to further advance the development and | |||
| enrichment of the AI software/hardware application ecosystem. | |||
| <img src="https://gitee.com/mindspore/mindspore/raw/master/docs/MindSpore-architecture.png" alt="MindSpore Architecture" width="600"/> | |||
| <img src="docs/MindSpore-architecture.png" alt="MindSpore Architecture" width="600"/> | |||
| For more details please check out our [Architecture Guide](https://www.mindspore.cn/doc/note/en/master/design/mindspore/architecture.html). | |||
| For more details please check out our [Architecture Guide](https://www.mindspore.cn/docs/en/0.1.0-alpha/architecture.html). | |||
| ### Automatic Differentiation | |||
| @@ -58,7 +42,7 @@ TensorFlow adopted static calculation diagrams in the early days, whereas PyTorc | |||
| But MindSpore finds another way, automatic differentiation based on source code conversion. On the one hand, it supports automatic differentiation of automatic control flow, so it is quite convenient to build models like PyTorch. On the other hand, MindSpore can perform static compilation optimization on neural networks to achieve great performance. | |||
| <img src="https://gitee.com/mindspore/mindspore/raw/master/docs/Automatic-differentiation.png" alt="Automatic Differentiation" width="600"/> | |||
| <img src="docs/Automatic-differentiation.png" alt="Automatic Differentiation" width="600"/> | |||
| The implementation of MindSpore automatic differentiation can be understood as the symbolic differentiation of the program itself. Because MindSpore IR is a functional intermediate expression, it has an intuitive correspondence with the composite function in basic algebra. The derivation formula of the composite function composed of arbitrary basic functions can be derived. Each primitive operation in MindSpore IR can correspond to the basic functions in basic algebra, which can build more complex flow control. | |||
| @@ -66,182 +50,46 @@ The implementation of MindSpore automatic differentiation can be understood as t | |||
| The goal of MindSpore automatic parallel is to build a training method that combines data parallelism, model parallelism, and hybrid parallelism. It can automatically select a least cost model splitting strategy to achieve automatic distributed parallel training. | |||
| <img src="https://gitee.com/mindspore/mindspore/raw/master/docs/Automatic-parallel.png" alt="Automatic Parallel" width="600"/> | |||
| <img src="docs/Automatic-parallel.png" alt="Automatic Parallel" width="600"/> | |||
| At present, MindSpore uses a fine-grained parallel strategy of splitting operators, that is, each operator in the figure is split into a cluster to complete parallel operations. The splitting strategy during this period may be very complicated, but as a developer advocating Pythonic, you don't need to care about the underlying implementation, as long as the top-level API compute is efficient. | |||
| At present, MindSpore uses a fine-grained parallel strategy of splitting operators, that is, each operator in the figure is splited into a cluster to complete parallel operations. The splitting strategy during this period may be very complicated, but as a developer advocating Pythonic, you don't need to care about the underlying implementation, as long as the top-level API compute is efficient. | |||
| ## Installation | |||
| ### Pip mode method installation | |||
| ### Binaries | |||
| MindSpore offers build options across multiple backends: | |||
| | Hardware Platform | Operating System | Status | | |||
| | :---------------- | :--------------- | :----- | | |||
| | Ascend910 | Ubuntu-x86 | ✔️ | | |||
| | | Ubuntu-aarch64 | ✔️ | | |||
| | | EulerOS-x86 | ✔️ | | |||
| | | EulerOS-aarch64 | ✔️ | | |||
| | | CentOS-x86 | ✔️ | | |||
| | | CentOS-aarch64 | ✔️ | | |||
| | GPU CUDA 9.2 | Ubuntu-x86 | ✔️ | | |||
| | GPU CUDA 10.1 | Ubuntu-x86 | ✔️ | | |||
| | CPU | Ubuntu-x86 | ✔️ | | |||
| | | Ubuntu-aarch64 | ✔️ | | |||
| | | Windows-x86 | ✔️ | | |||
| For installation using `pip`, take `CPU` and `Ubuntu-x86` build version as an example: | |||
| 1. Download whl from [MindSpore download page](https://www.mindspore.cn/versions/en), and install the package. | |||
| ```bash | |||
| pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0-rc1/MindSpore/cpu/ubuntu_x86/mindspore-1.2.0rc1-cp37-cp37m-linux_x86_64.whl | |||
| ``` | |||
| 2. Run the following command to verify the install. | |||
| ```python | |||
| import numpy as np | |||
| import mindspore.context as context | |||
| import mindspore.nn as nn | |||
| from mindspore import Tensor | |||
| from mindspore.ops import operations as P | |||
| context.set_context(mode=context.GRAPH_MODE, device_target="CPU") | |||
| class Mul(nn.Cell): | |||
| def __init__(self): | |||
| super(Mul, self).__init__() | |||
| self.mul = P.Mul() | |||
| def construct(self, x, y): | |||
| return self.mul(x, y) | |||
| x = Tensor(np.array([1.0, 2.0, 3.0]).astype(np.float32)) | |||
| y = Tensor(np.array([4.0, 5.0, 6.0]).astype(np.float32)) | |||
| mul = Mul() | |||
| print(mul(x, y)) | |||
| ``` | |||
| ```text | |||
| [ 4. 10. 18.] | |||
| ``` | |||
| Use pip mode method to install MindSpore in different environments. Refer to the following documents. | |||
| - [Using pip mode method to install MindSpore in Ascend environment](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_pip_en.md) | |||
| - [Using pip mode method to install MindSpore in GPU environment](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_pip_en.md) | |||
| - [Using pip mode method to install MindSpore in CPU environment](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_pip_en.md) | |||
| ### Source code compilation installation | |||
| Use the source code compilation method to install MindSpore in different environments. Refer to the following documents. | |||
| - [Using the source code compilation method to install MindSpore in Ascend environment](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_source_en.md) | |||
| - [Using the source code compilation method to install MindSpore in GPU environment](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_source_en.md) | |||
| - [Using the source code compilation method to install MindSpore in CPU environment](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_source_en.md) | |||
| ### Docker Image | |||
| MindSpore docker image is hosted on [Docker Hub](https://hub.docker.com/r/mindspore), | |||
| currently the containerized build options are supported as follows: | |||
| For installation using pip, take `Ubuntu-x86` and `CPU` build version as an example: | |||
| | Hardware Platform | Docker Image Repository | Tag | Description | | |||
| | :---------------- | :---------------------- | :-- | :---------- | | |||
| | CPU | `mindspore/mindspore-cpu` | `x.y.z` | Production environment with pre-installed MindSpore `x.y.z` CPU release. | | |||
| | | | `devel` | Development environment provided to build MindSpore (with `CPU` backend) from the source, refer to <https://www.mindspore.cn/install/en> for installation details. | | |||
| | | | `runtime` | Runtime environment provided to install MindSpore binary package with `CPU` backend. | | |||
| | GPU | `mindspore/mindspore-gpu` | `x.y.z` | Production environment with pre-installed MindSpore `x.y.z` GPU release. | | |||
| | | | `devel` | Development environment provided to build MindSpore (with `GPU CUDA10.1` backend) from the source, refer to <https://www.mindspore.cn/install/en> for installation details. | | |||
| | | | `runtime` | Runtime environment provided to install MindSpore binary package with `GPU CUDA10.1` backend. | | |||
| | Ascend | <center>—</center> | <center>—</center> | Coming soon. | | |||
| 1. Download whl from [MindSpore website](https://www.mindspore.cn/), and install the package. | |||
| > **NOTICE:** For GPU `devel` docker image, it's NOT suggested to directly install the whl package after building from the source, instead we strongly RECOMMEND you transfer and install the whl package inside GPU `runtime` docker image. | |||
| - CPU | |||
| For `CPU` backend, you can directly pull and run the latest stable image using the below command: | |||
| ```bash | |||
| docker pull mindspore/mindspore-cpu:1.1.0 | |||
| docker run -it mindspore/mindspore-cpu:1.1.0 /bin/bash | |||
| ``` | |||
| - GPU | |||
| For `GPU` backend, please make sure the `nvidia-container-toolkit` has been installed in advance, here are some install guidelines for `Ubuntu` users: | |||
| ```bash | |||
| DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID) | |||
| curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add - | |||
| curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list | |||
| sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2 | |||
| sudo systemctl restart docker | |||
| pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.1.0-alpha/MindSpore/cpu/ubuntu-x86/mindspore-0.1.0-cp37-cp37m-linux_x86_64.whl | |||
| ``` | |||
| Then edit the file daemon.json: | |||
| ```bash | |||
| $ vim /etc/docker/daemon.json | |||
| { | |||
| "runtimes": { | |||
| "nvidia": { | |||
| "path": "nvidia-container-runtime", | |||
| "runtimeArgs": [] | |||
| } | |||
| } | |||
| } | |||
| ``` | |||
| Restart docker again: | |||
| 2. Run the following command to verify the install. | |||
| ```bash | |||
| sudo systemctl daemon-reload | |||
| sudo systemctl restart docker | |||
| ``` | |||
| Then you can pull and run the latest stable image using the below command: | |||
| ```bash | |||
| docker pull mindspore/mindspore-gpu:1.1.0 | |||
| docker run -it -v /dev/shm:/dev/shm --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.1.0 /bin/bash | |||
| python -c 'import mindspore' | |||
| ``` | |||
| To test if the docker image works, please execute the python code below and check the output: | |||
| ```python | |||
| import numpy as np | |||
| import mindspore.context as context | |||
| from mindspore import Tensor | |||
| from mindspore.ops import functional as F | |||
| ### From Source | |||
| context.set_context(mode=context.PYNATIVE_MODE, device_target="GPU") | |||
| x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) | |||
| y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) | |||
| print(F.tensor_add(x, y)) | |||
| ``` | |||
| ```text | |||
| [[[ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.]], | |||
| [[ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.]], | |||
| [[ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.]]] | |||
| ``` | |||
| If you want to learn more about the building process of MindSpore docker images, | |||
| please check out [docker](https://gitee.com/mindspore/mindspore/blob/master/docker/README.md) repo for the details. | |||
| [Install MindSpore](https://www.mindspore.cn/install/en). | |||
| ## Quickstart | |||
| See the [Quick Start](https://www.mindspore.cn/tutorial/training/en/master/quick_start/quick_start.html) | |||
| See the [Quick Start](https://www.mindspore.cn/tutorial/en/0.1.0-alpha/quick_start/quick_start.html) | |||
| to implement the image classification. | |||
| ## Docs | |||
| @@ -257,46 +105,20 @@ Check out how MindSpore Open Governance [works](https://gitee.com/mindspore/comm | |||
| ### Communication | |||
| - [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) - Communication platform for developers. | |||
| - [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/enQtOTcwMTIxMDI3NjM0LTNkMWM2MzI5NjIyZWU5ZWQ5M2EwMTQ5MWNiYzMxOGM4OWFhZjI4M2E5OGI2YTg3ODU1ODE2Njg1MThiNWI3YmQ) - Communication platform for developers. | |||
| - IRC channel at `#mindspore` (only for meeting minutes logging purpose) | |||
| - Video Conferencing: TBD | |||
| - Mailing-list: <https://mailweb.mindspore.cn/postorius/lists> | |||
| - Video Conferencing: meet.jit.si | |||
| - Mailing-list: https://mailweb.mindspore.cn/postorius/lists | |||
| ## Contributing | |||
| Welcome contributions. See our [Contributor Wiki](https://gitee.com/mindspore/mindspore/blob/master/CONTRIBUTING.md) for | |||
| Welcome contributions. See our [Contributor Wiki](CONTRIBUTING.md) for | |||
| more details. | |||
| ## Maintenance phases | |||
| Project stable branches will be in one of the following states: | |||
| | **State** | **Time frame** | **Summary** | | |||
| |-------------|---------------|--------------------------------------------------| | |||
| | Planning | 1 - 3 months | Features are under planning. | | |||
| | Development | 3 months | Features are under development. | | |||
| | Maintained | 6 - 12 months | All bugfixes are appropriate. Releases produced. | | |||
| | Unmaintained| 0 - 3 months | All bugfixes are appropriate. No Maintainers and No Releases produced. | | |||
| | End Of Life (EOL) | N/A | Branch no longer accepting changes. | | |||
| ## Maintenance status | |||
| | **Branch** | **Status** | **Initial Release Date** | **Next Phase** | **EOL Date** | | |||
| |--------|--------------|----------------------|-----------------------------------|------------| | |||
| | **r1.2** | Maintained | 2021-04-15 | Unmaintained <br> 2021-10-15 estimated | | | |||
| | **r1.1** | Maintained | 2020-12-31 | Unmaintained <br> 2021-06-30 estimated | | | |||
| | **r1.0** | Maintained | 2020-09-24 | Unmaintained <br> 2021-03-30 estimated | | | |||
| | **r0.7** | Unmaintained | 2020-08-31 | End Of Life <br> 2021-02-28 estimated | | | |||
| | **r0.6** | End Of Life | 2020-07-31 | | 2020-12-30 | | |||
| | **r0.5** | Maintained | 2020-06-30 | Unmaintained <br> 2021-06-30 estimated | | | |||
| | **r0.3** | End Of Life | 2020-05-31 | | 2020-09-30 | | |||
| | **r0.2** | End Of Life | 2020-04-30 | | 2020-08-31 | | |||
| | **r0.1** | End Of Life | 2020-03-28 | | 2020-06-30 | | |||
| ## Release Notes | |||
| The release notes, see our [RELEASE](https://gitee.com/mindspore/mindspore/blob/master/RELEASE.md). | |||
| The release notes, see our [RELEASE](RELEASE.md). | |||
| ## License | |||
| [Apache License 2.0](https://gitee.com/mindspore/mindspore#/mindspore/mindspore/blob/master/LICENSE) | |||
| [Apache License 2.0](LICENSE) | |||
| @@ -1,295 +0,0 @@ | |||
|  | |||
| [](https://pypi.org/project/mindspore) | |||
| [](https://badge.fury.io/py/mindspore) | |||
| [](https://pepy.tech/project/mindspore) | |||
| [](https://hub.docker.com/r/mindspore/mindspore-cpu) | |||
| [](https://github.com/mindspore-ai/mindspore/blob/master/LICENSE) | |||
| [](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) | |||
| [](https://gitee.com/mindspore/mindspore/pulls) | |||
| [View English](./README.md) | |||
| <!-- TOC --> | |||
| - [MindSpore介绍](#mindspore介绍) | |||
| - [自动微分](#自动微分) | |||
| - [自动并行](#自动并行) | |||
| - [安装](#安装) | |||
| - [pip方式安装](#pip方式安装) | |||
| - [源码编译方式安装](#源码编译方式安装) | |||
| - [Docker镜像](#docker镜像) | |||
| - [快速入门](#快速入门) | |||
| - [文档](#文档) | |||
| - [社区](#社区) | |||
| - [治理](#治理) | |||
| - [交流](#交流) | |||
| - [贡献](#贡献) | |||
| - [分支维护策略](#分支维护策略) | |||
| - [现有分支维护状态](#现有分支维护状态) | |||
| - [版本说明](#版本说明) | |||
| - [许可证](#许可证) | |||
| <!-- /TOC --> | |||
| ## MindSpore介绍 | |||
| MindSpore是一种适用于端边云场景的新型开源深度学习训练/推理框架。 | |||
| MindSpore提供了友好的设计和高效的执行,旨在提升数据科学家和算法工程师的开发体验,并为Ascend AI处理器提供原生支持,以及软硬件协同优化。 | |||
| 同时,MindSpore作为全球AI开源社区,致力于进一步开发和丰富AI软硬件应用生态。 | |||
| <img src="https://gitee.com/mindspore/mindspore/raw/master/docs/MindSpore-architecture.png" alt="MindSpore Architecture" width="600"/> | |||
| 欲了解更多详情,请查看我们的[总体架构](https://www.mindspore.cn/doc/note/zh-CN/master/design/mindspore/architecture.html)。 | |||
| ### 自动微分 | |||
| 当前主流深度学习框架中有三种自动微分技术: | |||
| - **基于静态计算图的转换**:编译时将网络转换为静态数据流图,将链式法则应用于数据流图,实现自动微分。 | |||
| - **基于动态计算图的转换**:记录算子过载正向执行时网络的运行轨迹,对动态生成的数据流图应用链式法则,实现自动微分。 | |||
| - **基于源码的转换**:该技术是从功能编程框架演进而来,以即时编译(Just-in-time Compilation,JIT)的形式对中间表达式(程序在编译过程中的表达式)进行自动差分转换,支持复杂的控制流场景、高阶函数和闭包。 | |||
| TensorFlow早期采用的是静态计算图,PyTorch采用的是动态计算图。静态映射可以利用静态编译技术来优化网络性能,但是构建网络或调试网络非常复杂。动态图的使用非常方便,但很难实现性能的极限优化。 | |||
| MindSpore找到了另一种方法,即基于源代码转换的自动微分。一方面,它支持自动控制流的自动微分,因此像PyTorch这样的模型构建非常方便。另一方面,MindSpore可以对神经网络进行静态编译优化,以获得更好的性能。 | |||
| <img src="https://gitee.com/mindspore/mindspore/raw/master/docs/Automatic-differentiation.png" alt="Automatic Differentiation" width="600"/> | |||
| MindSpore自动微分的实现可以理解为程序本身的符号微分。MindSpore IR是一个函数中间表达式,它与基础代数中的复合函数具有直观的对应关系。复合函数的公式由任意可推导的基础函数组成。MindSpore IR中的每个原语操作都可以对应基础代数中的基本功能,从而可以建立更复杂的流控制。 | |||
| ### 自动并行 | |||
| MindSpore自动并行的目的是构建数据并行、模型并行和混合并行相结合的训练方法。该方法能够自动选择开销最小的模型切分策略,实现自动分布并行训练。 | |||
| <img src="https://gitee.com/mindspore/mindspore/raw/master/docs/Automatic-parallel.png" alt="Automatic Parallel" width="600"/> | |||
| 目前MindSpore采用的是算子切分的细粒度并行策略,即图中的每个算子被切分为一个集群,完成并行操作。在此期间的切分策略可能非常复杂,但是作为一名Python开发者,您无需关注底层实现,只要顶层API计算是有效的即可。 | |||
| ## 安装 | |||
| ### pip方式安装 | |||
| MindSpore提供跨多个后端的构建选项: | |||
| | 硬件平台 | 操作系统 | 状态 | | |||
| | :------------ | :-------------- | :--- | | |||
| | Ascend 910 | Ubuntu-x86 | ✔️ | | |||
| | | Ubuntu-aarch64 | ✔️ | | |||
| | | EulerOS-aarch64 | ✔️ | | |||
| | | CentOS-x86 | ✔️ | | |||
| | | CentOS-aarch64 | ✔️ | | |||
| | GPU CUDA 10.1 | Ubuntu-x86 | ✔️ | | |||
| | CPU | Ubuntu-x86 | ✔️ | | |||
| | | Ubuntu-aarch64 | ✔️ | | |||
| | | Windows-x86 | ✔️ | | |||
| 使用`pip`命令安装,以`CPU`和`Ubuntu-x86`build版本为例: | |||
| 1. 请从[MindSpore下载页面](https://www.mindspore.cn/versions)下载并安装whl包。 | |||
| ```bash | |||
| pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0-rc1/MindSpore/cpu/ubuntu_x86/mindspore-1.2.0rc1-cp37-cp37m-linux_x86_64.whl | |||
| ``` | |||
| 2. 执行以下命令,验证安装结果。 | |||
| ```python | |||
| import numpy as np | |||
| import mindspore.context as context | |||
| import mindspore.nn as nn | |||
| from mindspore import Tensor | |||
| from mindspore.ops import operations as P | |||
| context.set_context(mode=context.GRAPH_MODE, device_target="CPU") | |||
| class Mul(nn.Cell): | |||
| def __init__(self): | |||
| super(Mul, self).__init__() | |||
| self.mul = P.Mul() | |||
| def construct(self, x, y): | |||
| return self.mul(x, y) | |||
| x = Tensor(np.array([1.0, 2.0, 3.0]).astype(np.float32)) | |||
| y = Tensor(np.array([4.0, 5.0, 6.0]).astype(np.float32)) | |||
| mul = Mul() | |||
| print(mul(x, y)) | |||
| ``` | |||
| ```text | |||
| [ 4. 10. 18.] | |||
| ``` | |||
| 使用pip方式,在不同的环境安装MindSpore,可参考以下文档。 | |||
| - [Ascend环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_pip.md) | |||
| - [GPU环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_pip.md) | |||
| - [CPU环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_pip.md) | |||
| ### 源码编译方式安装 | |||
| 使用源码编译方式,在不同的环境安装MindSpore,可参考以下文档。 | |||
| - [Ascend环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_source.md) | |||
| - [GPU环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_source.md) | |||
| - [CPU环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_source.md) | |||
| ### Docker镜像 | |||
| MindSpore的Docker镜像托管在[Docker Hub](https://hub.docker.com/r/mindspore)上。 | |||
| 目前容器化构建选项支持情况如下: | |||
| | 硬件平台 | Docker镜像仓库 | 标签 | 说明 | | |||
| | :----- | :------------------------ | :----------------------- | :--------------------------------------- | | |||
| | CPU | `mindspore/mindspore-cpu` | `x.y.z` | 已经预安装MindSpore `x.y.z` CPU版本的生产环境。 | | |||
| | | | `devel` | 提供开发环境从源头构建MindSpore(`CPU`后端)。安装详情请参考<https://www.mindspore.cn/install> 。 | | |||
| | | | `runtime` | 提供运行时环境安装MindSpore二进制包(`CPU`后端)。 | | |||
| | GPU | `mindspore/mindspore-gpu` | `x.y.z` | 已经预安装MindSpore `x.y.z` GPU版本的生产环境。 | | |||
| | | | `devel` | 提供开发环境从源头构建MindSpore(`GPU CUDA10.1`后端)。安装详情请参考<https://www.mindspore.cn/install> 。 | | |||
| | | | `runtime` | 提供运行时环境安装MindSpore二进制包(`GPU CUDA10.1`后端)。 | | |||
| | Ascend | <center>—</center> | <center>—</center> | 即将推出,敬请期待。 | | |||
| > **注意:** 不建议从源头构建GPU `devel` Docker镜像后直接安装whl包。我们强烈建议您在GPU `runtime` Docker镜像中传输并安装whl包。 | |||
| - CPU | |||
| 对于`CPU`后端,可以直接使用以下命令获取并运行最新的稳定镜像: | |||
| ```bash | |||
| docker pull mindspore/mindspore-cpu:1.1.0 | |||
| docker run -it mindspore/mindspore-cpu:1.1.0 /bin/bash | |||
| ``` | |||
| - GPU | |||
| 对于`GPU`后端,请确保`nvidia-container-toolkit`已经提前安装,以下是`Ubuntu`用户安装指南: | |||
| ```bash | |||
| DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID) | |||
| curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add - | |||
| curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list | |||
| sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2 | |||
| sudo systemctl restart docker | |||
| ``` | |||
| 编辑文件 daemon.json: | |||
| ```bash | |||
| $ vim /etc/docker/daemon.json | |||
| { | |||
| "runtimes": { | |||
| "nvidia": { | |||
| "path": "nvidia-container-runtime", | |||
| "runtimeArgs": [] | |||
| } | |||
| } | |||
| } | |||
| ``` | |||
| 再次重启docker: | |||
| ```bash | |||
| sudo systemctl daemon-reload | |||
| sudo systemctl restart docker | |||
| ``` | |||
| 使用以下命令获取并运行最新的稳定镜像: | |||
| ```bash | |||
| docker pull mindspore/mindspore-gpu:1.1.0 | |||
| docker run -it -v /dev/shm:/dev/shm --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.1.0 /bin/bash | |||
| ``` | |||
| 要测试Docker是否正常工作,请运行下面的Python代码并检查输出: | |||
| ```python | |||
| import numpy as np | |||
| import mindspore.context as context | |||
| from mindspore import Tensor | |||
| from mindspore.ops import functional as F | |||
| context.set_context(mode=context.PYNATIVE_MODE, device_target="GPU") | |||
| x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) | |||
| y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) | |||
| print(F.tensor_add(x, y)) | |||
| ``` | |||
| ```text | |||
| [[[ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.]], | |||
| [[ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.]], | |||
| [[ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.], | |||
| [ 2. 2. 2. 2.]]] | |||
| ``` | |||
| 如果您想了解更多关于MindSpore Docker镜像的构建过程,请查看[docker](https://gitee.com/mindspore/mindspore/blob/master/docker/README.md) repo了解详细信息。 | |||
| ## 快速入门 | |||
| 参考[快速入门](https://www.mindspore.cn/tutorial/training/zh-CN/master/quick_start/quick_start.html)实现图片分类。 | |||
| ## 文档 | |||
| 有关安装指南、教程和API的更多详细信息,请参阅[用户文档](https://gitee.com/mindspore/docs)。 | |||
| ## 社区 | |||
| ### 治理 | |||
| 查看MindSpore如何进行[开放治理](https://gitee.com/mindspore/community/blob/master/governance.md)。 | |||
| ### 交流 | |||
| - [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) 开发者交流平台。 | |||
| - `#mindspore`IRC频道(仅用于会议记录) | |||
| - 视频会议:待定 | |||
| - 邮件列表:<https://mailweb.mindspore.cn/postorius/lists> | |||
| ## 贡献 | |||
| 欢迎参与贡献。更多详情,请参阅我们的[贡献者Wiki](https://gitee.com/mindspore/mindspore/blob/master/CONTRIBUTING.md)。 | |||
| ## 分支维护策略 | |||
| MindSpore的版本分支有以下几种维护阶段: | |||
| | **状态** | **持续时间** | **说明** | | |||
| |-------------|---------------|--------------------------------------------------| | |||
| | Planning | 1 - 3 months | 特性规划。 | | |||
| | Development | 3 months | 特性开发。 | | |||
| | Maintained | 6 - 12 months | 允许所有问题修复的合入,并发布版本。 | | |||
| | Unmaintained| 0 - 3 months | 允许所有问题修复的合入,无专人维护,不再发布版本。 | | |||
| | End Of Life (EOL) | N/A | 不再接受修改合入该分支。 | | |||
| ## 现有分支维护状态 | |||
| | **分支名** | **当前状态** | **上线时间** | **后续状态** | **EOL 日期** | | |||
| |--------|--------------|----------------------|-----------------------------------|------------| | |||
| | **r1.2** | Maintained | 2021-04-15 | Unmaintained <br> 2021-10-15 estimated | | | |||
| | **r1.1** | Maintained | 2020-12-31 | Unmaintained <br> 2021-06-30 estimated | | | |||
| | **r1.0** | Maintained | 2020-09-24 | Unmaintained <br> 2021-03-30 estimated | | | |||
| | **r0.7** | Unmaintained | 2020-08-31 | End Of Life <br> 2021-02-28 estimated | | | |||
| | **r0.6** | End Of Life | 2020-07-31 | | 2020-12-30 | | |||
| | **r0.5** | Maintained | 2020-06-30 | Unmaintained <br> 2021-06-30 estimated | | | |||
| | **r0.3** | End Of Life | 2020-05-31 | | 2020-09-30 | | |||
| | **r0.2** | End Of Life | 2020-04-30 | | 2020-08-31 | | |||
| | **r0.1** | End Of Life | 2020-03-28 | | 2020-06-30 | | |||
| ## 版本说明 | |||
| 版本说明请参阅[RELEASE](https://gitee.com/mindspore/mindspore/blob/master/RELEASE.md)。 | |||
| ## 许可证 | |||
| [Apache License 2.0](https://gitee.com/mindspore/mindspore#/mindspore/mindspore/blob/master/LICENSE) | |||
| @@ -1,27 +1,14 @@ | |||
| # Security for MindSpore training | |||
| ## Security Risk Description | |||
| # Security Risk Description | |||
| 1. When MindSpore is used for AI model training, if the user-defined computational graph structure (for example, Python code for generating the MindSpore computational graph) is provided by an untrusted third party, malicious code may exist and will be loaded and executed to attack the system. | |||
| 2. Model files are stored in binary mode. When MindSpore is used to optimize or infer AI models and the model files are loaded in deserialization mode, once malicious code is written into the model files, the code are loaded and executed, causing attacks on the system. | |||
| 3. MindSpore performs only model training and inference based on the data provided by users. Users need to protect data security to avoid privacy leakage. | |||
| 4. MindSpore is a distributed training platform. When MindSpore is used for distributed training, if an Ascend chip is used for training, a device provides a secure transmission protocol for gradient fusion. If GPUs or other clusters are used for training, identity authentication and secure transmission are not provided. | |||
| ## Security Usage Suggestions | |||
| # Security Usage Suggestions | |||
| 1. Run MindSpore in the sandbox. | |||
| 2. Run MindSpore as a non-root user. | |||
| 3. Ensure that the source of a computational graph structure is trustworthy. Do not write code irrelevant to model training in the network structure definition. | |||
| 4. Ensure that the source of a network model is trustworthy or enter secure network model parameters to prevent model parameters from being tampered with. | |||
| 5. Ensure that GPU distributed training is performed on an isolated cluster network. | |||
| # Security for MindSpore Lite | |||
| ## Security Risk Description | |||
| When run a model using MindSpore Lite, the value from the model will be read and used as the parameter or input of a operator, if the value read from the model is invalid, it may cause unexpected result. For example, if the invalid value is used as the offset of a vector, it may cause your app run into segmentation fault issue. | |||
| ## Security Usage Suggestions | |||
| 1. Make sure your model is well verified and protected. | |||
| 2. The exception catching mechanism of C++ is an effective method to improve robustness of your app, consider adding code to catch exception when calling the MindSpore Lite API, as exception will be raised in some case such as the example mentioned in the risk description above. | |||
| @@ -1 +0,0 @@ | |||
| Subproject commit f1b98639da49b0ff6a9aed61bc564f08c040fca4 | |||
| @@ -0,0 +1,19 @@ | |||
| #!/bin/bash | |||
| # Copyright 2019 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| git submodule update --init --recursive | |||
| @@ -1,110 +0,0 @@ | |||
| @rem Copyright 2020 Huawei Technologies Co., Ltd | |||
| @rem | |||
| @rem Licensed under the Apache License, Version 2.0 (the "License"); | |||
| @rem you may not use this file except in compliance with the License. | |||
| @rem You may obtain a copy of the License at | |||
| @rem | |||
| @rem http://www.apache.org/licenses/LICENSE-2.0 | |||
| @rem | |||
| @rem Unless required by applicable law or agreed to in writing, software | |||
| @rem distributed under the License is distributed on an "AS IS" BASIS, | |||
| @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| @rem See the License for the specific language governing permissions and | |||
| @rem limitations under the License. | |||
| @rem ============================================================================ | |||
| @echo off | |||
| @title mindspore_build | |||
| SET BASE_PATH=%CD% | |||
| SET BUILD_PATH=%BASE_PATH%/build | |||
| SET threads=6 | |||
| SET X86_64_SIMD=off | |||
| SET ENABLE_GITEE=OFF | |||
| set VERSION_MAJOR='' | |||
| set VERSION_MINOR='' | |||
| set ERSION_REVISION='' | |||
| for /f "delims=\= tokens=2" %%a in ('findstr /C:"const int ms_version_major = " mindspore\lite\include\version.h') do (set x=%%a) | |||
| set VERSION_MAJOR=%x:~1,1% | |||
| for /f "delims=\= tokens=2" %%b in ('findstr /C:"const int ms_version_minor = " mindspore\lite\include\version.h') do (set y=%%b) | |||
| set VERSION_MINOR=%y:~1,1% | |||
| for /f "delims=\= tokens=2" %%c in ('findstr /C:"const int ms_version_revision = " mindspore\lite\include\version.h') do (set z=%%c) | |||
| set VERSION_REVISION=%z:~1,1% | |||
| ECHO %2%|FINDSTR "^[0-9][0-9]*$" | |||
| IF %errorlevel% == 0 ( | |||
| SET threads=%2% | |||
| ) ELSE ( | |||
| IF NOT "%2%" == "" ( | |||
| IF "%2%" == "avx" ( | |||
| SET X86_64_SIMD=avx | |||
| ) ELSE IF "%2%" == "sse" ( | |||
| SET X86_64_SIMD=sse | |||
| ) ELSE IF "%2%" == "off" ( | |||
| SET X86_64_SIMD=off | |||
| ) ELSE IF "%2%" == "avx512" ( | |||
| SET X86_64_SIMD=avx512 | |||
| ) ELSE ( | |||
| echo "MindSpore_lite the second parameter must in [avx, avx512, sse, off], but now is [%2%]" | |||
| call :clean | |||
| EXIT /b 1 | |||
| ) | |||
| IF NOT "%3%" == "" ( | |||
| SET threads=%3% | |||
| ) | |||
| ) | |||
| ) | |||
| IF "%FROM_GITEE%" == "1" ( | |||
| echo "DownLoad from gitee" | |||
| SET ENABLE_GITEE=ON | |||
| ) | |||
| IF NOT EXIST "%BUILD_PATH%" ( | |||
| md "build" | |||
| ) | |||
| cd %BUILD_PATH% | |||
| IF NOT EXIST "%BUILD_PATH%/mindspore" ( | |||
| md "mindspore" | |||
| ) | |||
| cd %BUILD_PATH%/mindspore | |||
| IF "%1%" == "lite" ( | |||
| echo "======Start building MindSpore Lite %VERSION_MAJOR%.%VERSION_MINOR%.%VERSION_REVISION%======" | |||
| cmake --build "%BUILD_PATH%\mindspore" --target clean | |||
| rd /s /q "%BASE_PATH%\output" | |||
| (git log -1 | findstr "^commit") > %BUILD_PATH%\.commit_id | |||
| cmake -DPLATFORM_ARM64=off -DSUPPORT_TRAIN=off ^ | |||
| -DENABLE_TOOLS=on -DENABLE_CONVERTER=on -DBUILD_TESTCASES=off ^ | |||
| -DCMAKE_BUILD_TYPE=Release -DSUPPORT_GPU=off -DBUILD_MINDDATA=off -DOFFLINE_COMPILE=off ^ | |||
| -DMS_VERSION_MAJOR=%VERSION_MAJOR% -DMS_VERSION_MINOR=%VERSION_MINOR% -DMS_VERSION_REVISION=%VERSION_REVISION% ^ | |||
| -DX86_64_SIMD=%X86_64_SIMD% ^ | |||
| -G "CodeBlocks - MinGW Makefiles" "%BASE_PATH%/mindspore/lite" | |||
| ) ELSE ( | |||
| cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CPU=ON -DENABLE_MINDDATA=ON -DUSE_GLOG=ON -DENABLE_GITEE=%ENABLE_GITEE% ^ | |||
| -G "CodeBlocks - MinGW Makefiles" ../.. | |||
| ) | |||
| IF NOT %errorlevel% == 0 ( | |||
| echo "cmake fail." | |||
| call :clean | |||
| EXIT /b 1 | |||
| ) | |||
| cmake --build . --target package -- -j%threads% | |||
| IF NOT %errorlevel% == 0 ( | |||
| echo "build fail." | |||
| call :clean | |||
| EXIT /b 1 | |||
| ) | |||
| call :clean | |||
| EXIT /b 0 | |||
| :clean | |||
| IF EXIST "%BASE_PATH%/output" ( | |||
| cd %BASE_PATH%/output | |||
| rd /s /q _CPack_Packages | |||
| ) | |||
| cd %BASE_PATH% | |||
| @@ -1,72 +0,0 @@ | |||
| ## define customized find functions, print customized error messages | |||
| function(find_required_package pkg_name) | |||
| find_package(${pkg_name}) | |||
| if(NOT ${pkg_name}_FOUND) | |||
| message(FATAL_ERROR "Required package ${pkg_name} not found, " | |||
| "please install the package and try building MindSpore again.") | |||
| endif() | |||
| endfunction() | |||
| function(find_required_program prog_name) | |||
| find_program(${prog_name}_EXE ${prog_name}) | |||
| if(NOT ${prog_name}_EXE) | |||
| message(FATAL_ERROR "Required program ${prog_name} not found, " | |||
| "please install the package and try building MindSpore again.") | |||
| endif() | |||
| endfunction() | |||
| ## find python, quit if the found python is static | |||
| set(Python3_USE_STATIC_LIBS FALSE) | |||
| find_package(Python3 COMPONENTS Interpreter Development) | |||
| if(Python3_FOUND) | |||
| message("Python3 found, version: ${Python3_VERSION}") | |||
| message("Python3 library path: ${Python3_LIBRARY}") | |||
| message("Python3 interpreter: ${Python3_EXECUTABLE}") | |||
| elseif(Python3_LIBRARY AND Python3_EXECUTABLE AND | |||
| ${Python3_VERSION} VERSION_GREATER_EQUAL "3.7.0" AND ${Python3_VERSION} VERSION_LESS "3.9.9") | |||
| message(WARNING "Maybe python3 environment is broken.") | |||
| message("Python3 library path: ${Python3_LIBRARY}") | |||
| message("Python3 interpreter: ${Python3_EXECUTABLE}") | |||
| else() | |||
| message(FATAL_ERROR "Python3 not found, please install Python>=3.7.5, and set --enable-shared " | |||
| "if you are building Python locally") | |||
| endif() | |||
| ## packages used both on windows and linux | |||
| if(DEFINED ENV{MS_PATCH_PATH}) | |||
| find_program(Patch_EXECUTABLE patch PATHS $ENV{MS_PATCH_PATH}) | |||
| set(Patch_FOUND ${Patch_EXECUTABLE}) | |||
| else() | |||
| find_package(Patch) | |||
| endif() | |||
| if(NOT Patch_FOUND) | |||
| message(FATAL_ERROR "Patch not found, " | |||
| "please set environment variable MS_PATCH_PATH to path where Patch is located, " | |||
| "usually found in GIT_PATH/usr/bin on Windows") | |||
| endif() | |||
| message(PATCH_EXECUTABLE = ${Patch_EXECUTABLE}) | |||
| find_required_package(Threads) | |||
| ## packages used on Linux | |||
| if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| if(ENABLE_MINDDATA) | |||
| find_required_program(tclsh) | |||
| endif() | |||
| ## packages used in GPU mode only | |||
| if(ENABLE_GPU) | |||
| find_library(gmp_LIB gmp) | |||
| find_library(gmpxx_LIB gmpxx) | |||
| find_file(gmp_HEADER gmp.h) | |||
| if(NOT gmp_LIB OR NOT gmpxx_LIB OR NOT gmp_HEADER) | |||
| message(FATAL_ERROR "Required package gmp not found, please install gmp and try building MindSpore again.") | |||
| endif() | |||
| find_required_program(automake) | |||
| find_required_program(autoconf) | |||
| find_required_program(libtoolize) | |||
| find_required_package(FLEX) | |||
| endif() | |||
| endif() | |||
| @@ -1,43 +1,70 @@ | |||
| message(STATUS "Compiling GraphEngine") | |||
| message(STATUS "ENABLE_GE set to FALSE, compiling GraphEngine") | |||
| set(GE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/graphengine) | |||
| message(STATUS "[ME] build_path: ${BUILD_PATH}") | |||
| message(STATUS "ge dir: ${GE_SOURCE_DIR}") | |||
| # download json headers, rather than whole repository | |||
| include(${GE_SOURCE_DIR}/cmake/ge_utils.cmake) | |||
| include(${GE_SOURCE_DIR}/cmake/external_libs/json.cmake) | |||
| include(${GE_SOURCE_DIR}/cmake/external_libs/eigen.cmake) | |||
| include(${GE_SOURCE_DIR}/cmake/external_libs/gtest.cmake) | |||
| include(${GE_SOURCE_DIR}/cmake/external_libs/protobuf.cmake) | |||
| include(${GE_SOURCE_DIR}/cmake/external_libs/onnx.cmake) | |||
| function(find_submodule_lib module name path) | |||
| find_library(${module}_LIBRARY_DIR NAMES ${name} NAMES_PER_DIR PATHS ${path} | |||
| PATH_SUFFIXES lib | |||
| ) | |||
| if("${${module}_LIBRARY_DIR}" STREQUAL "${module}_LIBRARY_DIR-NOTFOUND") | |||
| message(FATAL_ERROR "${name} not found in any of following paths: ${path}") | |||
| # for CPU/GPU mode, find c_sec and slog from local prebuild | |||
| if (NOT ENABLE_D) | |||
| set(GE_PREBUILD_PATH ${GE_SOURCE_DIR}/third_party/prebuild/${CMAKE_HOST_SYSTEM_PROCESSOR}) | |||
| find_library(c_sec libc_sec.so ${GE_PREBUILD_PATH}) | |||
| find_library(slog libslog.so ${GE_PREBUILD_PATH}) | |||
| elseif (DEFINED ENV{D_LINK_PATH}) | |||
| set(GE_LIB_PATH $ENV{D_LINK_PATH}) | |||
| set(GE_SYS_ARCH "") | |||
| if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64") | |||
| # x86 ubuntu | |||
| set(GE_SYS_ARCH "x86_64") | |||
| elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64") | |||
| # arm euleros | |||
| set(GE_SYS_ARCH "aarch64") | |||
| else() | |||
| message(FATAL_ERROR "Running on a unsupported architecture: ${SYSTEM_TYPE}, build terminated") | |||
| endif() | |||
| add_library(${module} SHARED IMPORTED) | |||
| set_target_properties(${module} PROPERTIES | |||
| IMPORTED_LOCATION ${${module}_LIBRARY_DIR} | |||
| ) | |||
| endfunction() | |||
| set(GE_LIB_PATH ${GE_LIB_PATH}/${GE_SYS_ARCH}) | |||
| find_library(c_sec libc_sec.so ${GE_LIB_PATH}) | |||
| find_library(slog libslog.so ${GE_LIB_PATH}) | |||
| find_library(mmpa libmmpa.so ${GE_LIB_PATH}) | |||
| find_library(runtime libruntime.so ${GE_LIB_PATH}) | |||
| find_library(msprof libmsprof.so ${GE_LIB_PATH}) | |||
| find_library(register libregister.so ${GE_LIB_PATH}) | |||
| find_library(hccl libhccl.so ${GE_LIB_PATH}) | |||
| find_library(cce libcce.so ${GE_LIB_PATH}) | |||
| find_library(resource libresource.so ${GE_LIB_PATH}) | |||
| else() | |||
| set(HIAI_INSTALLED_DIR /usr/local/HiAI) | |||
| set(HIAI_DRIVER_DIR ${HIAI_INSTALLED_DIR}/driver/lib64) | |||
| set(HIAI_RUNTIME_DIR ${HIAI_INSTALLED_DIR}/runtime/lib64) | |||
| find_library(c_sec libc_sec.so ${HIAI_DRIVER_DIR}) | |||
| find_library(slog libslog.so ${HIAI_DRIVER_DIR}) | |||
| find_library(mmpa libmmpa.so ${HIAI_DRIVER_DIR}) | |||
| if(ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES) | |||
| set(_ge_tmp_CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) | |||
| set(_ge_tmp_ENABLE_GITEE ${ENABLE_GITEE}) | |||
| set(_ge_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | |||
| set(ENABLE_GITEE ON) | |||
| set(CMAKE_INSTALL_PREFIX ${BUILD_PATH}/graphengine) | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__FILE__='\"$(subst $(realpath ${CMAKE_SOURCE_DIR})/,,$(abspath $<))\"' \ | |||
| -Wno-builtin-macro-redefined") | |||
| find_library(cce libcce.so ${HIAI_RUNTIME_DIR}) | |||
| find_library(hccl libhccl.so ${HIAI_RUNTIME_DIR}) | |||
| find_library(runtime libruntime.so ${HIAI_RUNTIME_DIR}) | |||
| find_library(msprof libmsprof.so ${HIAI_RUNTIME_DIR}) | |||
| find_library(register libregister.so ${HIAI_RUNTIME_DIR}) | |||
| find_library(resource libresource.so ${HIAI_RUNTIME_DIR}) | |||
| endif() | |||
| if(ENABLE_TESTCASES) | |||
| # use slog, error manager, mmpa in non ascend mode, e.g. tests | |||
| set(GE_PREBUILD_PATH ${GE_SOURCE_DIR}/third_party/prebuild/${CMAKE_HOST_SYSTEM_PROCESSOR}) | |||
| set(ENABLE_MS_TESTCASES TRUE) | |||
| find_submodule_lib(slog libalog.so ${GE_PREBUILD_PATH}) | |||
| find_submodule_lib(static_mmpa libmmpa.a ${GE_PREBUILD_PATH}) | |||
| endif() | |||
| # compile libraries from following directories | |||
| # this cmake file is called only when NOT ENABLE_GE is set | |||
| set(_ge_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | |||
| string(REPLACE " -Werror" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |||
| add_subdirectory(${GE_SOURCE_DIR}) | |||
| set(CMAKE_INSTALL_PREFIX ${_ge_tmp_CMAKE_INSTALL_PREFIX}) | |||
| set(ENABLE_GITEE ${_ge_tmp_ENABLE_GITEE}) | |||
| set(CMAKE_CXX_FLAGS ${_ge_tmp_CMAKE_CXX_FLAGS}) | |||
| else() | |||
| message(FATAL_ERROR "No compile option defined for GraphEngine, exiting") | |||
| string(REPLACE " -Wall" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |||
| string(REPLACE " -Werror" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |||
| # force __FILE__ to show relative path of file, from source directory | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__FILE__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"' -Wno-builtin-macro-redefined") | |||
| add_subdirectory(${GE_SOURCE_DIR}/src/common/graph) | |||
| if(ENABLE_D) | |||
| add_subdirectory(${GE_SOURCE_DIR}/src/ge/common) | |||
| add_subdirectory(${GE_SOURCE_DIR}/src/ge/ge_runtime) | |||
| endif() | |||
| set(CMAKE_CXX_FLAGS ${_ge_tmp_CMAKE_CXX_FLAGS}) | |||
| @@ -4,7 +4,7 @@ | |||
| # GTest_LIBRARY | |||
| # | |||
| if(NOT TARGET gtest) | |||
| if (NOT TARGET gtest) | |||
| set(BUILD_TESTING OFF CACHE BOOL "Disable glog test") | |||
| set(_ms_tmp_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) | |||
| @@ -17,8 +17,7 @@ if(NOT TARGET gtest) | |||
| set(CMAKE_MACOSX_RPATH TRUE) | |||
| set(CMAKE_CXX_FLAGS "${SECURE_CXX_FLAGS}") | |||
| if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "5.0" | |||
| AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64" AND SYSTEM_TYPE MATCHES "euleros") | |||
| if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "5.0" AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64" AND SYSTEM_TYPE MATCHES "euleros") | |||
| # -D_GLIBCXX_USE_CXX11_ABI=0 added for the ABI incompatible for libtsdclient.so | |||
| # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | |||
| endif() | |||
| @@ -3,7 +3,7 @@ | |||
| # | |||
| # PROTOBUF_LIBRARY - Link this to use protobuf | |||
| # | |||
| if(NOT TARGET protobuf::libprotobuf) | |||
| if (NOT TARGET protobuf::libprotobuf) | |||
| set(protobuf_BUILD_TESTS OFF CACHE BOOL "Disable protobuf test") | |||
| set(protobuf_BUILD_SHARED_LIBS OFF CACHE BOOL "Gen shared library") | |||
| set(_ms_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | |||
| @@ -14,7 +14,7 @@ if(NOT TARGET protobuf::libprotobuf) | |||
| add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/protobuf/cmake ${CMAKE_BINARY_DIR}/protobuf) | |||
| set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) | |||
| endif() | |||
| endif () | |||
| include_directories(${CMAKE_CURRENT_LIST_DIR}/../third_party/protobuf/src) | |||
| @@ -47,7 +47,7 @@ function(ms_protobuf_generate c_var h_var) | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/${rel_path}" | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| DEPENDS protobuf::protoc ${abs_file} | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM) | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM ) | |||
| endforeach() | |||
| set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE) | |||
| @@ -86,12 +86,10 @@ function(ms_protobuf_generate_py c_var h_var py_var) | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| COMMAND perl -pi -e "s/import (.+_pb2.*)/from . import \\1/" | |||
| "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" | |||
| COMMAND cp "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" | |||
| "${PROJECT_SOURCE_DIR}/mindspore/train/" | |||
| COMMAND perl -pi -e "s/import (.+_pb2.*)/from . import \\1/" "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" | |||
| COMMAND cp "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" "${PROJECT_SOURCE_DIR}/mindspore/train/" | |||
| DEPENDS protobuf::protoc ${abs_file} | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM) | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM ) | |||
| endforeach() | |||
| set_source_files_properties(${${c_var}} ${${h_var}} ${${py_var}} PROPERTIES GENERATED TRUE) | |||
| @@ -4,14 +4,11 @@ | |||
| # SECUREC_LIBRARY | |||
| # | |||
| if(NOT TARGET securec) | |||
| if (NOT TARGET securec) | |||
| set(_ms_tmp_CMAKE_POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE}) | |||
| set(_ms_tmp_CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) | |||
| set(CMAKE_C_FLAGS "${SECURE_CXX_FLAGS}") | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| add_compile_definitions(SECUREC_ONLY_DECLARE_MEMSET) | |||
| endif() | |||
| add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/securec ${CMAKE_BINARY_DIR}/securec) | |||
| set(CMAKE_POSITION_INDEPENDENT_CODE ${_ms_tmp_CMAKE_POSITION_INDEPENDENT_CODE}) | |||
| set(CMAKE_C_FLAGS ${_ms_tmp_CMAKE_C_FLAGS}) | |||
| @@ -3,7 +3,7 @@ | |||
| function(find_python_package out_inc out_lib) | |||
| # Use PYTHON_EXECUTABLE if it is defined, otherwise default to python | |||
| if("${PYTHON_EXECUTABLE}" STREQUAL "") | |||
| if ("${PYTHON_EXECUTABLE}" STREQUAL "") | |||
| set(PYTHON_EXECUTABLE "python3") | |||
| else() | |||
| set(PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}") | |||
| @@ -15,10 +15,9 @@ function(find_python_package out_inc out_lib) | |||
| OUTPUT_VARIABLE inc) | |||
| string(STRIP "${inc}" inc) | |||
| set(${out_inc} ${inc} PARENT_SCOPE) | |||
| execute_process( | |||
| COMMAND "${PYTHON_EXECUTABLE}" -c "import distutils.sysconfig as sysconfig; import os; \ | |||
| print(os.path.join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))" | |||
| COMMAND "${PYTHON_EXECUTABLE}" -c "import distutils.sysconfig as sysconfig; import os; print(os.path.join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))" | |||
| RESULT_VARIABLE result | |||
| OUTPUT_VARIABLE lib) | |||
| string(STRIP "${lib}" lib) | |||
| @@ -1,22 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/abseil-cpp/repository/archive/20200225.2.tar.gz") | |||
| set(MD5 "7e84ac40ee4541f645f5b9c90c9c98e6") | |||
| else() | |||
| set(REQ_URL "https://github.com/abseil/abseil-cpp/archive/20200225.2.tar.gz") | |||
| set(MD5 "73f2b6e72f1599a9139170c29482ddc4") | |||
| endif() | |||
| mindspore_add_pkg(absl | |||
| VER 20200225.2 | |||
| LIBS absl_strings absl_throw_delegate absl_raw_logging_internal absl_int128 absl_bad_optional_access | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE) | |||
| include_directories(${absl_INC}) | |||
| add_library(mindspore::absl_strings ALIAS absl::absl_strings) | |||
| add_library(mindspore::absl_throw_delegate ALIAS absl::absl_throw_delegate) | |||
| add_library(mindspore::absl_raw_logging_internal ALIAS absl::absl_raw_logging_internal) | |||
| add_library(mindspore::absl_int128 ALIAS absl::absl_int128) | |||
| add_library(mindspore::absl_bad_optional_access ALIAS absl::absl_bad_optional_access) | |||
| @@ -1,21 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/c-ares/repository/archive/cares-1_15_0.tar.gz") | |||
| set(MD5 "a1e06c7eb45b96b8bff2ee1b43a4c70b") | |||
| else() | |||
| set(REQ_URL "https://github.com/c-ares/c-ares/releases/download/cares-1_15_0/c-ares-1.15.0.tar.gz") | |||
| set(MD5 "d2391da274653f7643270623e822dff7") | |||
| endif() | |||
| mindspore_add_pkg(c-ares | |||
| VER 1.15.0 | |||
| LIBS cares | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release | |||
| -DCARES_SHARED:BOOL=OFF | |||
| -DCARES_STATIC:BOOL=ON | |||
| -DCARES_STATIC_PIC:BOOL=ON | |||
| -DHAVE_LIBNSL:BOOL=OFF) | |||
| include_directories(${c-ares_INC}) | |||
| add_library(mindspore::cares ALIAS c-ares::cares) | |||
| @@ -1,37 +0,0 @@ | |||
| set(cmsis_pkg_name cmsis) | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/CMSIS_5/repository/archive/5.7.0") | |||
| set(MD5 "f8b5c3f0711feb9ebac0fb05c15f0306") | |||
| else() | |||
| set(REQ_URL "https://github.com/ARM-software/CMSIS_5/archive/5.7.0.tar.gz") | |||
| set(MD5 "0eaa594b0c62dd72e41ec181c4689842") | |||
| endif() | |||
| set(INCLUDE "./") | |||
| mindspore_add_pkg(${cmsis_pkg_name} | |||
| VER 5.7.0 | |||
| HEAD_ONLY ${INCLUDE} | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5}) | |||
| message("micro get ${cmsis_pkg_name} config hash: ${${cmsis_pkg_name}_CONFIG_HASH}") | |||
| file(GLOB cmsic_children RELATIVE ${_MS_LIB_CACHE} ${_MS_LIB_CACHE}/*) | |||
| foreach(child ${cmsic_children}) | |||
| string(FIND "${child}" "${cmsis_pkg_name}" position) | |||
| if(NOT "${position}" EQUAL "-1") | |||
| file(STRINGS ${_MS_LIB_CACHE}/${child}/options.txt cmsis_configs) | |||
| foreach(cmsis_config ${cmsis_configs}) | |||
| string(FIND "${cmsis_config}" "${MD5}" position_md5) | |||
| if(NOT "${position_md5}" EQUAL "-1") | |||
| if(NOT IS_DIRECTORY ${CMAKE_BINARY_DIR}/${cmsis_pkg_name}) | |||
| MESSAGE("copy cmsis libaray: ${child} to ${CMAKE_BINARY_DIR}") | |||
| file(COPY ${_MS_LIB_CACHE}/${child}/CMSIS DESTINATION ${CMAKE_BINARY_DIR}/${cmsis_pkg_name}) | |||
| endif() | |||
| endif() | |||
| endforeach() | |||
| endif() | |||
| endforeach() | |||
| @@ -1,20 +0,0 @@ | |||
| set(cppjieba_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(cppjieba_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/cppjieba/repository/archive/v5.0.3.tar.gz") | |||
| set(MD5 "ea0bdd5a654a376e2c2077daae23b376") | |||
| else() | |||
| set(REQ_URL "https://github.com/yanyiwu/cppjieba/archive/v5.0.3.tar.gz") | |||
| set(MD5 "b8b3f7a73032c9ce9daafa4f67196c8c") | |||
| endif() | |||
| mindspore_add_pkg(cppjieba | |||
| VER 5.0.3 | |||
| HEAD_ONLY ./ | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/cppjieba/cppjieba.patch001) | |||
| include_directories(${cppjieba_INC}include) | |||
| include_directories(${cppjieba_INC}deps) | |||
| add_library(mindspore::cppjieba ALIAS cppjieba) | |||
| @@ -0,0 +1,5 @@ | |||
| mindspore_add_pkg(dlpack | |||
| VER 0.2 | |||
| HEAD_ONLY ./ | |||
| URL https://github.com/dmlc/dlpack/archive/0acb731e0e43d15deee27b66f10e4c5b4e667913.zip | |||
| MD5 6b8093f17ad4e830d3c63eb3171c4b45) | |||
| @@ -0,0 +1,5 @@ | |||
| mindspore_add_pkg(dmlc_core | |||
| VER 0.3 | |||
| HEAD_ONLY ./ | |||
| URL https://github.com/dmlc/dmlc-core/archive/808f485387f9a03f78fa9f1159f387d0d91b7a28.zip | |||
| MD5 ea36f94c57752bf40fb02dfc362f1ed9) | |||
| @@ -1,18 +1,9 @@ | |||
| set(Eigen3_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(Eigen3_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/eigen-git-mirrorsource/repository/archive/3.3.7.tar.gz") | |||
| set(MD5 "cf6552a5d90c1aca4b5e0b011f65ea93") | |||
| else() | |||
| set(REQ_URL "https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz") | |||
| set(MD5 "9e30f67e8531477de4117506fe44669b") | |||
| endif() | |||
| mindspore_add_pkg(Eigen3 | |||
| VER 3.3.7 | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz | |||
| MD5 9e30f67e8531477de4117506fe44669b | |||
| CMAKE_OPTION -DBUILD_TESTING=OFF) | |||
| find_package(Eigen3 3.3.7 REQUIRED ${MS_FIND_NO_DEFAULT_PATH}) | |||
| include_directories(${Eigen3_INC}) | |||
| @@ -1,28 +1,16 @@ | |||
| set(flatbuffers_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(flatbuffers_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(WIN32) | |||
| set(flatbuffers_USE_STATIC_LIBS ON) | |||
| endif() | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/flatbuffers/repository/archive/v1.11.0.tar.gz") | |||
| set(MD5 "4051dc865063ffa724c4264dea8dbbe9") | |||
| else() | |||
| set(REQ_URL "https://github.com/google/flatbuffers/archive/v1.11.0.tar.gz") | |||
| set(MD5 "02c64880acb89dbd57eebacfd67200d8") | |||
| endif() | |||
| mindspore_add_pkg(flatbuffers | |||
| VER 1.11.0 | |||
| LIBS flatbuffers | |||
| EXE flatc | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_INSTALL_LIBDIR=lib) | |||
| URL https://github.com/google/flatbuffers/archive/v1.11.0.tar.gz | |||
| MD5 02c64880acb89dbd57eebacfd67200d8 | |||
| CMAKE_OPTION -DFLATBUFFERS_BUILD_TESTS=OFF ) | |||
| include_directories(${flatbuffers_INC}) | |||
| add_library(mindspore::flatbuffers ALIAS flatbuffers::flatbuffers) | |||
| add_executable(mindspore::flatc ALIAS flatbuffers::flatc) | |||
| include_directories(${flatbuffers_INC}) | |||
| function(ms_build_flatbuffers source_schema_files | |||
| source_schema_dirs | |||
| custom_target_name | |||
| @@ -31,13 +19,13 @@ function(ms_build_flatbuffers source_schema_files | |||
| set(total_schema_dirs "") | |||
| set(total_generated_files "") | |||
| set(FLATC mindspore::flatc) | |||
| foreach(schema_dir ${source_schema_dirs}) | |||
| foreach (schema_dir ${source_schema_dirs}) | |||
| set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs}) | |||
| endforeach() | |||
| foreach(schema IN LISTS ${source_schema_files}) | |||
| foreach(schema ${source_schema_files}) | |||
| get_filename_component(filename ${schema} NAME_WE) | |||
| if(NOT ${generated_output_dir} STREQUAL "") | |||
| if (NOT ${generated_output_dir} STREQUAL "") | |||
| set(generated_file ${generated_output_dir}/${filename}_generated.h) | |||
| add_custom_command( | |||
| OUTPUT ${generated_file} | |||
| @@ -55,56 +43,7 @@ function(ms_build_flatbuffers source_schema_files | |||
| add_custom_target(${custom_target_name} ALL | |||
| DEPENDS ${total_generated_files}) | |||
| if(NOT ${generated_output_dir} STREQUAL "") | |||
| include_directories(${generated_output_dir}) | |||
| set_property(TARGET ${custom_target_name} | |||
| PROPERTY GENERATED_OUTPUT_DIR | |||
| ${generated_output_dir}) | |||
| endif() | |||
| endfunction() | |||
| function(ms_build_flatbuffers_lite | |||
| source_schema_files source_schema_dirs custom_target_name generated_output_dir if_inner) | |||
| set(total_schema_dirs "") | |||
| set(total_generated_files "") | |||
| set(FLATC mindspore::flatc) | |||
| foreach(schema_dir ${source_schema_dirs}) | |||
| set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs}) | |||
| endforeach() | |||
| foreach(schema IN LISTS ${source_schema_files}) | |||
| get_filename_component(filename ${schema} NAME_WE) | |||
| if(NOT ${generated_output_dir} STREQUAL "") | |||
| set(generated_file ${generated_output_dir}/${filename}_generated.h) | |||
| if(if_inner MATCHES "inner") | |||
| add_custom_command( | |||
| OUTPUT ${generated_file} | |||
| COMMAND ${FLATC} --gen-mutable | |||
| --reflect-names --gen-object-api -o ${generated_output_dir} | |||
| ${total_schema_dirs} | |||
| -c -b --reflect-types ${schema} | |||
| DEPENDS ${FLATC} ${schema} | |||
| WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | |||
| COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM) | |||
| else() | |||
| add_custom_command( | |||
| OUTPUT ${generated_file} | |||
| COMMAND ${FLATC} -o ${generated_output_dir} | |||
| ${total_schema_dirs} | |||
| -c -b ${schema} | |||
| DEPENDS ${FLATC} ${schema} | |||
| WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | |||
| COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM) | |||
| endif() | |||
| list(APPEND total_generated_files ${generated_file}) | |||
| endif() | |||
| endforeach() | |||
| add_custom_target(${custom_target_name} ALL | |||
| DEPENDS ${total_generated_files}) | |||
| if(NOT ${generated_output_dir} STREQUAL "") | |||
| if (NOT ${generated_output_dir} STREQUAL "") | |||
| include_directories(${generated_output_dir}) | |||
| set_property(TARGET ${custom_target_name} | |||
| PROPERTY GENERATED_OUTPUT_DIR | |||
| @@ -1,42 +1,10 @@ | |||
| set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS} -Dgoogle=mindspore_private") | |||
| set(glog_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 ${SECURE_CXX_FLAGS}") | |||
| set(glog_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(NOT ENABLE_GLIBCXX) | |||
| set(glog_CXXFLAGS "${glog_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | |||
| endif() | |||
| if(BUILD_LITE) | |||
| set(glog_patch "") | |||
| set(glog_lib glog) | |||
| else() | |||
| set(glog_patch ${CMAKE_SOURCE_DIR}/third_party/patch/glog/glog.patch001) | |||
| set(glog_lib mindspore_glog) | |||
| endif() | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/glog/repository/archive/v0.4.0.tar.gz") | |||
| set(MD5 "22fe340ddc231e6c8e46bc295320f8ee") | |||
| else() | |||
| set(REQ_URL "https://github.com/google/glog/archive/v0.4.0.tar.gz") | |||
| set(MD5 "0daea8785e6df922d7887755c3d100d0") | |||
| endif() | |||
| set(glog_option -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DWITH_GFLAGS=OFF) | |||
| if(WIN32) | |||
| execute_process(COMMAND "${CMAKE_C_COMPILER}" -dumpmachine | |||
| OUTPUT_VARIABLE i686_or_x86_64 | |||
| ) | |||
| if(i686_or_x86_64 MATCHES "^i686-") | |||
| set(glog_option ${glog_option} -DHAVE_DBGHELP=ON) | |||
| endif() | |||
| endif() | |||
| mindspore_add_pkg(glog | |||
| VER 0.4.0 | |||
| LIBS ${glog_lib} | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${glog_patch} | |||
| CMAKE_OPTION ${glog_option}) | |||
| LIBS glog | |||
| URL https://github.com/google/glog/archive/v0.4.0.tar.gz | |||
| MD5 0daea8785e6df922d7887755c3d100d0 | |||
| CMAKE_OPTION -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON) | |||
| include_directories(${glog_INC}) | |||
| add_library(mindspore::glog ALIAS glog::${glog_lib}) | |||
| add_library(mindspore::glog ALIAS glog::glog) | |||
| @@ -1,117 +0,0 @@ | |||
| set(grpc_USE_STATIC_LIBS OFF) | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(grpc_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") | |||
| set(grpc_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| else() | |||
| set(grpc_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2 \ | |||
| -Dgrpc=mindspore_grpc -Dgrpc_impl=mindspore_grpc_impl -Dgrpc_core=mindspore_grpc_core") | |||
| if(NOT ENABLE_GLIBCXX) | |||
| set(grpc_CXXFLAGS "${grpc_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | |||
| endif() | |||
| endif() | |||
| set(grpc_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| if(EXISTS ${protobuf_ROOT}/lib64) | |||
| set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${protobuf_ROOT}/lib64/cmake/protobuf") | |||
| else() | |||
| set(_FINDPACKAGE_PROTOBUF_CONFIG_DIR "${protobuf_ROOT}/lib/cmake/protobuf") | |||
| endif() | |||
| message("grpc using Protobuf_DIR : " ${_FINDPACKAGE_PROTOBUF_CONFIG_DIR}) | |||
| if(EXISTS ${absl_ROOT}/lib64) | |||
| set(_FINDPACKAGE_ABSL_CONFIG_DIR "${absl_ROOT}/lib64/cmake/absl") | |||
| else() | |||
| set(_FINDPACKAGE_ABSL_CONFIG_DIR "${absl_ROOT}/lib/cmake/absl") | |||
| endif() | |||
| message("grpc using absl_DIR : " ${_FINDPACKAGE_ABSL_CONFIG_DIR}) | |||
| if(EXISTS ${openssl_ROOT}) | |||
| set(_CMAKE_ARGS_OPENSSL_ROOT_DIR "-DOPENSSL_ROOT_DIR:PATH=${openssl_ROOT}") | |||
| endif() | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/grpc/repository/archive/v1.27.3.tar.gz") | |||
| set(MD5 "b8b6d8defeda0355105e3b64b4201786") | |||
| else() | |||
| set(REQ_URL "https://github.com/grpc/grpc/archive/v1.27.3.tar.gz") | |||
| set(MD5 "0c6c3fc8682d4262dd0e5e6fabe1a7e2") | |||
| endif() | |||
| mindspore_add_pkg(grpc | |||
| VER 1.27.3 | |||
| LIBS mindspore_grpc++ mindspore_grpc mindspore_gpr mindspore_upb mindspore_address_sorting | |||
| EXE grpc_cpp_plugin | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/grpc/grpc.patch001 | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release | |||
| -DBUILD_SHARED_LIBS=ON | |||
| -DgRPC_INSTALL:BOOL=ON | |||
| -DgRPC_BUILD_TESTS:BOOL=OFF | |||
| -DgRPC_PROTOBUF_PROVIDER:STRING=package | |||
| -DgRPC_PROTOBUF_PACKAGE_TYPE:STRING=CONFIG | |||
| -DProtobuf_DIR:PATH=${_FINDPACKAGE_PROTOBUF_CONFIG_DIR} | |||
| -DgRPC_ZLIB_PROVIDER:STRING=package | |||
| -DZLIB_ROOT:PATH=${zlib_ROOT} | |||
| -DgRPC_ABSL_PROVIDER:STRING=package | |||
| -Dabsl_DIR:PATH=${_FINDPACKAGE_ABSL_CONFIG_DIR} | |||
| -DgRPC_CARES_PROVIDER:STRING=package | |||
| -Dc-ares_DIR:PATH=${c-ares_ROOT}/lib/cmake/c-ares | |||
| -DgRPC_SSL_PROVIDER:STRING=package | |||
| ${_CMAKE_ARGS_OPENSSL_ROOT_DIR} | |||
| ) | |||
| include_directories(${grpc_INC}) | |||
| add_library(mindspore::grpc++ ALIAS grpc::mindspore_grpc++) | |||
| # link other grpc libs | |||
| target_link_libraries(grpc::mindspore_grpc++ INTERFACE grpc::mindspore_grpc grpc::mindspore_gpr grpc::mindspore_upb | |||
| grpc::mindspore_address_sorting) | |||
| # modify mindspore macro define | |||
| add_compile_definitions(grpc=mindspore_grpc) | |||
| add_compile_definitions(grpc_impl=mindspore_grpc_impl) | |||
| add_compile_definitions(grpc_core=mindspore_grpc_core) | |||
| function(ms_grpc_generate c_var h_var) | |||
| if(NOT ARGN) | |||
| message(SEND_ERROR "Error: ms_grpc_generate() called without any proto files") | |||
| return() | |||
| endif() | |||
| set(${c_var}) | |||
| set(${h_var}) | |||
| foreach(file ${ARGN}) | |||
| get_filename_component(abs_file ${file} ABSOLUTE) | |||
| get_filename_component(file_name ${file} NAME_WE) | |||
| get_filename_component(file_dir ${abs_file} PATH) | |||
| file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir}) | |||
| list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc") | |||
| list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h") | |||
| list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.cc") | |||
| list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.h") | |||
| add_custom_command( | |||
| OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}.grpc.pb.h" | |||
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto" | |||
| COMMAND protobuf::protoc --version | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto | |||
| --grpc_out=${CMAKE_BINARY_DIR}/proto | |||
| --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc::grpc_cpp_plugin> ${abs_file} | |||
| DEPENDS protobuf::protoc grpc::grpc_cpp_plugin ${abs_file} | |||
| COMMENT "Running C++ gRPC compiler on ${file}" VERBATIM) | |||
| endforeach() | |||
| set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE) | |||
| set(${c_var} ${${c_var}} PARENT_SCOPE) | |||
| set(${h_var} ${${h_var}} PARENT_SCOPE) | |||
| endfunction() | |||
| @@ -1,58 +1,13 @@ | |||
| set(gtest_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(gtest_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(CMAKE_OPTION | |||
| -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON | |||
| -DCMAKE_MACOSX_RPATH=TRUE -Dgtest_disable_pthreads=ON) | |||
| if(BUILD_LITE) | |||
| if(PLATFORM_ARM64) | |||
| set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake | |||
| -DANDROID_NATIVE_API_LEVEL=19 | |||
| -DANDROID_NDK=$ENV{ANDROID_NDK} | |||
| -DANDROID_ABI=arm64-v8a | |||
| -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang | |||
| -DANDROID_STL=${ANDROID_STL} | |||
| ${CMAKE_OPTION}) | |||
| endif() | |||
| if(PLATFORM_ARM32) | |||
| set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake | |||
| -DANDROID_NATIVE_API_LEVEL=19 | |||
| -DANDROID_NDK=$ENV{ANDROID_NDK} | |||
| -DANDROID_ABI=armeabi-v7a | |||
| -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang | |||
| -DANDROID_STL=${ANDROID_STL} | |||
| ${CMAKE_OPTION}) | |||
| endif() | |||
| else() | |||
| if(NOT ENABLE_GLIBCXX) | |||
| set(gtest_CXXFLAGS "${gtest_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | |||
| endif() | |||
| endif() | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.1.tar.gz") | |||
| set(MD5 "0ec077324f27c2685635ad4cc9bdc263") | |||
| else() | |||
| set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz") | |||
| set(MD5 "2e6fbeb6a91310a16efe181886c59596") | |||
| endif() | |||
| mindspore_add_pkg(gtest | |||
| VER 1.8.1 | |||
| VER 1.8.0 | |||
| LIBS gtest | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION ${CMAKE_OPTION}) | |||
| URL https://github.com/google/googletest/archive/release-1.8.0.tar.gz | |||
| MD5 16877098823401d1bf2ed7891d7dce36 | |||
| CMAKE_OPTION -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON | |||
| -DCMAKE_MACOSX_RPATH=TRUE -Dgtest_disable_pthreads=ON) | |||
| include_directories(${gtest_INC}) | |||
| add_library(mindspore::gtest ALIAS gtest::gtest) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| file(COPY ${gtest_DIRPATH}/bin/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION | |||
| ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest) | |||
| file(COPY ${gtest_DIRPATH}/bin/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION | |||
| ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest) | |||
| else() | |||
| file(COPY ${gtest_LIBPATH}/libgtest${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION | |||
| ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest) | |||
| file(COPY ${gtest_LIBPATH}/libgtest_main${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION | |||
| ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest) | |||
| endif() | |||
| file(COPY ${gtest_LIBPATH}/libgtest.so DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest) | |||
| file(COPY ${gtest_LIBPATH}/libgtest_main.so DESTINATION ${CMAKE_BINARY_DIR}/googletest/googlemock/gtest) | |||
| @@ -1,52 +0,0 @@ | |||
| set(LIB_ICU_COMMON icuuc) | |||
| set(LIB_ICU_DATA icudata) | |||
| set(LIB_ICU_I18N icui18n) | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/icu/repository/archive/release-67-1.tar.gz") | |||
| set(MD5 "72415ffd1af3acf19f9aa3fa82c7b5bc") | |||
| else() | |||
| set(REQ_URL "https://github.com/unicode-org/icu/archive/release-67-1.tar.gz") | |||
| set(MD5 "fd525fb47d8827b0b7da78b51dd2d93f") | |||
| endif() | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| message("icu4c thirdparty do not support windows currently.") | |||
| else() | |||
| set(JSON_FILE "{ \n\ | |||
| \"strategy\": \"additive\",\n\ | |||
| \"featureFilters\": {\n\ | |||
| \"normalization\": \"include\"\n\ | |||
| }\n\ | |||
| }\ | |||
| ") | |||
| file(WRITE ${CMAKE_BINARY_DIR}/icu4c_filter.json ${JSON_FILE}) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||
| mindspore_add_pkg(icu4c | |||
| VER 67.1 | |||
| LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N} | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/icu4c/icu4c.patch01 | |||
| CONFIGURE_COMMAND ./icu4c/source/runConfigureICU MacOSX --enable-rpath --disable-tests | |||
| --disable-samples --disable-icuio --disable-extras | |||
| ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json | |||
| ) | |||
| else() | |||
| mindspore_add_pkg(icu4c | |||
| VER 67.1 | |||
| LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N} | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/icu4c/icu4c.patch01 | |||
| CONFIGURE_COMMAND ./icu4c/source/runConfigureICU Linux --enable-rpath --disable-tests --disable-samples | |||
| --disable-icuio --disable-extras | |||
| ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json | |||
| ) | |||
| endif() | |||
| include_directories(${icu4c_INC}) | |||
| add_library(mindspore::icuuc ALIAS icu4c::${LIB_ICU_COMMON}) | |||
| add_library(mindspore::icudata ALIAS icu4c::${LIB_ICU_DATA}) | |||
| add_library(mindspore::icui18n ALIAS icu4c::${LIB_ICU_I18N}) | |||
| add_definitions(-D ENABLE_ICU4C) | |||
| endif() | |||
| @@ -1,56 +1,13 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/libjpeg-turbo/repository/archive/2.0.4.tar.gz") | |||
| set(MD5 "51aac2382ad1a68b2e4beb391dc1cf60") | |||
| else() | |||
| set(REQ_URL "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.4.tar.gz") | |||
| set(MD5 "44c43e4a9fb352f47090804529317c88") | |||
| endif() | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \ | |||
| -O2") | |||
| else() | |||
| set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC \ | |||
| -D_FORTIFY_SOURCE=2 -O2") | |||
| endif() | |||
| set(jpeg_turbo_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack,-s") | |||
| set(jpeg_turbo_USE_STATIC_LIBS ON) | |||
| set(JPEG_TURBO_PATCHE ${CMAKE_SOURCE_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001) | |||
| set(CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=TRUE -DWITH_SIMD=ON) | |||
| if(BUILD_LITE) | |||
| set(jpeg_turbo_USE_STATIC_LIBS OFF) | |||
| set(JPEG_TURBO_PATCHE ${TOP_DIR}/third_party/patch/jpeg_turbo/jpeg_turbo.patch001) | |||
| if(PLATFORM_ARM64) | |||
| set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake | |||
| -DANDROID_NATIVE_API_LEVEL=19 | |||
| -DANDROID_NDK=$ENV{ANDROID_NDK} | |||
| -DANDROID_ABI=arm64-v8a | |||
| -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang | |||
| -DANDROID_STL=c++_shared -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) | |||
| endif() | |||
| if(PLATFORM_ARM32) | |||
| set(CMAKE_OPTION -DCMAKE_TOOLCHAIN_FILE=$ENV{ANDROID_NDK}/build/cmake/android.toolchain.cmake | |||
| -DANDROID_NATIVE_API_LEVEL=19 | |||
| -DANDROID_NDK=$ENV{ANDROID_NDK} | |||
| -DANDROID_ABI=armeabi-v7a | |||
| -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang | |||
| -DANDROID_STL=c++_shared -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) | |||
| endif() | |||
| endif() | |||
| set(jpeg_turbo_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| set(jpeg_turbo_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| mindspore_add_pkg(jpeg_turbo | |||
| VER 2.0.4 | |||
| LIBS jpeg turbojpeg | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION ${CMAKE_OPTION} | |||
| PATCHES ${JPEG_TURBO_PATCHE} | |||
| LIBS jpeg | |||
| URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.4.tar.gz | |||
| MD5 44c43e4a9fb352f47090804529317c88 | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=TRUE | |||
| ) | |||
| include_directories(${jpeg_turbo_INC}) | |||
| add_library(mindspore::jpeg_turbo ALIAS jpeg_turbo::jpeg) | |||
| add_library(mindspore::turbojpeg ALIAS jpeg_turbo::turbojpeg) | |||
| @@ -1,20 +1,9 @@ | |||
| set(nlohmann_json_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(nlohmann_json_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/JSON-for-Modern-CPP/repository/archive/v3.6.1.zip") | |||
| set(MD5 "5bda78ce308e6cfcf614dcf1d5ff27a7") | |||
| set(INCLUDE "./include") | |||
| else() | |||
| set(REQ_URL "https://github.com/nlohmann/json/releases/download/v3.6.1/include.zip") | |||
| set(MD5 "0dc903888211db3a0f170304cd9f3a89") | |||
| set(INCLUDE "./") | |||
| endif() | |||
| mindspore_add_pkg(nlohmann_json | |||
| VER 3.6.1 | |||
| HEAD_ONLY ${INCLUDE} | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5}) | |||
| HEAD_ONLY ./ | |||
| URL https://github.com/nlohmann/json/releases/download/v3.6.1/include.zip | |||
| MD5 0dc903888211db3a0f170304cd9f3a89) | |||
| include_directories(${nlohmann_json_INC}) | |||
| add_library(mindspore::json ALIAS nlohmann_json) | |||
| @@ -1,30 +0,0 @@ | |||
| set(libevent_CFLAGS "-fstack-protector-all -D_FORTIFY_SOURCE=2 -O2") | |||
| if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||
| set(libevent_LDFLAGS "-Wl,-z,now") | |||
| endif() | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/libevent/repository/archive/release-2.1.12-stable.tar.gz") | |||
| set(MD5 "c9036513dd9e5b4fa1c81ade23b7ead2") | |||
| else() | |||
| set(REQ_URL | |||
| "https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz") | |||
| set(MD5 "b5333f021f880fe76490d8a799cd79f4") | |||
| endif() | |||
| message("libevent using openssl stub dir: " ${openssl_ROOT}) | |||
| mindspore_add_pkg(libevent | |||
| VER 2.1.12 | |||
| LIBS event event_pthreads event_core event_openssl | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/libevent/libevent.patch001 | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING=OFF -DOPENSSL_ROOT_DIR:PATH=${openssl_ROOT}) | |||
| include_directories(${libevent_INC}) | |||
| add_library(mindspore::event ALIAS libevent::event) | |||
| add_library(mindspore::event_pthreads ALIAS libevent::event_pthreads) | |||
| add_library(mindspore::event_core ALIAS libevent::event_core) | |||
| add_library(mindspore::event_openssl ALIAS libevent::event_openssl) | |||
| @@ -1,33 +1,15 @@ | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(tiff_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -Wno-unused-result \ | |||
| set(tiff_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -Wno-unused-result \ | |||
| -Wno-unused-but-set-variable -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| set(tiff_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -Wno-unused-result \ | |||
| set(tiff_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -Wno-unused-result \ | |||
| -Wno-unused-but-set-variable -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| else() | |||
| set(tiff_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -Wno-unused-result \ | |||
| -Wno-unused-but-set-variable -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| set(tiff_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -Wno-unused-result \ | |||
| -Wno-unused-but-set-variable -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") | |||
| set(tiff_CFLAGS "${tiff_CFLAGS} -Wno-int-to-pointer-cast -Wno-implicit-fallthrough -Wno-pointer-to-int-cast") | |||
| endif() | |||
| endif() | |||
| set(tiff_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/libtiff/repository/archive/v4.2.0.tar.gz") | |||
| set(MD5 "38b7bdd622c554b98967ccf2013b6478") | |||
| else() | |||
| set(REQ_URL "http://download.osgeo.org/libtiff/tiff-4.2.0.tar.gz") | |||
| set(MD5 "2bbf6db1ddc4a59c89d6986b368fc063") | |||
| endif() | |||
| mindspore_add_pkg(tiff | |||
| VER 4.1.0 | |||
| LIBS tiff | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://gitlab.com/libtiff/libtiff/-/archive/v4.1.0/libtiff-v4.1.0.tar.gz | |||
| MD5 21de8d35c1b21ac82663fa9f56d3350d | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -Djbig=OFF -Dlzma=OFF -Djpeg12=OFF -Dzstd=OFF -Dpixarlog=OFF | |||
| -Dold-jpeg=OFF -Dwebp=OFF -DBUILD_SHARED_LIBS=OFF) | |||
| message("tiff include = ${tiff_INC}") | |||
| @@ -1,30 +1,11 @@ | |||
| set(onednn_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(onednn_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| mindspore_add_pkg(onednn | |||
| VER 2.1 | |||
| set(mkl_dnn_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(mkl_dnn_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| mindspore_add_pkg(mkl_dnn | |||
| VER 1.1.1 | |||
| LIBS dnnl mkldnn | |||
| HEAD_ONLY ./include | |||
| RELEASE on | |||
| URL https://github.com/oneapi-src/oneDNN/releases/download/v2.1/dnnl_win_2.1.0_cpu_vcomp.zip | |||
| MD5 b3111c4851dad06f7a796b27083dffa8) | |||
| else() | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/MKL-DNN/repository/archive/v2.1.tar.gz") | |||
| set(MD5 "f4c10ad4197ce2358ad1a917e84c288c") | |||
| else() | |||
| set(REQ_URL "https://github.com/oneapi-src/oneDNN/archive/v2.1.tar.gz") | |||
| set(MD5 "2ed85f2c0c3771a7618db04a9e08ae57") | |||
| endif() | |||
| mindspore_add_pkg(onednn | |||
| VER 2.1 | |||
| LIBS dnnl mkldnn | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DDNNL_ARCH_OPT_FLAGS='' -DDNNL_BUILD_EXAMPLES=OFF -DDNNL_BUILD_TESTS=OFF | |||
| -DDNNL_ENABLE_CONCURRENT_EXEC=ON) | |||
| endif() | |||
| include_directories(${onednn_INC}) | |||
| add_library(mindspore::dnnl ALIAS onednn::dnnl) | |||
| add_library(mindspore::mkldnn ALIAS onednn::mkldnn) | |||
| URL https://github.com/intel/mkl-dnn/archive/v1.1.1.tar.gz | |||
| MD5 d6a422b00459600bdc22242590953f38 | |||
| CMAKE_OPTION -DDNNL_ARCH_OPT_FLAGS='' -DDNNL_CPU_RUNTIME='SEQ' -DDNNL_BUILD_EXAMPLES=OFF -DDNNL_BUILD_TESTS=OFF) | |||
| include_directories(${mkl_dnn_INC}) | |||
| add_library(mindspore::dnnl ALIAS mkl_dnn::dnnl) | |||
| add_library(mindspore::mkldnn ALIAS mkl_dnn::mkldnn) | |||
| @@ -1,17 +1,10 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/nccl/repository/archive/v2.7.6-1.tar.gz") | |||
| set(MD5 "220d232b30cb9bff2e54219399b9f6fb") | |||
| else() | |||
| set(REQ_URL "https://github.com/NVIDIA/nccl/archive/v2.7.6-1.tar.gz") | |||
| set(MD5 "073b19899f374c5ba07d2db02dc38f9f") | |||
| endif() | |||
| set(nccl_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| mindspore_add_pkg(nccl | |||
| VER 2.7.6-1 | |||
| VER 2.4.8-1 | |||
| LIBS nccl | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://github.com/NVIDIA/nccl/archive/v2.4.8-1.tar.gz | |||
| MD5 f14b37d6af1c79db5f57cb029a753727 | |||
| BUILD_OPTION src.build NVCC_GENCODE="-gencode=arch=compute_70,code=sm_70" | |||
| INSTALL_INCS build/include/* | |||
| INSTALL_LIBS build/lib/*) | |||
| @@ -1,17 +1,10 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/ompi/repository/archive/v4.0.3.tar.gz") | |||
| set(MD5 "f76abc92ae870feff186d790f40ae762") | |||
| else() | |||
| set(REQ_URL "https://github.com/open-mpi/ompi/archive/v4.0.3.tar.gz") | |||
| set(MD5 "86cb724e8fe71741ad3be4e7927928a2") | |||
| endif() | |||
| set(ompi_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| mindspore_add_pkg(ompi | |||
| VER 4.0.3 | |||
| VER 3.1.5 | |||
| LIBS mpi | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://github.com/open-mpi/ompi/archive/v3.1.5.tar.gz | |||
| MD5 f7f220b26532c11a2efbc0bb73af3282 | |||
| PRE_CONFIGURE_COMMAND ./autogen.pl | |||
| CONFIGURE_COMMAND ./configure) | |||
| include_directories(${ompi_INC}) | |||
| @@ -1,13 +1,5 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/ONNX/repository/archive/v1.6.0.tar.gz") | |||
| set(MD5 "1bdbcecdd68ea8392630467646776e02") | |||
| else() | |||
| set(REQ_URL "https://github.com/onnx/onnx/releases/download/v1.6.0/onnx-1.6.0.tar.gz") | |||
| set(MD5 "512f2779d6215d4a36f366b6b9acdf1e") | |||
| endif() | |||
| mindspore_add_pkg(ms_onnx | |||
| VER 1.6.0 | |||
| HEAD_ONLY ./ | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5}) | |||
| URL https://github.com/onnx/onnx/releases/download/v1.6.0/onnx-1.6.0.tar.gz | |||
| MD5 512f2779d6215d4a36f366b6b9acdf1e) | |||
| @@ -1,46 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/OpenCL-Headers/repository/archive/v2020.06.16.tar.gz") | |||
| set(MD5 "8797a525aff953ea536ebe338a9f5ef6") | |||
| set(PKG_GIT_TAG "") | |||
| __download_pkg_with_git(OpenCL-Headers ${REQ_URL} ${PKG_GIT_TAG} ${MD5}) | |||
| set(REQ_URL "https://gitee.com/mirrors/OpenCL-CLHPP/repository/archive/v2.0.12.tar.gz") | |||
| set(MD5 "a07b45d676b02644482bc2c3bb90b891") | |||
| set(PKG_GIT_TAG "") | |||
| __download_pkg_with_git(OpenCL-CLHPP ${REQ_URL} ${PKG_GIT_TAG} ${MD5}) | |||
| else() | |||
| set(REQ_URL "https://github.com/KhronosGroup/OpenCL-Headers/archive/v2020.06.16.tar.gz") | |||
| set(MD5 "fc7627b5a8a95ecbe3d5df43bc88aa44") | |||
| __download_pkg(OpenCL-Headers ${REQ_URL} ${MD5}) | |||
| set(REQ_URL "https://github.com/KhronosGroup/OpenCL-CLHPP/archive/v2.0.12.tar.gz") | |||
| set(MD5 "bd00fca8f861b3b65660d719f00a58dd") | |||
| __download_pkg(OpenCL-CLHPP ${REQ_URL} ${MD5}) | |||
| endif() | |||
| function(gene_opencl BASEPATH) | |||
| string(CONCAT CL_SRC_DIR "${BASEPATH}" "/src/runtime/kernel/opencl/cl") | |||
| message(STATUS "**********gene opencl*********base path: " "${BASEPATH}" ", cl path: " "${CL_SRC_DIR}") | |||
| if(NOT EXISTS ${CL_SRC_DIR}) | |||
| return() | |||
| endif() | |||
| file(GLOB_RECURSE CL_LIST ${CL_SRC_DIR}/*.cl ${CL_SRC_DIR}/int8/*.cl) | |||
| foreach(file_path ${CL_LIST}) | |||
| file(REMOVE ${file_path}.inc) | |||
| string(REGEX REPLACE ".+/(.+)\\..*" "\\1" kernel_name "${file_path}") | |||
| set(inc_file_ex "${file_path}.inc") | |||
| execute_process( | |||
| COMMAND bash -c "sed 's/\\\\/\\\\\\\\/g' " | |||
| COMMAND bash -c "sed 's/\\\"/\\\\\\\"/g' " | |||
| COMMAND bash -c "sed 's/$/\\\\n\\\" \\\\/' " | |||
| COMMAND bash -c "sed 's/^/\\\"/' " | |||
| WORKING_DIRECTORY ${CL_SRC_DIR} | |||
| INPUT_FILE ${file_path} | |||
| OUTPUT_FILE ${inc_file_ex} | |||
| RESULT_VARIABLE RESULT) | |||
| if(NOT RESULT EQUAL "0") | |||
| message(FATAL_ERROR "error! when generate ${inc_file_ex}") | |||
| endif() | |||
| __exec_cmd(COMMAND sed -i "1i\\static const char *${kernel_name}_source =\\\"\\\\n\\\" \\\\" | |||
| ${inc_file_ex} WORKING_DIRECTORY ${CL_SRC_DIR}) | |||
| __exec_cmd(COMMAND sed -i "$a\\\\\;" ${inc_file_ex} WORKING_DIRECTORY ${CL_SRC_DIR}) | |||
| endforeach() | |||
| endfunction() | |||
| @@ -1,169 +1,31 @@ | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(opencv_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_LDFLAGS "-Wl") | |||
| elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") | |||
| set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-attributes -Wno-unknown-pragmas") | |||
| set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-unused-value -Wno-implicit-fallthrough") | |||
| else() | |||
| set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2") | |||
| set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -O2") | |||
| if(NOT ENABLE_GLIBCXX) | |||
| set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | |||
| endif() | |||
| set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| endif() | |||
| if(ENABLE_GITEE) | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(REQ_URL "https://gitee.com/mirrors/opencv/repository/archive/4.5.1.tar.gz") | |||
| set(MD5 "e74309207f2fa88fb6cc417d8ea9ff09") | |||
| elseif((PYTHON_VERSION MATCHES "3.7") OR (PYTHON_VERSION MATCHES "3.8")) | |||
| set(REQ_URL "https://gitee.com/mirrors/opencv/repository/archive/4.2.0.tar.gz") | |||
| set(MD5 "00424c7c4acde1e26ebf17aaa155bf23") | |||
| else() | |||
| message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'") | |||
| return() | |||
| endif() | |||
| else() | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(REQ_URL "https://github.com/opencv/opencv/archive/4.5.1.tar.gz") | |||
| set(MD5 "2205d3169238ec1f184438a96de68513") | |||
| elseif((PYTHON_VERSION MATCHES "3.7") OR (PYTHON_VERSION MATCHES "3.8")) | |||
| set(REQ_URL "https://github.com/opencv/opencv/archive/4.2.0.tar.gz") | |||
| set(MD5 "e8cb208ce2723481408b604b480183b6") | |||
| else() | |||
| message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'") | |||
| return() | |||
| endif() | |||
| endif() | |||
| set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") | |||
| set(opencv_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| if(WIN32) | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| mindspore_add_pkg(opencv | |||
| VER 4.5.1 | |||
| LIBS libopencv_core451.dll.a libopencv_imgcodecs451.dll.a libopencv_imgproc451.dll.a | |||
| LIB_PATH x64/mingw/lib | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF | |||
| -DWITH_ADE=OFF | |||
| -DBUILD_ZLIB=ON | |||
| -DBUILD_JPEG=ON | |||
| -DBUILD_PNG=ON | |||
| -DBUILD_OPENEXR=ON | |||
| -DBUILD_TESTS=OFF | |||
| -DBUILD_PERF_TESTS=OFF | |||
| -DBUILD_opencv_apps=OFF | |||
| -DCMAKE_SKIP_RPATH=TRUE | |||
| -DBUILD_opencv_python3=OFF | |||
| -DBUILD_opencv_videoio=OFF | |||
| -DWITH_FFMPEG=OFF | |||
| -DWITH_TIFF=ON | |||
| -DBUILD_TIFF=OFF | |||
| -DWITH_JASPER=OFF | |||
| -DBUILD_JASPER=OFF | |||
| -DTIFF_INCLUDE_DIR=${tiff_INC} | |||
| -DTIFF_LIBRARY=${tiff_LIB}) | |||
| elseif(PYTHON_VERSION MATCHES "3.8" OR PYTHON_VERSION MATCHES "3.7") | |||
| mindspore_add_pkg(opencv | |||
| VER 4.2.0 | |||
| LIBS libopencv_core420.dll.a libopencv_imgcodecs420.dll.a libopencv_imgproc420.dll.a | |||
| LIB_PATH x64/mingw/lib | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF | |||
| -DWITH_ADE=OFF | |||
| -DBUILD_ZLIB=ON | |||
| -DBUILD_JPEG=ON | |||
| -DBUILD_PNG=ON | |||
| -DBUILD_OPENEXR=ON | |||
| -DBUILD_TESTS=OFF | |||
| -DBUILD_PERF_TESTS=OFF | |||
| -DBUILD_opencv_apps=OFF | |||
| -DCMAKE_SKIP_RPATH=TRUE | |||
| -DBUILD_opencv_python3=OFF | |||
| -DBUILD_opencv_videoio=OFF | |||
| -DWITH_FFMPEG=OFF | |||
| -DWITH_TIFF=ON | |||
| -DBUILD_TIFF=OFF | |||
| -DWITH_JASPER=OFF | |||
| -DBUILD_JASPER=OFF | |||
| -DWITH_LAPACK=OFF | |||
| -DTIFF_INCLUDE_DIR=${tiff_INC} | |||
| -DTIFF_LIBRARY=${tiff_LIB}) | |||
| endif() | |||
| else() | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| mindspore_add_pkg(opencv | |||
| VER 4.5.1 | |||
| LIBS opencv_core opencv_imgcodecs opencv_imgproc | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF | |||
| -DWITH_ADE=OFF | |||
| -DBUILD_ZLIB=ON | |||
| -DBUILD_JPEG=ON | |||
| -DBUILD_PNG=ON | |||
| -DBUILD_OPENEXR=ON | |||
| -DBUILD_TESTS=OFF | |||
| -DBUILD_PERF_TESTS=OFF | |||
| -DBUILD_opencv_apps=OFF | |||
| -DCMAKE_SKIP_RPATH=TRUE | |||
| -DBUILD_opencv_python3=OFF | |||
| -DWITH_FFMPEG=OFF | |||
| -DWITH_TIFF=ON | |||
| -DBUILD_TIFF=OFF | |||
| -DWITH_JASPER=OFF | |||
| -DBUILD_JASPER=OFF | |||
| -DTIFF_INCLUDE_DIR=${tiff_INC} | |||
| -DTIFF_LIBRARY=${tiff_LIB}) | |||
| elseif(PYTHON_VERSION MATCHES "3.8" OR PYTHON_VERSION MATCHES "3.7") | |||
| mindspore_add_pkg(opencv | |||
| VER 4.2.0 | |||
| LIBS opencv_core opencv_imgcodecs opencv_imgproc | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF | |||
| -DWITH_ADE=OFF | |||
| -DBUILD_ZLIB=ON | |||
| -DBUILD_JPEG=ON | |||
| -DBUILD_PNG=ON | |||
| -DBUILD_OPENEXR=ON | |||
| -DBUILD_TESTS=OFF | |||
| -DBUILD_PERF_TESTS=OFF | |||
| -DBUILD_opencv_apps=OFF | |||
| -DCMAKE_SKIP_RPATH=TRUE | |||
| -DBUILD_opencv_python3=OFF | |||
| -DWITH_FFMPEG=OFF | |||
| -DWITH_TIFF=ON | |||
| -DBUILD_TIFF=OFF | |||
| -DWITH_JASPER=OFF | |||
| -DBUILD_JASPER=OFF | |||
| -DWITH_LAPACK=OFF | |||
| -DTIFF_INCLUDE_DIR=${tiff_INC} | |||
| -DTIFF_LIBRARY=${tiff_LIB}) | |||
| endif() | |||
| endif() | |||
| if(WIN32) | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| include_directories(${opencv_INC}) | |||
| add_library(mindspore::opencv_core ALIAS opencv::libopencv_core451.dll.a) | |||
| add_library(mindspore::opencv_imgcodecs ALIAS opencv::libopencv_imgcodecs451.dll.a) | |||
| add_library(mindspore::opencv_imgproc ALIAS opencv::libopencv_imgproc451.dll.a) | |||
| elseif(PYTHON_VERSION MATCHES "3.8" OR PYTHON_VERSION MATCHES "3.7") | |||
| include_directories(${opencv_INC}) | |||
| add_library(mindspore::opencv_core ALIAS opencv::libopencv_core420.dll.a) | |||
| add_library(mindspore::opencv_imgcodecs ALIAS opencv::libopencv_imgcodecs420.dll.a) | |||
| add_library(mindspore::opencv_imgproc ALIAS opencv::libopencv_imgproc420.dll.a) | |||
| endif() | |||
| else() | |||
| include_directories(${opencv_INC}/opencv4) | |||
| add_library(mindspore::opencv_core ALIAS opencv::opencv_core) | |||
| add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs) | |||
| add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc) | |||
| endif() | |||
| mindspore_add_pkg(opencv | |||
| VER 4.2.0 | |||
| LIBS opencv_core opencv_imgcodecs opencv_imgproc | |||
| URL https://github.com/opencv/opencv/archive/4.2.0.tar.gz | |||
| MD5 e8cb208ce2723481408b604b480183b6 | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF -DWITH_ADE=OFF | |||
| -DBUILD_ZLIB=ON | |||
| -DBUILD_JPEG=ON | |||
| -DBUILD_PNG=ON | |||
| -DBUILD_OPENEXR=ON | |||
| -DBUILD_TESTS=OFF | |||
| -DBUILD_PERF_TESTS=OFF | |||
| -DBUILD_opencv_apps=OFF | |||
| -DCMAKE_SKIP_RPATH=TRUE | |||
| -DBUILD_opencv_python3=OFF | |||
| -DWITH_FFMPEG=OFF | |||
| -DWITH_TIFF=ON | |||
| -DBUILD_TIFF=OFF | |||
| -DWITH_JASPER=OFF | |||
| -DBUILD_JASPER=OFF | |||
| -DTIFF_INCLUDE_DIR=${tiff_INC} | |||
| -DTIFF_LIBRARY=${tiff_LIB}) | |||
| include_directories(${opencv_INC}/opencv4) | |||
| add_library(mindspore::opencv_core ALIAS opencv::opencv_core) | |||
| add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs) | |||
| add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc) | |||
| @@ -1,18 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/openssl/repository/archive/OpenSSL_1_1_1k.tar.gz") | |||
| set(MD5 "d4acbcc4a5e6c31d86ede95b5d22f7a0") | |||
| else() | |||
| set(REQ_URL "https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1k.tar.gz") | |||
| set(MD5 "bdd51a68ad74618dd2519da8e0bcc759") | |||
| endif() | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") | |||
| mindspore_add_pkg(openssl | |||
| VER 1.1.0 | |||
| LIBS ssl crypto | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CONFIGURE_COMMAND ./config no-zlib no-shared) | |||
| include_directories(${openssl_INC}) | |||
| add_library(mindspore::ssl ALIAS openssl::ssl) | |||
| add_library(mindspore::crypto ALIAS openssl::crypto) | |||
| endif() | |||
| @@ -1,25 +0,0 @@ | |||
| set(projectq_CXXFLAGS "-fopenmp -O2 -ffast-mast -mavx -DINTRIN") | |||
| set(projectq_CFLAGS "-fopenmp -O2 -ffast-mast -mavx -DINTRIN") | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/ProjectQ/repository/archive/v0.5.1.tar.gz") | |||
| set(MD5 "d874e93e56d3375f1c54c7dd1b731054") | |||
| else() | |||
| set(REQ_URL "https://github.com/ProjectQ-Framework/ProjectQ/archive/v0.5.1.tar.gz ") | |||
| set(MD5 "13430199c253284df8b3d840f11d3560") | |||
| endif() | |||
| if(ENABLE_CPU AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux" | |||
| AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") | |||
| message("Include projectq simulator") | |||
| mindspore_add_pkg(projectq | |||
| VER 0.5.1 | |||
| HEAD_ONLY ./ | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/projectq/projectq.patch001 | |||
| ) | |||
| include_directories(${projectq_INC}) | |||
| else() | |||
| message("Quantum simulation only support x86_64 linux platform.") | |||
| endif() | |||
| @@ -1,49 +1,22 @@ | |||
| set(protobuf_USE_STATIC_LIBS ON) | |||
| if(BUILD_LITE) | |||
| set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ | |||
| -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") | |||
| else() | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC \ | |||
| -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") | |||
| elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") | |||
| set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ | |||
| -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") | |||
| else() | |||
| set(protobuf_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter \ | |||
| -fPIC -fvisibility=hidden -D_FORTIFY_SOURCE=2 -O2") | |||
| if(NOT ENABLE_GLIBCXX) | |||
| set(protobuf_CXXFLAGS "${protobuf_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | |||
| endif() | |||
| endif() | |||
| endif() | |||
| mindspore_add_pkg(protobuf | |||
| VER 3.8.0 | |||
| HEAD_ONLY ./ | |||
| URL https://github.com/protocolbuffers/protobuf/archive/v3.8.0.tar.gz | |||
| MD5 3d9e32700639618a4d2d342c99d4507a) | |||
| set(protobuf_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| set(protobuf_BUILD_TESTS OFF CACHE BOOL "Disable protobuf test") | |||
| set(protobuf_BUILD_SHARED_LIBS OFF CACHE BOOL "Gen shared library") | |||
| set(_ms_tmp_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) | |||
| set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) | |||
| string(REPLACE " -Wall" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |||
| string(REPLACE " -Werror" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |||
| add_subdirectory(${protobuf_DIRPATH}/cmake ${protobuf_DIRPATH}/build) | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/protobuf_source/repository/archive/v3.8.0.tar.gz") | |||
| set(MD5 "eba86ae9f07ba5cfbaf8af3bc4e84236") | |||
| else() | |||
| set(REQ_URL "https://github.com/protocolbuffers/protobuf/archive/v3.8.0.tar.gz") | |||
| set(MD5 "3d9e32700639618a4d2d342c99d4507a") | |||
| endif() | |||
| mindspore_add_pkg(protobuf | |||
| VER 3.8.0 | |||
| LIBS protobuf | |||
| EXE protoc | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_PATH cmake/ | |||
| CMAKE_OPTION -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF) | |||
| set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) | |||
| include_directories(${protobuf_INC}) | |||
| add_library(mindspore::protobuf ALIAS protobuf::protobuf) | |||
| set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS}) | |||
| set(PROTOBUF_LIBRARY protobuf::libprotobuf) | |||
| include_directories(${protobuf_DIRPATH}/src) | |||
| add_library(mindspore::protobuf ALIAS libprotobuf) | |||
| function(ms_protobuf_generate c_var h_var) | |||
| if(NOT ARGN) | |||
| @@ -60,22 +33,23 @@ function(ms_protobuf_generate c_var h_var) | |||
| get_filename_component(file_dir ${abs_file} PATH) | |||
| file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir}) | |||
| list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc") | |||
| list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h") | |||
| list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.cc") | |||
| list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.h") | |||
| add_custom_command( | |||
| OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h" | |||
| OUTPUT "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.h" | |||
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto" | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/${rel_path}" | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| DEPENDS protobuf::protoc ${abs_file} | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM) | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM ) | |||
| endforeach() | |||
| set_source_files_properties(${${c_var}} ${${h_var}} PROPERTIES GENERATED TRUE) | |||
| set(${c_var} ${${c_var}} PARENT_SCOPE) | |||
| set(${h_var} ${${h_var}} PARENT_SCOPE) | |||
| endfunction() | |||
| function(ms_protobuf_generate_py c_var h_var py_var) | |||
| @@ -92,45 +66,31 @@ function(ms_protobuf_generate_py c_var h_var py_var) | |||
| get_filename_component(abs_file ${file} ABSOLUTE) | |||
| get_filename_component(file_name ${file} NAME_WE) | |||
| get_filename_component(file_dir ${abs_file} PATH) | |||
| file(RELATIVE_PATH rel_path ${CMAKE_CURRENT_SOURCE_DIR} ${file_dir}) | |||
| list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc") | |||
| list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h") | |||
| list(APPEND ${py_var} "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py") | |||
| if(WIN32) | |||
| add_custom_command( | |||
| OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py" | |||
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto" | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND perl -pi.bak -e "s/import (.+_pb2.*)/from . import \\1/" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py" | |||
| COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py" | |||
| "${PROJECT_SOURCE_DIR}/mindspore/train/" | |||
| DEPENDS protobuf::protoc ${abs_file} | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM) | |||
| else() | |||
| add_custom_command( | |||
| OUTPUT "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}.pb.h" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py" | |||
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/proto" | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/proto ${abs_file} | |||
| COMMAND perl -pi -e "s/import (.+_pb2.*)/from . import \\1/" | |||
| "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py" | |||
| COMMAND cp "${CMAKE_BINARY_DIR}/proto/${file_name}_pb2.py" "${PROJECT_SOURCE_DIR}/mindspore/train/" | |||
| DEPENDS protobuf::protoc ${abs_file} | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM) | |||
| endif() | |||
| list(APPEND ${c_var} "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.cc") | |||
| list(APPEND ${h_var} "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.h") | |||
| list(APPEND ${py_var} "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py") | |||
| add_custom_command( | |||
| OUTPUT "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.cc" | |||
| "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}.pb.h" | |||
| "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" | |||
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |||
| COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/${rel_path}" | |||
| COMMAND protobuf::protoc -I${file_dir} --cpp_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| COMMAND protobuf::protoc -I${file_dir} --python_out=${CMAKE_BINARY_DIR}/${rel_path} ${abs_file} | |||
| COMMAND perl -pi -e "s/import (.+_pb2.*)/from . import \\1/" "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" | |||
| COMMAND cp "${CMAKE_BINARY_DIR}/${rel_path}/${file_name}_pb2.py" "${PROJECT_SOURCE_DIR}/mindspore/train/" | |||
| DEPENDS protobuf::protoc ${abs_file} | |||
| COMMENT "Running C++ protocol buffer compiler on ${file}" VERBATIM ) | |||
| endforeach() | |||
| set_source_files_properties(${${c_var}} ${${h_var}} ${${py_var}} PROPERTIES GENERATED TRUE) | |||
| set(${c_var} ${${c_var}} PARENT_SCOPE) | |||
| set(${h_var} ${${h_var}} PARENT_SCOPE) | |||
| set(${py_var} ${${py_var}} PARENT_SCOPE) | |||
| endfunction() | |||
| @@ -1,60 +1,11 @@ | |||
| set(PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}) | |||
| if(ENABLE_GITEE) | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz") | |||
| set(MD5 "a9b7642031f35daf33a75fe837b3dd31") | |||
| elseif(PYTHON_VERSION MATCHES "3.8") | |||
| set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.6.1.tar.gz") | |||
| set(MD5 "a9b7642031f35daf33a75fe837b3dd31") | |||
| elseif(PYTHON_VERSION MATCHES "3.7") | |||
| set(REQ_URL "https://gitee.com/mirrors/pybind11/repository/archive/v2.4.3.tar.gz") | |||
| set(MD5 "b473a37987ce456ea8cc7aab3f9486f9") | |||
| else() | |||
| message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'") | |||
| return() | |||
| endif() | |||
| else() | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz") | |||
| set(MD5 "32a7811f3db423df4ebfc731a28e5901") | |||
| elseif(PYTHON_VERSION MATCHES "3.8") | |||
| set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.6.1.tar.gz") | |||
| set(MD5 "32a7811f3db423df4ebfc731a28e5901") | |||
| elseif(PYTHON_VERSION MATCHES "3.7") | |||
| set(REQ_URL "https://github.com/pybind/pybind11/archive/v2.4.3.tar.gz") | |||
| set(MD5 "62254c40f89925bb894be421fe4cdef2") | |||
| else() | |||
| message("Could not find 'Python 3.8' or 'Python 3.7' or 'Python 3.9'") | |||
| return() | |||
| endif() | |||
| endif() | |||
| set(pybind11_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(pybind11_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| mindspore_add_pkg(pybind11 | |||
| VER 2.6.1 | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE | |||
| ) | |||
| elseif(PYTHON_VERSION MATCHES "3.8") | |||
| mindspore_add_pkg(pybind11 | |||
| VER 2.6.1 | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE | |||
| ) | |||
| else() | |||
| mindspore_add_pkg(pybind11 | |||
| mindspore_add_pkg(pybind11 | |||
| VER 2.4.3 | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://github.com/pybind/pybind11/archive/v2.4.3.tar.gz | |||
| MD5 62254c40f89925bb894be421fe4cdef2 | |||
| CMAKE_OPTION -DPYBIND11_TEST=OFF -DPYBIND11_LTO_CXX_FLAGS=FALSE | |||
| ) | |||
| endif() | |||
| include_directories(${pybind11_INC}) | |||
| find_package(pybind11 REQUIRED) | |||
| set_property(TARGET pybind11::module PROPERTY IMPORTED_GLOBAL TRUE) | |||
| @@ -0,0 +1,6 @@ | |||
| mindspore_add_pkg(rang | |||
| VER 3.1.0 | |||
| HEAD_ONLY ./ | |||
| URL https://github.com/agauniyal/rang/archive/cabe04d6d6b05356fa8f9741704924788f0dd762.zip | |||
| MD5 0c5c9b251fea9ee7ce32f188655be0ea) | |||
| @@ -1,48 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/sentencepiece/repository/archive/v0.1.92.tar.gz") | |||
| set(MD5 "618f5590c99884866c01cb773096c523") | |||
| else() | |||
| set(REQ_URL "https://github.com/google/sentencepiece/archive/v0.1.92.tar.gz") | |||
| set(MD5 "5dfd2241914b5598a68b2a8542ed8e91") | |||
| endif() | |||
| if(WIN32) | |||
| set(sentencepiece_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result -Wno-stringop-overflow \ | |||
| -Wno-format-extra-args -Wno-format") | |||
| set(sentencepiece_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| mindspore_add_pkg(sentencepiece | |||
| VER 0.1.92 | |||
| LIBS sentencepiece sentencepiece_train | |||
| URL ${REQ_URL} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_USE_BUILTIN_PROTOBUF=ON | |||
| MD5 ${MD5} | |||
| ) | |||
| else() | |||
| set(sentencepiece_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result -Wno-sign-compare") | |||
| set(sentencepiece_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| if(ENABLE_GLIBCXX) | |||
| mindspore_add_pkg(sentencepiece | |||
| VER 0.1.92 | |||
| LIBS sentencepiece sentencepiece_train | |||
| URL ${REQ_URL} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_USE_BUILTIN_PROTOBUF=OFF -DSPM_ENABLE_SHARED=OFF | |||
| -DPROTOBUF_INC=${protobuf_INC} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sentencepiece/sentencepiece.patch001_cpu | |||
| ) | |||
| else() | |||
| mindspore_add_pkg(sentencepiece | |||
| VER 0.1.92 | |||
| LIBS sentencepiece sentencepiece_train | |||
| URL ${REQ_URL} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DSPM_USE_BUILTIN_PROTOBUF=OFF -DSPM_ENABLE_SHARED=OFF | |||
| -DPROTOBUF_INC=${protobuf_INC} | |||
| MD5 ${MD5} | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sentencepiece/sentencepiece.patch001 | |||
| ) | |||
| endif() | |||
| endif() | |||
| include_directories(${sentencepiece_INC}) | |||
| add_library(mindspore::sentencepiece ALIAS sentencepiece::sentencepiece) | |||
| add_library(mindspore::sentencepiece_train ALIAS sentencepiece::sentencepiece_train) | |||
| @@ -1,41 +1,15 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/sqlite/repository/archive/version-3.32.2.tar.gz") | |||
| set(MD5 "7312cad1739d8a73b14abddc850c0afa") | |||
| else() | |||
| set(REQ_URL "https://github.com/sqlite/sqlite/archive/version-3.32.2.tar.gz") | |||
| set(MD5 "ea6d3b3289b4ac216fb06081a01ef101") | |||
| endif() | |||
| set(sqlite_USE_STATIC_LIBS ON) | |||
| set(sqlite_CXXFLAGS) | |||
| set(sqlite_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 -O2") | |||
| set(sqlite_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| if(WIN32) | |||
| mindspore_add_pkg(sqlite | |||
| VER 3.32.2 | |||
| mindspore_add_pkg(sqlite | |||
| VER 3.31.1 | |||
| LIBS sqlite3 | |||
| URL https://sqlite.org/2020/sqlite-amalgamation-3320200.zip | |||
| MD5 1eccea18d248eb34c7378b2b3f63f1db | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sqlite/sqlite.windows.patch001 | |||
| CMAKE_OPTION " " | |||
| ) | |||
| else() | |||
| set(sqlite_USE_STATIC_LIBS ON) | |||
| set(sqlite_CXXFLAGS) | |||
| if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | |||
| set(sqlite_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -fPIC -D_FORTIFY_SOURCE=2 \ | |||
| -O2") | |||
| else() | |||
| set(sqlite_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -fPIC \ | |||
| -D_FORTIFY_SOURCE=2 -O2") | |||
| set(sqlite_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| endif() | |||
| mindspore_add_pkg(sqlite | |||
| VER 3.32.2 | |||
| LIBS sqlite3 | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://github.com/sqlite/sqlite/archive/version-3.31.1.tar.gz | |||
| MD5 5f4e7b4016c15f4fb5855615279819da | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/sqlite/sqlite.patch001 | |||
| CONFIGURE_COMMAND ./configure --enable-shared=no --disable-tcl --disable-editline --enable-json1) | |||
| endif() | |||
| include_directories(${sqlite_INC}) | |||
| add_library(mindspore::sqlite ALIAS sqlite::sqlite3) | |||
| add_library(mindspore::sqlite ALIAS sqlite::sqlite3) | |||
| @@ -1,24 +0,0 @@ | |||
| set(tinyxml2_CXXFLAGS "-fstack-protector -D_FORTIFY_SOURCE=2 -O2 -Wno-unused-result") | |||
| set(tinyxml2_CFLAGS "-fstack-protector -D_FORTIFY_SOURCE=2 -O2") | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/tinyxml2/repository/archive/8.0.0.tar.gz") | |||
| set(MD5 "6a70cea637d0b17179e8bfd77860f811") | |||
| else() | |||
| set(REQ_URL "https://github.com/leethomason/tinyxml2/archive/8.0.0.tar.gz") | |||
| set(MD5 "5dc535c8b34ee621fe2128f072d275b5") | |||
| endif() | |||
| if(NOT WIN32 AND NOT APPLE) | |||
| set(tinyxml2_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack") | |||
| endif() | |||
| mindspore_add_pkg(tinyxml2 | |||
| VER 8.0.0 | |||
| LIBS tinyxml2 | |||
| URL ${REQ_URL} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release | |||
| MD5 ${MD5}) | |||
| include_directories(${tinyxml2_INC}) | |||
| add_library(mindspore::tinyxml2 ALIAS tinyxml2::tinyxml2) | |||
| @@ -0,0 +1,8 @@ | |||
| set(incubator_tvm_gpu_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(incubator_tvm_gpu_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| mindspore_add_pkg(incubator_tvm_gpu | |||
| VER 0.6.0 | |||
| HEAD_ONLY ./ | |||
| URL https://github.com/apache/incubator-tvm/archive/v0.6.0.tar.gz | |||
| MD5 9cbbd32545a776023acabbba270449fe) | |||
| @@ -1,18 +1,10 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/incubator-tvm/repository/archive/v0.6.0.tar.gz") | |||
| set(MD5 "7b22965745cf1c6208a4e367fb86a585") | |||
| else() | |||
| set(REQ_URL | |||
| "https://github.com/apache/incubator-tvm/release/download/v0.6.0/apache-tvm-src-v0.6.0-incubating.tar.gz") | |||
| set(MD5 "2d77a005f0046d937b99c67de82f6438") | |||
| endif() | |||
| set(incubator_tvm_predict_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| set(incubator_tvm_predict_CFLAGS "-D_FORTIFY_SOURCE=2 -O2") | |||
| mindspore_add_pkg(incubator_tvm_predict | |||
| VER 0.6.0 | |||
| HEAD_ONLY ./ | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| URL https://github.com/apache/incubator-tvm/release/download/v0.6.0/apache-tvm-src-v0.6.0-incubating.tar.gz | |||
| MD5 2d77a005f0046d937b99c67de82f6438 | |||
| PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/predict/0001-RetBugFix-CustomRuntime_v06.patch) | |||
| include_directories(${incubator_tvm_predict_INC}) | |||
| add_library(mindspore::incubator_tvm_predict ALIAS incubator_tvm_predict) | |||
| @@ -1,41 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/Vulkan-Headers/archive/v1.2.144.zip") | |||
| set(MD5 "8797a525aff953ea536ebe338a9f5ef6") | |||
| set(PKG_GIT_TAG "") | |||
| __download_pkg_with_git(Vulkan-Headers ${REQ_URL} ${PKG_GIT_TAG} ${MD5}) | |||
| else() | |||
| set(REQ_URL "https://github.com/KhronosGroup/Vulkan-Headers/archive/v1.2.144.zip") | |||
| set(MD5 "c6e4a281e0b7be3fe2a433c73a9b778b") | |||
| __download_pkg(Vulkan-Headers ${REQ_URL} ${MD5}) | |||
| endif() | |||
| function(gene_spirv BASEPATH) | |||
| string(CONCAT CL_SRC_DIR "${BASEPATH}" "/src/runtime/kernel/vulkan/glsl") | |||
| message(STATUS "**********gene spirv*********base path: " "${BASEPATH}" ", glsl path: " "${CL_SRC_DIR}") | |||
| if(NOT EXISTS ${CL_SRC_DIR}) | |||
| return() | |||
| endif() | |||
| file(GLOB_RECURSE CL_LIST ${CL_SRC_DIR}/*.cl) | |||
| foreach(file_path ${CL_LIST}) | |||
| file(REMOVE ${file_path}.inc) | |||
| string(REGEX REPLACE ".+/(.+)\\..*" "\\1" kernel_name "${file_path}") | |||
| set(inc_file_ex "${kernel_name}.cl.inc") | |||
| execute_process( | |||
| COMMAND bash -c "sed 's/\\\\/\\\\\\\\/g' " | |||
| COMMAND bash -c "sed 's/\\\"/\\\\\\\"/g' " | |||
| COMMAND bash -c "sed 's/$/\\\\n\\\" \\\\/' " | |||
| COMMAND bash -c "sed 's/^/\\\"/' " | |||
| WORKING_DIRECTORY ${CL_SRC_DIR} | |||
| INPUT_FILE ${file_path} | |||
| OUTPUT_FILE ${inc_file_ex} | |||
| RESULT_VARIABLE RESULT) | |||
| if(NOT RESULT EQUAL "0") | |||
| message(FATAL_ERROR "error! when generate ${inc_file_ex}") | |||
| endif() | |||
| __exec_cmd(COMMAND sed -i | |||
| "1i\\static const char *${kernel_name}_source =\\\"\\\\n\\\" \\\\" | |||
| ${inc_file_ex} WORKING_DIRECTORY ${CL_SRC_DIR} | |||
| ) | |||
| __exec_cmd(COMMAND sed -i "$a\\\\\;" ${inc_file_ex} WORKING_DIRECTORY ${CL_SRC_DIR}) | |||
| endforeach() | |||
| endfunction() | |||
| @@ -1,17 +0,0 @@ | |||
| if(ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/zlib/repository/archive/v1.2.11.tar.gz") | |||
| set(MD5 "be6d144068d8835e86a81b3f36b66a42") | |||
| else() | |||
| set(REQ_URL "https://github.com/madler/zlib/archive/v1.2.11.tar.gz") | |||
| set(MD5 "0095d2d2d1f3442ce1318336637b695f") | |||
| endif() | |||
| mindspore_add_pkg(zlib | |||
| VER 1.2.11 | |||
| LIBS z | |||
| URL ${REQ_URL} | |||
| MD5 ${MD5} | |||
| CMAKE_OPTION -DCMAKE_BUILD_TYPE:STRING=Release) | |||
| include_directories(${zlib_INC}) | |||
| add_library(mindspore::z ALIAS zlib::z) | |||
| @@ -1,361 +0,0 @@ | |||
| set(CMAKE_THREAD_LIBS_INIT "-lpthread") | |||
| set(CMAKE_HAVE_THREADS_LIBRARY 1) | |||
| set(CMAKE_USE_WIN32_THREADS_INIT 0) | |||
| set(CMAKE_USE_PTHREADS_INIT 1) | |||
| set(USED_CMAKE_GENERATOR "${CMAKE_GENERATOR}" CACHE STRING "Expose CMAKE_GENERATOR" FORCE) | |||
| if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.18.3") | |||
| set(MODERN_CMAKE YES) | |||
| message(STATUS "Merging integrated CMake 3.18.3+ iOS toolchain(s) with this toolchain!") | |||
| endif() | |||
| # Get the Xcode version | |||
| execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| string(REGEX MATCH "Xcode [0-9\\.]+" XCODE_VERSION "${XCODE_VERSION}") | |||
| string(REGEX REPLACE "Xcode ([0-9\\.]+)" "\\1" XCODE_VERSION "${XCODE_VERSION}") | |||
| set(FORCE_CACHE FORCE) | |||
| get_property(_CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE) | |||
| if(_CMAKE_IN_TRY_COMPILE) | |||
| unset(FORCE_CACHE) | |||
| endif() | |||
| if(NOT DEFINED PLATFORM) | |||
| if(CMAKE_OSX_ARCHITECTURES) | |||
| if(CMAKE_OSX_ARCHITECTURES MATCHES ".*arm.*" AND CMAKE_OSX_SYSROOT MATCHES ".*iphoneos.*") | |||
| set(PLATFORM "OS") | |||
| elseif(CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_SYSROOT MATCHES ".*iphonesimulator.*") | |||
| set(PLATFORM "SIMULATOR") | |||
| endif() | |||
| endif() | |||
| if(NOT PLATFORM) | |||
| set(PLATFORM "OS") | |||
| endif() | |||
| endif() | |||
| set(PLATFORM_INT "${PLATFORM}" CACHE STRING "Type of platform for which the build targets.") | |||
| if(PLATFORM_INT STREQUAL "OS" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.3.4) | |||
| set(PLATFORM_INT "OS64") | |||
| message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.") | |||
| elseif(PLATFORM_INT STREQUAL "SIMULATOR" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.3.4) | |||
| set(PLATFORM_INT "SIMULATOR64") | |||
| message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.") | |||
| endif() | |||
| if(PLATFORM_INT STREQUAL "OS") | |||
| set(SDK_NAME iphoneos) | |||
| if(NOT ARCHS) | |||
| set(ARCHS armv7 armv7s arm64) | |||
| endif() | |||
| elseif(PLATFORM_INT STREQUAL "OS64") | |||
| set(SDK_NAME iphoneos) | |||
| if(NOT ARCHS) | |||
| if(XCODE_VERSION VERSION_GREATER 10.0) | |||
| set(ARCHS arm64) | |||
| else() | |||
| set(ARCHS arm64) | |||
| endif() | |||
| endif() | |||
| elseif(PLATFORM_INT STREQUAL "OS64COMBINED") | |||
| set(SDK_NAME iphoneos) | |||
| if(MODERN_CMAKE) | |||
| if(NOT ARCHS) | |||
| if(XCODE_VERSION VERSION_GREATER 10.0) | |||
| set(ARCHS arm64 x86_64) | |||
| else() | |||
| set(ARCHS arm64 x86_64) | |||
| endif() | |||
| endif() | |||
| else() | |||
| message(FATAL_ERROR "Please make sure that you are running CMake 3.18.3+ to make the OS64COMBINED setting work") | |||
| endif() | |||
| elseif(PLATFORM_INT STREQUAL "SIMULATOR") | |||
| set(SDK_NAME iphonesimulator) | |||
| if(NOT ARCHS) | |||
| set(ARCHS i386) | |||
| endif() | |||
| message(DEPRECATION "SIMULATOR IS DEPRECATED. Consider using SIMULATOR64 instead.") | |||
| elseif(PLATFORM_INT STREQUAL "SIMULATOR64") | |||
| set(SDK_NAME iphonesimulator) | |||
| if(NOT ARCHS) | |||
| set(ARCHS x86_64) | |||
| endif() | |||
| else() | |||
| message(FATAL_ERROR "Invalid PLATFORM: ${PLATFORM_INT}") | |||
| endif() | |||
| message(STATUS "Configuring ${SDK_NAME} build for platform: ${PLATFORM_INT}, architecture(s): ${ARCHS}") | |||
| if(MODERN_CMAKE AND PLATFORM_INT MATCHES ".*COMBINED" AND NOT USED_CMAKE_GENERATOR MATCHES "Xcode") | |||
| message(FATAL_ERROR "The COMBINED options only work with Xcode generator, -G Xcode") | |||
| endif() | |||
| execute_process(COMMAND xcodebuild -version -sdk ${SDK_NAME} Path | |||
| OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_INT | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| if(NOT DEFINED CMAKE_OSX_SYSROOT_INT AND NOT DEFINED CMAKE_OSX_SYSROOT) | |||
| message(SEND_ERROR "Please make sure that Xcode is installed and that the toolchain" | |||
| "is pointing to the correct path. Please run:" | |||
| "sudo xcode-select -s /Applications/Xcode.app/Contents/Developer" | |||
| "and see if that fixes the problem for you.") | |||
| message(FATAL_ERROR "Invalid CMAKE_OSX_SYSROOT: ${CMAKE_OSX_SYSROOT} " | |||
| "does not exist.") | |||
| elseif(DEFINED CMAKE_OSX_SYSROOT) | |||
| message(STATUS "Using SDK: ${CMAKE_OSX_SYSROOT} for platform: ${PLATFORM_INT} when checking compatibility") | |||
| elseif(DEFINED CMAKE_OSX_SYSROOT_INT) | |||
| message(STATUS "Using SDK: ${CMAKE_OSX_SYSROOT_INT} for platform: ${PLATFORM_INT}") | |||
| set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") | |||
| endif() | |||
| if(USED_CMAKE_GENERATOR MATCHES "Xcode") | |||
| set(CMAKE_OSX_SYSROOT "${SDK_NAME}" CACHE INTERNAL "") | |||
| endif() | |||
| if(NOT DEFINED DEPLOYMENT_TARGET) | |||
| set(DEPLOYMENT_TARGET "9.0" CACHE STRING "Minimum SDK version to build for.") | |||
| message(STATUS "Using the default min-version since DEPLOYMENT_TARGET not provided!") | |||
| endif() | |||
| if(NOT DEFINED ENABLE_BITCODE AND NOT ARCHS MATCHES "((^|;|, )(i386|x86_64))+") | |||
| message(STATUS "Enabling bitcode support by default. ENABLE_BITCODE not provided!") | |||
| set(ENABLE_BITCODE TRUE) | |||
| elseif(NOT DEFINED ENABLE_BITCODE) | |||
| message(STATUS "Disabling bitcode support by default on simulators. ENABLE_BITCODE not provided for override!") | |||
| set(ENABLE_BITCODE FALSE) | |||
| endif() | |||
| set(ENABLE_BITCODE_INT ${ENABLE_BITCODE} CACHE BOOL "Whether or not to enable bitcode" ${FORCE_CACHE}) | |||
| if(NOT DEFINED ENABLE_ARC) | |||
| set(ENABLE_ARC TRUE) | |||
| message(STATUS "Enabling ARC support by default. ENABLE_ARC not provided!") | |||
| endif() | |||
| set(ENABLE_ARC_INT ${ENABLE_ARC} CACHE BOOL "Whether or not to enable ARC" ${FORCE_CACHE}) | |||
| if(NOT DEFINED ENABLE_VISIBILITY) | |||
| set(ENABLE_VISIBILITY FALSE) | |||
| message(STATUS "Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!") | |||
| endif() | |||
| set(ENABLE_VISIBILITY_INT ${ENABLE_VISIBILITY} CACHE BOOL | |||
| "Whether or not to hide symbols (-fvisibility=hidden)" ${FORCE_CACHE}) | |||
| # Set strict compiler checks or not | |||
| if(NOT DEFINED ENABLE_STRICT_TRY_COMPILE) | |||
| set(ENABLE_STRICT_TRY_COMPILE FALSE) | |||
| message(STATUS "Using NON-strict compiler checks by default. ENABLE_STRICT_TRY_COMPILE not provided!") | |||
| endif() | |||
| set(ENABLE_STRICT_TRY_COMPILE_INT ${ENABLE_STRICT_TRY_COMPILE} CACHE BOOL | |||
| "Whether or not to use strict compiler checks" ${FORCE_CACHE}) | |||
| # Get the SDK version information. | |||
| execute_process(COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version SDKVersion | |||
| OUTPUT_VARIABLE SDK_VERSION | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| if(NOT DEFINED CMAKE_DEVELOPER_ROOT AND NOT USED_CMAKE_GENERATOR MATCHES "Xcode") | |||
| get_filename_component(PLATFORM_SDK_DIR ${CMAKE_OSX_SYSROOT} PATH) | |||
| get_filename_component(CMAKE_DEVELOPER_ROOT ${PLATFORM_SDK_DIR} PATH) | |||
| if(NOT DEFINED CMAKE_DEVELOPER_ROOT) | |||
| message(FATAL_ERROR "Invalid CMAKE_DEVELOPER_ROOT: " | |||
| "${CMAKE_DEVELOPER_ROOT} does not exist.") | |||
| endif() | |||
| endif() | |||
| if(NOT CMAKE_C_COMPILER) | |||
| execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find clang | |||
| OUTPUT_VARIABLE CMAKE_C_COMPILER | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| message(STATUS "Using C compiler: ${CMAKE_C_COMPILER}") | |||
| endif() | |||
| if(NOT CMAKE_CXX_COMPILER) | |||
| execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find clang++ | |||
| OUTPUT_VARIABLE CMAKE_CXX_COMPILER | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| message(STATUS "Using CXX compiler: ${CMAKE_CXX_COMPILER}") | |||
| endif() | |||
| execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find libtool | |||
| OUTPUT_VARIABLE BUILD_LIBTOOL | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| message(STATUS "Using libtool: ${BUILD_LIBTOOL}") | |||
| set(CMAKE_C_CREATE_STATIC_LIBRARY | |||
| "${BUILD_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ") | |||
| set(CMAKE_CXX_CREATE_STATIC_LIBRARY | |||
| "${BUILD_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ") | |||
| if(NOT CMAKE_INSTALL_NAME_TOOL) | |||
| execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find install_name_tool | |||
| OUTPUT_VARIABLE CMAKE_INSTALL_NAME_TOOL_INT | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| set(CMAKE_INSTALL_NAME_TOOL ${CMAKE_INSTALL_NAME_TOOL_INT} CACHE STRING "" ${FORCE_CACHE}) | |||
| message(STATUS "Using install_name_tool: ${CMAKE_INSTALL_NAME_TOOL}") | |||
| endif() | |||
| execute_process(COMMAND uname -r | |||
| OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION | |||
| ERROR_QUIET | |||
| OUTPUT_STRIP_TRAILING_WHITESPACE) | |||
| if(MODERN_CMAKE) | |||
| if(SDK_NAME MATCHES "iphone") | |||
| set(CMAKE_SYSTEM_NAME iOS CACHE INTERNAL "" ${FORCE_CACHE}) | |||
| endif() | |||
| if(PLATFORM_INT MATCHES ".*COMBINED") | |||
| set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO CACHE INTERNAL "" ${FORCE_CACHE}) | |||
| set(CMAKE_IOS_INSTALL_COMBINED YES CACHE INTERNAL "" ${FORCE_CACHE}) | |||
| message(STATUS "Will combine built (static) artifacts into FAT lib...") | |||
| endif() | |||
| else() | |||
| set(CMAKE_SYSTEM_NAME Darwin CACHE INTERNAL "" ${FORCE_CACHE}) | |||
| endif() | |||
| set(CMAKE_SYSTEM_VERSION ${SDK_VERSION} CACHE INTERNAL "") | |||
| set(UNIX TRUE CACHE BOOL "") | |||
| set(APPLE TRUE CACHE BOOL "") | |||
| set(IOS TRUE CACHE BOOL "") | |||
| set(CMAKE_AR ar CACHE FILEPATH "" FORCE) | |||
| set(CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE) | |||
| set(CMAKE_STRIP strip CACHE FILEPATH "" FORCE) | |||
| set(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE STRING "Build architecture for iOS") | |||
| if(ENABLE_STRICT_TRY_COMPILE_INT) | |||
| message(STATUS "Using strict compiler checks (default in CMake).") | |||
| else() | |||
| set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) | |||
| endif() | |||
| set(CMAKE_SHARED_LIBRARY_PREFIX "lib") | |||
| set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") | |||
| set(CMAKE_SHARED_MODULE_PREFIX "lib") | |||
| set(CMAKE_SHARED_MODULE_SUFFIX ".so") | |||
| set(CMAKE_C_COMPILER_ABI ELF) | |||
| set(CMAKE_CXX_COMPILER_ABI ELF) | |||
| set(CMAKE_C_HAS_ISYSROOT 1) | |||
| set(CMAKE_CXX_HAS_ISYSROOT 1) | |||
| set(CMAKE_MODULE_EXISTS 1) | |||
| set(CMAKE_DL_LIBS "") | |||
| set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") | |||
| set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") | |||
| set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") | |||
| set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") | |||
| if(ARCHS MATCHES "((^|;|, )(arm64|arm64e|x86_64))+") | |||
| set(CMAKE_C_SIZEOF_DATA_PTR 8) | |||
| set(CMAKE_CXX_SIZEOF_DATA_PTR 8) | |||
| if(ARCHS MATCHES "((^|;|, )(arm64|arm64e))+") | |||
| set(CMAKE_SYSTEM_PROCESSOR "aarch64") | |||
| else() | |||
| set(CMAKE_SYSTEM_PROCESSOR "x86_64") | |||
| endif() | |||
| message(STATUS "Using a data_ptr size of 8") | |||
| else() | |||
| set(CMAKE_C_SIZEOF_DATA_PTR 4) | |||
| set(CMAKE_CXX_SIZEOF_DATA_PTR 4) | |||
| set(CMAKE_SYSTEM_PROCESSOR "arm") | |||
| message(STATUS "Using a data_ptr size of 4") | |||
| endif() | |||
| message(STATUS "Building for minimum ${SDK_NAME} version: ${DEPLOYMENT_TARGET} (SDK version: ${SDK_VERSION})") | |||
| if(PLATFORM_INT STREQUAL "OS" OR PLATFORM_INT STREQUAL "OS64") | |||
| if(XCODE_VERSION VERSION_LESS 7.0) | |||
| set(SDK_NAME_VERSION_FLAGS "-mios-version-min=${DEPLOYMENT_TARGET}") | |||
| else() | |||
| set(SDK_NAME_VERSION_FLAGS "-m${SDK_NAME}-version-min=${DEPLOYMENT_TARGET}") | |||
| endif() | |||
| else() | |||
| set(SDK_NAME_VERSION_FLAGS "-mios-simulator-version-min=${DEPLOYMENT_TARGET}") | |||
| endif() | |||
| message(STATUS "Version flags set to: ${SDK_NAME_VERSION_FLAGS}") | |||
| set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET} CACHE STRING "Set CMake deployment target" ${FORCE_CACHE}) | |||
| if(ENABLE_BITCODE_INT) | |||
| set(BITCODE "-fembed-bitcode") | |||
| set(CMAKE_XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode CACHE INTERNAL "") | |||
| message(STATUS "Enabling bitcode support.") | |||
| else() | |||
| set(BITCODE "") | |||
| set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE NO CACHE INTERNAL "") | |||
| message(STATUS "Disabling bitcode support.") | |||
| endif() | |||
| if(ENABLE_ARC_INT) | |||
| set(FOBJC_ARC "-fobjc-arc") | |||
| set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES CACHE INTERNAL "") | |||
| message(STATUS "Enabling ARC support.") | |||
| else() | |||
| set(FOBJC_ARC "-fno-objc-arc") | |||
| set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC NO CACHE INTERNAL "") | |||
| message(STATUS "Disabling ARC support.") | |||
| endif() | |||
| if(NOT ENABLE_VISIBILITY_INT) | |||
| set(VISIBILITY "-fvisibility=hidden") | |||
| set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES CACHE INTERNAL "") | |||
| message(STATUS "Hiding symbols (-fvisibility=hidden).") | |||
| else() | |||
| set(VISIBILITY "") | |||
| set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN NO CACHE INTERNAL "") | |||
| endif() | |||
| if(USED_CMAKE_GENERATOR MATCHES "Xcode") | |||
| message(STATUS "Not setting any manual command-line buildflags, since Xcode is selected as generator.") | |||
| else() | |||
| set(CMAKE_C_FLAGS "${SDK_NAME_VERSION_FLAGS} ${BITCODE} -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_C_FLAGS}") | |||
| set(CMAKE_CXX_FLAGS | |||
| "${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} | |||
| -fvisibility-inlines-hidden -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_CXX_FLAGS}") | |||
| set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -g ${CMAKE_CXX_FLAGS_DEBUG}") | |||
| set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS} -DNDEBUG -Os -ffast-math ${CMAKE_CXX_FLAGS_MINSIZEREL}") | |||
| set(CMAKE_CXX_FLAGS_RELWITHDEBINFO | |||
| "${CMAKE_CXX_FLAGS} -DNDEBUG -O2 -g -ffast-math ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") | |||
| set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG -O3 -ffast-math ${CMAKE_CXX_FLAGS_RELEASE}") | |||
| set(CMAKE_C_LINK_FLAGS "${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") | |||
| set(CMAKE_CXX_LINK_FLAGS "${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") | |||
| list(APPEND VARS_TO_FORCE_IN_CACHE | |||
| CMAKE_C_FLAGS | |||
| CMAKE_CXX_FLAGS | |||
| CMAKE_CXX_FLAGS_DEBUG | |||
| CMAKE_CXX_FLAGS_RELWITHDEBINFO | |||
| CMAKE_CXX_FLAGS_MINSIZEREL | |||
| CMAKE_CXX_FLAGS_RELEASE | |||
| CMAKE_C_LINK_FLAGS | |||
| CMAKE_CXX_LINK_FLAGS) | |||
| foreach(VAR_TO_FORCE ${VARS_TO_FORCE_IN_CACHE}) | |||
| set(${VAR_TO_FORCE} "${${VAR_TO_FORCE}}" CACHE STRING "") | |||
| endforeach() | |||
| endif() | |||
| set(CMAKE_PLATFORM_HAS_INSTALLNAME 1) | |||
| set(CMAKE_SHARED_LINKER_FLAGS "-rpath @executable_path/Frameworks -rpath @loader_path/Frameworks") | |||
| set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") | |||
| set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") | |||
| set(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") | |||
| set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") | |||
| set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a") | |||
| set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") | |||
| set(CMAKE_FIND_ROOT_PATH | |||
| ${CMAKE_OSX_SYSROOT_INT} ${CMAKE_PREFIX_PATH} | |||
| CACHE STRING "Root path that will be prepended to all search paths") | |||
| set(CMAKE_FIND_FRAMEWORK FIRST) | |||
| set(CMAKE_FRAMEWORK_PATH | |||
| ${CMAKE_DEVELOPER_ROOT}/Library/PrivateFrameworks | |||
| ${CMAKE_OSX_SYSROOT_INT}/System/Library/Frameworks | |||
| ${CMAKE_FRAMEWORK_PATH} CACHE STRING "Frameworks search paths" ${FORCE_CACHE}) | |||
| if(NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM) | |||
| set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE STRING "" ${FORCE_CACHE}) | |||
| endif() | |||
| if(NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY) | |||
| set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE STRING "" ${FORCE_CACHE}) | |||
| endif() | |||
| if(NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE) | |||
| set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE STRING "" ${FORCE_CACHE}) | |||
| endif() | |||
| if(NOT CMAKE_FIND_ROOT_PATH_MODE_PACKAGE) | |||
| set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY CACHE STRING "" ${FORCE_CACHE}) | |||
| endif() | |||
| @@ -1,10 +1,6 @@ | |||
| set(SECURE_CXX_FLAGS "") | |||
| if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | |||
| if(WIN32) | |||
| set(SECURE_CXX_FLAGS "-fstack-protector-all") | |||
| else() | |||
| if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | |||
| set(SECURE_CXX_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | |||
| endif() | |||
| endif() | |||
| set(_ms_tmp_CMAKE_CXX_FLAGS_F ${CMAKE_CXX_FLAGS}) | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") | |||
| @@ -14,19 +10,6 @@ include(${CMAKE_SOURCE_DIR}/cmake/external_libs/eigen.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/json.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/dependency_securec.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/protobuf.cmake) | |||
| if(MS_BUILD_GRPC) | |||
| # build dependencies of gRPC | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/openssl.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/absl.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/c-ares.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/zlib.cmake) | |||
| # build gRPC | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/grpc.cmake) | |||
| # build event | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/libevent.cmake) | |||
| endif() | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/pybind11.cmake) | |||
| MESSAGE("go to link flatbuffers") | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/flatbuffers.cmake) | |||
| @@ -37,62 +20,38 @@ endif() | |||
| find_package(Python3) | |||
| include_directories(${Python3_INCLUDE_DIRS}) | |||
| include_directories(${CMAKE_SOURCE_DIR}/third_party) | |||
| if(ENABLE_MPI) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/ompi.cmake) | |||
| endif() | |||
| if(ENABLE_CPU) | |||
| if (ENABLE_CPU) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/mkl_dnn.cmake) | |||
| endif() | |||
| if(ENABLE_CPU AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux" | |||
| AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") | |||
| message("Include projectq") | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/projectq.cmake) | |||
| if (ENABLE_GPU) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/dlpack.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/dmlc_core.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/rang.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/tvm_gpu.cmake) | |||
| endif() | |||
| if(ENABLE_GPU) | |||
| if(ENABLE_MPI) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/nccl.cmake) | |||
| endif() | |||
| if (ENABLE_MPI) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/nccl.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/ompi.cmake) | |||
| endif() | |||
| if(ENABLE_GE) | |||
| if (ENABLE_GE) | |||
| include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include) | |||
| include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include/external) | |||
| include_directories(${CMAKE_SOURCE_DIR}/third_party/ge/include/external/graph) | |||
| link_directories(${CMAKE_SOURCE_DIR}/third_party/ge/lib) | |||
| elseif(ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES) | |||
| else() | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/ops) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external/graph) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external/graph) | |||
| endif() | |||
| if(ENABLE_GE OR ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/external) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/inc/framework) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/third_party/fwkacllib/inc/toolchain) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external) | |||
| include_directories(${CMAKE_SOURCE_DIR}/graphengine/metadef/inc/external/graph) | |||
| endif() | |||
| if(ENABLE_MINDDATA) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/icu4c.cmake) | |||
| if (ENABLE_MINDDATA) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/jpeg_turbo.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/libtiff.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/opencv.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/sqlite.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/tinyxml2.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/cppjieba.cmake) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/sentencepiece.cmake) | |||
| endif() | |||
| if(ENABLE_MINDDATA) | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/jpeg_turbo.cmake) | |||
| endif() | |||
| include(${CMAKE_SOURCE_DIR}/cmake/external_libs/gtest.cmake) | |||
| @@ -5,7 +5,6 @@ option(ENABLE_GE "Enable graph engine as backend to execute" OFF) | |||
| option(ENABLE_MINDDATA "Enable minddata compile" OFF) | |||
| option(ENABLE_TRAIN "Enable ge train, default off(only infer)" OFF) | |||
| option(ENABLE_TESTCASES "Run testcases switch, default off" OFF) | |||
| option(ENABLE_CPP_ST "Run cpp st testcases switch, default off" OFF) | |||
| option(DEBUG_MODE "Debug mode, default off" OFF) | |||
| option(ENABLE_ASAN "Enable Google Sanitizer to find memory bugs") | |||
| option(ENABLE_LOAD_ANF_IR "Enable load ANF-IR as input of 'infer' stage of pipeline" OFF) | |||
| @@ -14,71 +13,56 @@ option(USE_GLOG "Use glog to output log" OFF) | |||
| option(ENABLE_PROFILE "Enable pipeline profile, default off" OFF) | |||
| option(ENABLE_TIMELINE "Enable time line record" OFF) | |||
| option(ENABLE_DUMP_PROTO "Enable dump anf graph to file in ProtoBuffer format, default on" ON) | |||
| option(ENABLE_DUMP_IR "Enable dump function graph ir, default on" ON) | |||
| option(ENABLE_DUMP_E2E "Enable dump e2e file, default on" OFF) | |||
| option(ENABLE_DUMP_IR "Enable dump funciton graph ir, default on" ON) | |||
| option(ENABLE_MPI "enable mpi" OFF) | |||
| option(ENABLE_AKG "enable akg" OFF) | |||
| option(ENABLE_DEBUGGER "enable debugger" OFF) | |||
| option(ENABLE_IBVERBS "enable IBVERBS for parameter server" OFF) | |||
| option(ENABLE_PYTHON "Enable python" ON) | |||
| option(ENABLE_ACL "enable acl" OFF) | |||
| option(ENABLE_GLIBCXX "enable_glibcxx" OFF) | |||
| if(NOT ENABLE_D AND NOT ENABLE_TESTCASES AND NOT ENABLE_ACL AND NOT ENABLE_GE) | |||
| set(ENABLE_GLIBCXX ON) | |||
| if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | |||
| endif() | |||
| if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | |||
| if(WIN32) | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -fstack-protector-all") | |||
| else() | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | |||
| endif() | |||
| endif() | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||
| if (CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -Wsign-compare") | |||
| endif() | |||
| if(ENABLE_COVERAGE) | |||
| if (ENABLE_COVERAGE) | |||
| set(COVERAGE_COMPILER_FLAGS "-g --coverage -fprofile-arcs -ftest-coverage") | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}") | |||
| endif() | |||
| if(ENABLE_ASAN) | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -fsanitize=address -fsanitize-recover=address -fno-omit-frame-pointer") | |||
| if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -static-libsan") | |||
| if (ENABLE_ASAN) | |||
| if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -static-libasan -fsanitize=undefined") | |||
| else() | |||
| set(OPTION_CXX_FLAGS "${OPTION_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer -static-libsan -fsanitize=undefined") | |||
| endif() | |||
| endif() | |||
| if(DEBUG_MODE) | |||
| if (DEBUG_MODE) | |||
| set(CMAKE_BUILD_TYPE "Debug") | |||
| else() | |||
| add_compile_definitions(MEM_REUSE_DEBUG) | |||
| set(CMAKE_BUILD_TYPE "Release") | |||
| endif() | |||
| if((CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") OR (CMAKE_BUILD_TYPE STREQUAL Release)) | |||
| if ((CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") OR (CMAKE_BUILD_TYPE STREQUAL Release)) | |||
| set(PYBIND11_LTO_CXX_FLAGS FALSE) | |||
| endif() | |||
| if(NOT BUILD_PATH) | |||
| if (NOT BUILD_PATH) | |||
| set(BUILD_PATH "${CMAKE_SOURCE_DIR}/build") | |||
| endif() | |||
| if(ENABLE_GE OR ENABLE_D) | |||
| if (ENABLE_GE OR ENABLE_D) | |||
| set(ENABLE_TDTQUE ON) | |||
| endif() | |||
| if(ENABLE_GPU) | |||
| if (ENABLE_GPU) | |||
| set(ENABLE_GPUQUE ON) | |||
| add_compile_definitions(ENABLE_GPU_COLLECTIVE) | |||
| endif() | |||
| if(ENABLE_CPU) | |||
| add_compile_definitions(ENABLE_CPU) | |||
| endif() | |||
| if(ENABLE_GE) | |||
| if (ENABLE_GE) | |||
| add_compile_definitions(ENABLE_GE) | |||
| add_compile_definitions(CUSTOM_OP) | |||
| endif() | |||
| @@ -93,40 +77,33 @@ if(USE_GLOG) | |||
| add_compile_definitions(USE_GLOG) | |||
| endif() | |||
| if(ENABLE_PROFILE) | |||
| if (ENABLE_PROFILE) | |||
| add_compile_definitions(ENABLE_PROFILE) | |||
| endif() | |||
| if(ENABLE_TIMELINE) | |||
| if (ENABLE_TIMELINE) | |||
| add_compile_definitions(ENABLE_TIMELINE) | |||
| endif() | |||
| if(ENABLE_LOAD_ANF_IR) | |||
| if (ENABLE_LOAD_ANF_IR) | |||
| add_compile_definitions(ENABLE_LOAD_ANF_IR) | |||
| endif() | |||
| if(ENABLE_TESTCASES OR (NOT ENABLE_D AND NOT ENABLE_GE)) | |||
| if (ENABLE_TESTCASES OR (NOT ENABLE_D AND NOT ENABLE_GE)) | |||
| add_compile_definitions(NO_DLIB=1) | |||
| endif() | |||
| if(ENABLE_DUMP_IR) | |||
| add_compile_definitions(ENABLE_DUMP_IR) | |||
| endif() | |||
| endif(ENABLE_DUMP_IR) | |||
| if(ENABLE_MINDDATA) | |||
| add_compile_definitions(ENABLE_MINDDATA) | |||
| if(ENABLE_TDTQUE) | |||
| if (ENABLE_TDTQUE) | |||
| add_compile_definitions(ENABLE_TDTQUE) | |||
| endif() | |||
| endif() | |||
| if(ENABLE_DEBUGGER) | |||
| add_compile_definitions(ENABLE_DEBUGGER) | |||
| endif() | |||
| if(ENABLE_DEBUGGER OR ENABLE_TESTCASES) | |||
| set(MS_BUILD_GRPC ON) | |||
| endif() | |||
| if(ENABLE_MINDDATA AND NOT CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| set(MS_BUILD_GRPC ON) | |||
| endif() | |||
| if(ENABLE_DUMP_E2E) | |||
| add_compile_definitions(ENABLE_DUMP_E2E) | |||
| endif() | |||
| @@ -1,385 +0,0 @@ | |||
| # include dependency | |||
| include(CMakePackageConfigHelpers) | |||
| include(GNUInstallDirs) | |||
| # set package information | |||
| set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) | |||
| set(CPACK_GENERATOR "External") | |||
| set(CPACK_CMAKE_GENERATOR "Ninja") | |||
| set(CPACK_EXTERNAL_PACKAGE_SCRIPT ${CMAKE_SOURCE_DIR}/cmake/package_script.cmake) | |||
| set(CPACK_EXTERNAL_ENABLE_STAGING true) | |||
| set(CPACK_TEMPORARY_PACKAGE_FILE_NAME ${CMAKE_SOURCE_DIR}/build/package/mindspore) | |||
| set(CPACK_TEMPORARY_INSTALL_DIRECTORY ${CMAKE_SOURCE_DIR}/build/package/mindspore) | |||
| if(ENABLE_GE) | |||
| set(CPACK_MS_BACKEND "ge") | |||
| set(CPACK_MS_TARGET "ascend or cpu") | |||
| set(CPACK_MS_PACKAGE_NAME "mindspore") | |||
| elseif(ENABLE_GPU) | |||
| set(CPACK_MS_BACKEND "ms") | |||
| set(CPACK_MS_TARGET "gpu or cpu") | |||
| set(CPACK_MS_PACKAGE_NAME "mindspore-gpu") | |||
| elseif(ENABLE_D) | |||
| set(CPACK_MS_BACKEND "ms") | |||
| set(CPACK_MS_TARGET "ascend or cpu") | |||
| set(CPACK_MS_PACKAGE_NAME "mindspore-ascend") | |||
| elseif(ENABLE_CPU) | |||
| set(CPACK_MS_BACKEND "ms") | |||
| set(CPACK_MS_TARGET "cpu") | |||
| set(CPACK_MS_PACKAGE_NAME "mindspore") | |||
| elseif(ENABLE_ACL) | |||
| set(CPACK_MS_BACKEND "debug") | |||
| set(CPACK_MS_TARGET "ascend or gpu or cpu") | |||
| set(CPACK_MS_PACKAGE_NAME "mindspore-ascend") | |||
| else() | |||
| set(CPACK_MS_BACKEND "debug") | |||
| set(CPACK_MS_TARGET "ascend or gpu or cpu") | |||
| set(CPACK_MS_PACKAGE_NAME "mindspore") | |||
| endif() | |||
| include(CPack) | |||
| # set install path | |||
| set(INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries") | |||
| set(INSTALL_PY_DIR ".") | |||
| set(INSTALL_BASE_DIR ".") | |||
| set(INSTALL_BIN_DIR "bin") | |||
| set(INSTALL_CFG_DIR "config") | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| set(INSTALL_LIB_DIR ".") | |||
| set(onednn_LIBPATH ${onednn_LIBPATH}/../bin/) | |||
| set(glog_LIBPATH ${glog_LIBPATH}/../bin/) | |||
| set(opencv_LIBPATH ${opencv_LIBPATH}/../bin/) | |||
| set(jpeg_turbo_LIBPATH ${jpeg_turbo_LIBPATH}/../bin/) | |||
| set(sqlite_LIBPATH ${sqlite_LIBPATH}/../bin/) | |||
| set(tinyxml2_LIBPATH ${tinyxml2_LIBPATH}/../bin/) | |||
| set(sentencepiece_LIBPATH ${sentencepiece_LIBPATH}/../bin/) | |||
| else() | |||
| set(INSTALL_LIB_DIR "lib") | |||
| endif() | |||
| # set package files | |||
| install( | |||
| TARGETS _c_expression | |||
| DESTINATION ${INSTALL_BASE_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| message("offline debugger does not support windows system temporarily") | |||
| else() | |||
| install( | |||
| TARGETS _mindspore_offline_debug | |||
| DESTINATION ${INSTALL_BASE_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| install( | |||
| TARGETS mindspore_shared_lib | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| install( | |||
| TARGETS mindspore_gvar | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if(USE_GLOG) | |||
| file(GLOB_RECURSE GLOG_LIB_LIST ${glog_LIBPATH}/libmindspore_glog*) | |||
| install( | |||
| FILES ${GLOG_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| file(GLOB_RECURSE LIBEVENT_LIB_LIST | |||
| ${libevent_LIBPATH}/libevent*${CMAKE_SHARED_LIBRARY_SUFFIX}* | |||
| ${libevent_LIBPATH}/libevent_pthreads*${CMAKE_SHARED_LIBRARY_SUFFIX}* | |||
| ) | |||
| install( | |||
| FILES ${LIBEVENT_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if(ENABLE_MINDDATA) | |||
| install( | |||
| TARGETS _c_dataengine _c_mindrecord | |||
| DESTINATION ${INSTALL_BASE_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Linux") | |||
| install( | |||
| TARGETS cache_admin cache_server | |||
| OPTIONAL | |||
| DESTINATION ${INSTALL_BIN_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| file(GLOB_RECURSE OPENCV_LIB_LIST | |||
| ${opencv_LIBPATH}/libopencv_core* | |||
| ${opencv_LIBPATH}/libopencv_imgcodecs* | |||
| ${opencv_LIBPATH}/libopencv_imgproc* | |||
| ) | |||
| install( | |||
| FILES ${OPENCV_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| file(GLOB_RECURSE TINYXML2_LIB_LIST ${tinyxml2_LIBPATH}/libtinyxml2*) | |||
| install( | |||
| FILES ${TINYXML2_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| file(GLOB_RECURSE SENTENCEPIECE_LIB_LIST | |||
| ${sentencepiece_LIBPATH}/libsentencepiece* | |||
| ) | |||
| install( | |||
| FILES ${SENTENCEPIECE_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| message("icu4c does not support windows system temporarily") | |||
| else() | |||
| file(GLOB_RECURSE ICU4C_LIB_LIST | |||
| ${icu4c_LIBPATH}/libicuuc* | |||
| ${icu4c_LIBPATH}/libicudata* | |||
| ${icu4c_LIBPATH}/libicui18n* | |||
| ) | |||
| install( | |||
| FILES ${ICU4C_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| endif() | |||
| if(ENABLE_CPU) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Linux") | |||
| file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/libdnnl${CMAKE_SHARED_LIBRARY_SUFFIX}*) | |||
| elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||
| file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/libdnnl*${CMAKE_SHARED_LIBRARY_SUFFIX}*) | |||
| elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/dnnl.dll) | |||
| endif() | |||
| install( | |||
| FILES ${DNNL_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| install( | |||
| TARGETS nnacl | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| if(ENABLE_MPI) | |||
| if(ENABLE_GPU) | |||
| install( | |||
| TARGETS _ms_mpi | |||
| DESTINATION ${INSTALL_BASE_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| if(ENABLE_CPU) | |||
| install( | |||
| TARGETS mpi_adapter | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| endif() | |||
| if(ENABLE_GPU) | |||
| if(ENABLE_MPI) | |||
| install( | |||
| TARGETS gpu_collective | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| install( | |||
| TARGETS gpu_queue | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| if(ENABLE_CPU AND NOT WIN32) | |||
| install( | |||
| TARGETS ps_cache | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| if(ENABLE_TESTCASES) | |||
| file(GLOB_RECURSE LIBEVENT_LIB_LIST | |||
| ${libevent_LIBPATH}/libevent* | |||
| ${libevent_LIBPATH}/libevent_pthreads* | |||
| ) | |||
| endif() | |||
| if(NOT ENABLE_GE) | |||
| if(ENABLE_D OR ENABLE_ACL) | |||
| if(DEFINED ENV{ASCEND_CUSTOM_PATH}) | |||
| set(ASCEND_PATH $ENV{ASCEND_CUSTOM_PATH}) | |||
| else() | |||
| set(ASCEND_PATH /usr/local/Ascend) | |||
| endif() | |||
| set(ASCEND_DRIVER_PATH ${ASCEND_PATH}/driver/lib64/common) | |||
| install( | |||
| FILES ${CMAKE_SOURCE_DIR}/build/graphengine/c_sec/lib/libc_sec.so | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if(ENABLE_D) | |||
| install( | |||
| TARGETS ms_profile | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| install( | |||
| FILES | |||
| ${CMAKE_BINARY_DIR}/graphengine/metadef/graph/libgraph.so | |||
| ${CMAKE_BINARY_DIR}/graphengine/ge/common/libge_common.so | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| elseif(ENABLE_TESTCASES) | |||
| install( | |||
| FILES | |||
| ${CMAKE_BINARY_DIR}/graphengine/metadef/graph/libgraph.so | |||
| ${CMAKE_SOURCE_DIR}/build/graphengine/c_sec/lib/libc_sec.so | |||
| ${LIBEVENT_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| endif() | |||
| if(MS_BUILD_GRPC) | |||
| install(FILES ${grpc_LIBPATH}/libmindspore_grpc++.so.1.27.3 | |||
| DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_grpc++.so.1 COMPONENT mindspore) | |||
| install(FILES ${grpc_LIBPATH}/libmindspore_grpc.so.9.0.0 | |||
| DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_grpc.so.9 COMPONENT mindspore) | |||
| install(FILES ${grpc_LIBPATH}/libmindspore_gpr.so.9.0.0 | |||
| DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_gpr.so.9 COMPONENT mindspore) | |||
| install(FILES ${grpc_LIBPATH}/libmindspore_upb.so.9.0.0 | |||
| DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_upb.so.9 COMPONENT mindspore) | |||
| install(FILES ${grpc_LIBPATH}/libmindspore_address_sorting.so.9.0.0 | |||
| DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_address_sorting.so.9 COMPONENT mindspore) | |||
| endif() | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| get_filename_component(CXX_DIR ${CMAKE_CXX_COMPILER} PATH) | |||
| file(GLOB CXX_LIB_LIST ${CXX_DIR}/*.dll) | |||
| string(REPLACE "\\" "/" SystemRoot $ENV{SystemRoot}) | |||
| file(GLOB VC_LIB_LIST ${SystemRoot}/System32/msvcp140.dll ${SystemRoot}/System32/vcomp140.dll) | |||
| file(GLOB JPEG_LIB_LIST ${jpeg_turbo_LIBPATH}/*.dll) | |||
| file(GLOB SQLITE_LIB_LIST ${sqlite_LIBPATH}/*.dll) | |||
| install( | |||
| FILES ${CXX_LIB_LIST} ${JPEG_LIB_LIST} ${SQLITE_LIB_LIST} ${VC_LIB_LIST} | |||
| DESTINATION ${INSTALL_LIB_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| # set python files | |||
| file(GLOB MS_PY_LIST ${CMAKE_SOURCE_DIR}/mindspore/*.py) | |||
| install( | |||
| FILES ${MS_PY_LIST} | |||
| DESTINATION ${INSTALL_PY_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| install( | |||
| DIRECTORY | |||
| ${CMAKE_SOURCE_DIR}/mindspore/nn | |||
| ${CMAKE_SOURCE_DIR}/mindspore/_extends | |||
| ${CMAKE_SOURCE_DIR}/mindspore/parallel | |||
| ${CMAKE_SOURCE_DIR}/mindspore/mindrecord | |||
| ${CMAKE_SOURCE_DIR}/mindspore/numpy | |||
| ${CMAKE_SOURCE_DIR}/mindspore/train | |||
| ${CMAKE_SOURCE_DIR}/mindspore/common | |||
| ${CMAKE_SOURCE_DIR}/mindspore/ops | |||
| ${CMAKE_SOURCE_DIR}/mindspore/communication | |||
| ${CMAKE_SOURCE_DIR}/mindspore/profiler | |||
| ${CMAKE_SOURCE_DIR}/mindspore/explainer | |||
| ${CMAKE_SOURCE_DIR}/mindspore/compression | |||
| DESTINATION ${INSTALL_PY_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| if((ENABLE_D OR ENABLE_GPU) AND ENABLE_AKG) | |||
| set (AKG_PATH ${CMAKE_SOURCE_DIR}/build/mindspore/akg) | |||
| file(REMOVE_RECURSE ${AKG_PATH}/_akg) | |||
| file(MAKE_DIRECTORY ${AKG_PATH}/_akg) | |||
| file(TOUCH ${AKG_PATH}/_akg/__init__.py) | |||
| install(DIRECTORY "${AKG_PATH}/akg" DESTINATION "${AKG_PATH}/_akg") | |||
| install( | |||
| DIRECTORY | |||
| ${AKG_PATH}/_akg | |||
| DESTINATION ${INSTALL_PY_DIR}/ | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/dataset) | |||
| install( | |||
| DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/dataset | |||
| DESTINATION ${INSTALL_PY_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| message("offline debugger does not support windows system temporarily") | |||
| else() | |||
| if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/offline_debug) | |||
| install( | |||
| DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/offline_debug | |||
| DESTINATION ${INSTALL_PY_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| endif() | |||
| endif() | |||
| ## Public header files | |||
| install( | |||
| DIRECTORY ${CMAKE_SOURCE_DIR}/include | |||
| DESTINATION ${INSTALL_BASE_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| ## Public header files for minddata | |||
| install( | |||
| FILES ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/constants.h | |||
| ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/transforms.h | |||
| ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision.h | |||
| ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_lite.h | |||
| ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_ascend.h | |||
| ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/execute.h | |||
| DESTINATION ${INSTALL_BASE_DIR}/include/dataset | |||
| COMPONENT mindspore | |||
| ) | |||
| ## config files | |||
| install( | |||
| FILES ${CMAKE_SOURCE_DIR}/config/op_info.config | |||
| DESTINATION ${INSTALL_CFG_DIR} | |||
| COMPONENT mindspore | |||
| ) | |||
| @@ -1,344 +0,0 @@ | |||
| include(CMakePackageConfigHelpers) | |||
| set(RUNTIME_PKG_NAME ${MAIN_DIR}-${RUNTIME_COMPONENT_NAME}) | |||
| set(CODEGEN_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/codegen) | |||
| set(CONVERTER_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/converter) | |||
| set(CROPPER_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/cropper) | |||
| if(SUPPORT_TRAIN) | |||
| set(RUNTIME_DIR ${RUNTIME_PKG_NAME}/train) | |||
| set(RUNTIME_INC_DIR ${RUNTIME_PKG_NAME}/train/include) | |||
| set(RUNTIME_LIB_DIR ${RUNTIME_PKG_NAME}/train/lib) | |||
| set(MIND_DATA_INC_DIR ${RUNTIME_PKG_NAME}/train/include/dataset) | |||
| set(TURBO_DIR ${RUNTIME_PKG_NAME}/train/third_party/libjpeg-turbo) | |||
| set(MINDSPORE_LITE_LIB_NAME libmindspore-lite-train) | |||
| set(BENCHMARK_NAME benchmark_train) | |||
| set(BENCHMARK_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/benchmark_train) | |||
| else() | |||
| set(RUNTIME_DIR ${RUNTIME_PKG_NAME}/inference) | |||
| set(RUNTIME_INC_DIR ${RUNTIME_PKG_NAME}/inference/include) | |||
| set(RUNTIME_LIB_DIR ${RUNTIME_PKG_NAME}/inference/lib) | |||
| set(MIND_DATA_INC_DIR ${RUNTIME_PKG_NAME}/inference/include/dataset) | |||
| set(TURBO_DIR ${RUNTIME_PKG_NAME}/inference/third_party/libjpeg-turbo) | |||
| set(MINDSPORE_LITE_LIB_NAME libmindspore-lite) | |||
| set(BENCHMARK_NAME benchmark) | |||
| set(BENCHMARK_ROOT_DIR ${RUNTIME_PKG_NAME}/tools/benchmark) | |||
| endif() | |||
| if(BUILD_MINDDATA STREQUAL "full") | |||
| install(FILES | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/constants.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/data_helper.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/execute.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/iterator.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/samplers.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/transforms.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_lite.h | |||
| ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/liteapi/include/datasets.h | |||
| DESTINATION ${MIND_DATA_INC_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| if(PLATFORM_ARM64) | |||
| file(GLOB JPEGTURBO_LIB_LIST ${jpeg_turbo_LIBPATH}/*.so) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so | |||
| DESTINATION ${RUNTIME_LIB_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${JPEGTURBO_LIB_LIST} DESTINATION ${TURBO_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| elseif(PLATFORM_ARM32) | |||
| file(GLOB JPEGTURBO_LIB_LIST ${jpeg_turbo_LIBPATH}/*.so) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION | |||
| ${RUNTIME_LIB_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${JPEGTURBO_LIB_LIST} DESTINATION ${TURBO_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| else() | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION | |||
| ${RUNTIME_LIB_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${jpeg_turbo_LIBPATH}/libjpeg.so.62.3.0 DESTINATION ${TURBO_DIR}/lib | |||
| RENAME libjpeg.so.62 COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${jpeg_turbo_LIBPATH}/libturbojpeg.so.0.2.0 DESTINATION ${TURBO_DIR}/lib | |||
| RENAME libturbojpeg.so.0 COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| endif() | |||
| if(BUILD_MINDDATA STREQUAL "wrapper") | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/ DESTINATION ${MIND_DATA_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "vision.h" EXCLUDE) | |||
| if(PLATFORM_ARM64) | |||
| file(GLOB JPEGTURBO_LIB_LIST ${jpeg_turbo_LIBPATH}/*.so) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${JPEGTURBO_LIB_LIST} DESTINATION ${TURBO_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| elseif(PLATFORM_ARM32) | |||
| file(GLOB JPEGTURBO_LIB_LIST ${jpeg_turbo_LIBPATH}/*.so) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${JPEGTURBO_LIB_LIST} DESTINATION ${TURBO_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| else() | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${jpeg_turbo_LIBPATH}/libjpeg.so.62.3.0 DESTINATION ${TURBO_DIR}/lib RENAME libjpeg.so.62 | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${jpeg_turbo_LIBPATH}/libturbojpeg.so.0.2.0 DESTINATION ${TURBO_DIR}/lib RENAME libturbojpeg.so.0 | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| endif() | |||
| if(BUILD_MINDDATA STREQUAL "lite") | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/include/ DESTINATION ${MIND_DATA_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| if(PLATFORM_ARM64) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/third_party/libjpeg-turbo/lib/libjpeg.so DESTINATION ${TURBO_DIR}/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/third_party/libjpeg-turbo/lib/libturbojpeg.so DESTINATION ${TURBO_DIR}/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| elseif(PLATFORM_ARM32) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/third_party/libjpeg-turbo/lib/libjpeg.so DESTINATION ${TURBO_DIR}/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/third_party/libjpeg-turbo/lib/libturbojpeg.so DESTINATION ${TURBO_DIR}/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| else() | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/third_party/libjpeg-turbo/lib/libjpeg.so.62.3.0 | |||
| DESTINATION ${TURBO_DIR}/lib RENAME libjpeg.so.62 COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/third_party/libjpeg-turbo/lib/libturbojpeg.so.0.2.0 | |||
| DESTINATION ${TURBO_DIR}/lib RENAME libturbojpeg.so.0 COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| endif() | |||
| if(BUILD_MINDDATA STREQUAL "lite_cv") | |||
| if(PLATFORM_ARM64) | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/kernels/image/lite_cv | |||
| DESTINATION ${MIND_DATA_INC_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so | |||
| DESTINATION ${RUNTIME_LIB_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| elseif(PLATFORM_ARM32) | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/kernels/image/lite_cv | |||
| DESTINATION ${MIND_DATA_INC_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| else() | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/ccsrc/minddata/dataset/kernels/image/lite_cv | |||
| DESTINATION ${MIND_DATA_INC_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/minddata/libminddata-lite.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| endif() | |||
| if(WIN32) | |||
| install(FILES ${TOP_DIR}/build/.commit_id DESTINATION ${RUNTIME_PKG_NAME} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| else() | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/.commit_id DESTINATION ${RUNTIME_PKG_NAME} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| if(PLATFORM_ARM64) | |||
| if(SUPPORT_NPU) | |||
| install(FILES ${DDK_LIB_PATH}/libhiai.so DESTINATION ${RUNTIME_DIR}/third_party/hiai_ddk/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${DDK_LIB_PATH}/libhiai_ir.so DESTINATION ${RUNTIME_DIR}/third_party/hiai_ddk/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${DDK_LIB_PATH}/libhiai_ir_build.so DESTINATION ${RUNTIME_DIR}/third_party/hiai_ddk/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| if(SUPPORT_TRAIN) | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| else() | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "train*" EXCLUDE) | |||
| endif() | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/src/${MINDSPORE_LITE_LIB_NAME}.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/src/${MINDSPORE_LITE_LIB_NAME}.a DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/core/ir/dtype/type_id.h DESTINATION ${RUNTIME_INC_DIR}/ir/dtype | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${TOP_DIR}/include/api/ DESTINATION ${RUNTIME_INC_DIR}/api | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "ops*" EXCLUDE) | |||
| file(GLOB NNACL_FILES GLOB ${NNACL_DIR}/*.h) | |||
| install(FILES ${NNACL_FILES} DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${NNACL_DIR}/base DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/int8 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/fp32 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/intrinsics DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/micro/coder/wrapper DESTINATION ${CODEGEN_ROOT_DIR}/include | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(TARGETS wrapper ARCHIVE DESTINATION ${CODEGEN_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| if(ENABLE_TOOLS) | |||
| install(TARGETS ${BENCHMARK_NAME} RUNTIME DESTINATION ${BENCHMARK_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| elseif(PLATFORM_ARM32) | |||
| if(SUPPORT_TRAIN) | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| else() | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "train*" EXCLUDE) | |||
| endif() | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/src/${MINDSPORE_LITE_LIB_NAME}.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/src/${MINDSPORE_LITE_LIB_NAME}.a DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/core/ir/dtype/type_id.h DESTINATION ${RUNTIME_INC_DIR}/ir/dtype | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${TOP_DIR}/include/api/ DESTINATION ${RUNTIME_INC_DIR}/api | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "ops*" EXCLUDE) | |||
| file(GLOB NNACL_FILES GLOB ${NNACL_DIR}/*.h) | |||
| install(FILES ${NNACL_FILES} DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${NNACL_DIR}/base DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/int8 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/fp32 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/intrinsics DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/micro/coder/wrapper DESTINATION ${CODEGEN_ROOT_DIR}/include | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(TARGETS wrapper ARCHIVE DESTINATION ${CODEGEN_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| if(ENABLE_TOOLS) | |||
| install(TARGETS ${BENCHMARK_NAME} RUNTIME DESTINATION ${BENCHMARK_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| elseif(WIN32) | |||
| get_filename_component(CXX_DIR ${CMAKE_CXX_COMPILER} PATH) | |||
| file(GLOB LIB_LIST ${CXX_DIR}/libstdc++-6.dll ${CXX_DIR}/libwinpthread-1.dll | |||
| ${CXX_DIR}/libssp-0.dll ${CXX_DIR}/libgcc_s_*-1.dll) | |||
| if(ENABLE_CONVERTER) | |||
| install(TARGETS converter_lite RUNTIME DESTINATION ${CONVERTER_ROOT_DIR}/converter | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${LIB_LIST} DESTINATION ${CONVERTER_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/build/mindspore/tools/converter/mindspore_core/gvar/libmindspore_gvar.dll | |||
| DESTINATION ${CONVERTER_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${glog_LIBPATH}/../bin/libglog.dll DESTINATION ${CONVERTER_ROOT_DIR}/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${NNACL_FILES} DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${NNACL_DIR}/base DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/int8 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/fp32 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/intrinsics DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/micro/coder/wrapper DESTINATION ${CODEGEN_ROOT_DIR}/include | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(TARGETS wrapper ARCHIVE DESTINATION ${CODEGEN_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| set(MICRO_CMSIS_DIR ${CMAKE_BINARY_DIR}/cmsis/CMSIS) | |||
| install(DIRECTORY ${MICRO_CMSIS_DIR}/Core/Include DESTINATION ${CODEGEN_ROOT_DIR}/third_party/include/CMSIS/Core | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${MICRO_CMSIS_DIR}/DSP/Include DESTINATION ${CODEGEN_ROOT_DIR}/third_party/include/CMSIS/DSP | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${MICRO_CMSIS_DIR}/NN/Include DESTINATION ${CODEGEN_ROOT_DIR}/third_party/include/CMSIS/NN | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(TARGETS cmsis_nn ARCHIVE DESTINATION ${CODEGEN_ROOT_DIR}/third_party/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(TARGETS codegen RUNTIME DESTINATION ${CODEGEN_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| if(ENABLE_TOOLS) | |||
| install(TARGETS ${BENCHMARK_NAME} RUNTIME DESTINATION ${BENCHMARK_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| install(FILES ${LIB_LIST} DESTINATION ${RUNTIME_LIB_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${flatbuffers_INC} DESTINATION ${RUNTIME_INC_DIR}/third_party/ | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| if(SUPPORT_TRAIN) | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| else() | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "train*" EXCLUDE) | |||
| endif() | |||
| install(FILES ${TOP_DIR}/mindspore/core/ir/dtype/type_id.h DESTINATION ${RUNTIME_INC_DIR}/ir/dtype | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${TOP_DIR}/include/api/ DESTINATION ${RUNTIME_INC_DIR}/api | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "ops*" EXCLUDE) | |||
| install(FILES ${TOP_DIR}/build/mindspore/src/${MINDSPORE_LITE_LIB_NAME}.a DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/build/mindspore/src/${MINDSPORE_LITE_LIB_NAME}.dll.a DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/build/mindspore/src/${MINDSPORE_LITE_LIB_NAME}.dll DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| else() | |||
| if(SUPPORT_TRAIN) | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| else() | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/include/ DESTINATION ${RUNTIME_INC_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "train*" EXCLUDE) | |||
| endif() | |||
| install(FILES ${TOP_DIR}/mindspore/core/ir/dtype/type_id.h DESTINATION ${RUNTIME_INC_DIR}/ir/dtype | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${TOP_DIR}/include/api/ DESTINATION ${RUNTIME_INC_DIR}/api | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h" PATTERN "ops*" EXCLUDE) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/src/${MINDSPORE_LITE_LIB_NAME}.so DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/src/${MINDSPORE_LITE_LIB_NAME}.a DESTINATION ${RUNTIME_LIB_DIR} | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| if(ENABLE_CONVERTER) | |||
| install(TARGETS converter_lite RUNTIME DESTINATION ${CONVERTER_ROOT_DIR}/converter | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/tools/converter/mindspore_core/gvar/libmindspore_gvar.so | |||
| DESTINATION ${CONVERTER_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${glog_LIBPATH}/libglog.so.0.4.0 | |||
| DESTINATION ${CONVERTER_ROOT_DIR}/third_party/glog/lib RENAME libglog.so.0 | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| file(GLOB NNACL_FILES GLOB ${NNACL_DIR}/*.h) | |||
| install(FILES ${NNACL_FILES} DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(DIRECTORY ${NNACL_DIR}/base DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/int8 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/fp32 DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${NNACL_DIR}/intrinsics DESTINATION ${CODEGEN_ROOT_DIR}/include/nnacl | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${TOP_DIR}/mindspore/lite/micro/coder/wrapper DESTINATION ${CODEGEN_ROOT_DIR}/include | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(TARGETS wrapper ARCHIVE DESTINATION ${CODEGEN_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| set(MICRO_CMSIS_DIR ${CMAKE_BINARY_DIR}/cmsis/CMSIS) | |||
| install(DIRECTORY ${MICRO_CMSIS_DIR}/Core/Include DESTINATION ${CODEGEN_ROOT_DIR}/third_party/include/CMSIS/Core | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${MICRO_CMSIS_DIR}/DSP/Include DESTINATION ${CODEGEN_ROOT_DIR}/third_party/include/CMSIS/DSP | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(DIRECTORY ${MICRO_CMSIS_DIR}/NN/Include DESTINATION ${CODEGEN_ROOT_DIR}/third_party/include/CMSIS/NN | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h") | |||
| install(TARGETS cmsis_nn ARCHIVE DESTINATION ${CODEGEN_ROOT_DIR}/third_party/lib | |||
| COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(TARGETS codegen RUNTIME DESTINATION ${CODEGEN_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| if(ENABLE_TOOLS) | |||
| install(TARGETS ${BENCHMARK_NAME} RUNTIME DESTINATION ${BENCHMARK_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(TARGETS cropper RUNTIME DESTINATION ${CROPPER_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/tools/cropper/cropper_mapping_cpu.cfg | |||
| DESTINATION ${CROPPER_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/tools/cropper/cropper_mapping_gpu.cfg | |||
| DESTINATION ${CROPPER_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| install(FILES ${TOP_DIR}/mindspore/lite/build/tools/cropper/cropper_mapping_npu.cfg | |||
| DESTINATION ${CROPPER_ROOT_DIR} COMPONENT ${RUNTIME_COMPONENT_NAME}) | |||
| endif() | |||
| endif() | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| set(CPACK_GENERATOR ZIP) | |||
| else() | |||
| set(CPACK_GENERATOR TGZ) | |||
| endif() | |||
| set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) | |||
| set(CPACK_COMPONENTS_ALL ${RUNTIME_COMPONENT_NAME}) | |||
| set(CPACK_PACKAGE_FILE_NAME ${MAIN_DIR}) | |||
| if(WIN32) | |||
| set(CPACK_PACKAGE_DIRECTORY ${TOP_DIR}/output) | |||
| else() | |||
| set(CPACK_PACKAGE_DIRECTORY ${TOP_DIR}/output/tmp) | |||
| endif() | |||
| set(CPACK_PACKAGE_CHECKSUM SHA256) | |||
| include(CPack) | |||
| @@ -1,106 +0,0 @@ | |||
| # find exec | |||
| find_package(Python3 COMPONENTS Interpreter) | |||
| if(NOT Python3_FOUND) | |||
| message(FATAL_ERROR "No python3 found.") | |||
| endif() | |||
| set(PYTHON ${Python3_EXECUTABLE}) | |||
| set(PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}) | |||
| if(NOT (PYTHON_VERSION MATCHES "3.9" OR PYTHON_VERSION MATCHES "3.8" OR PYTHON_VERSION MATCHES "3.7")) | |||
| message(FATAL_ERROR "FIND PYTHON VERSION ${PYTHON_VERSION} BUT CAN NOT MATCH PYTHON VERSION 3.9 OR 3.8 OR 3.7") | |||
| endif() | |||
| find_package(Git) | |||
| if(NOT GIT_FOUND) | |||
| message("No git found.") | |||
| return() | |||
| endif() | |||
| set(GIT ${GIT_EXECUTABLE}) | |||
| # set path | |||
| set(MS_ROOT_DIR ${CPACK_PACKAGE_DIRECTORY}/../../) | |||
| set(MS_PACK_ROOT_DIR ${MS_ROOT_DIR}/build/package) | |||
| # set package file name | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Linux") | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(PY_TAGS "cp39-cp39") | |||
| elseif(PYTHON_VERSION MATCHES "3.8") | |||
| set(PY_TAGS "cp38-cp38") | |||
| elseif(PYTHON_VERSION MATCHES "3.7") | |||
| set(PY_TAGS "cp37-cp37m") | |||
| else() | |||
| message("Could not find 'Python 3.9' OR 'Python 3.8' or 'Python 3.7'") | |||
| return() | |||
| endif() | |||
| string(TOLOWER linux_${CMAKE_HOST_SYSTEM_PROCESSOR} PLATFORM_TAG) | |||
| elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(PY_TAGS "py39-none") | |||
| elseif(PYTHON_VERSION MATCHES "3.8") | |||
| set(PY_TAGS "py38-none") | |||
| elseif(PYTHON_VERSION MATCHES "3.7") | |||
| set(PY_TAGS "py37-none") | |||
| else() | |||
| message("Could not find 'Python 3.9' OR 'Python 3.8' or 'Python 3.7'") | |||
| return() | |||
| endif() | |||
| set(PLATFORM_TAG "any") | |||
| elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| if(PYTHON_VERSION MATCHES "3.9") | |||
| set(PY_TAGS "cp39-cp39") | |||
| elseif(PYTHON_VERSION MATCHES "3.8") | |||
| set(PY_TAGS "cp38-cp38") | |||
| elseif(PYTHON_VERSION MATCHES "3.7") | |||
| set(PY_TAGS "cp37-cp37m") | |||
| else() | |||
| message("Could not find 'Python 3.9' OR 'Python 3.8' or 'Python 3.7'") | |||
| return() | |||
| endif() | |||
| set(PLATFORM_TAG "win_amd64") | |||
| else() | |||
| message(FATAL_ERROR "other platform: ${CMAKE_SYSTEM_NAME}") | |||
| endif() | |||
| # get git commit id | |||
| set(GIT_COMMIT_ID "") | |||
| execute_process( | |||
| COMMAND ${GIT} log --format='[sha1]:%h,[branch]:%d' --abbrev=8 -1 | |||
| OUTPUT_VARIABLE GIT_COMMIT_ID | |||
| WORKING_DIRECTORY ${MS_ROOT_DIR} | |||
| ERROR_QUIET) | |||
| string(REPLACE " " "" GIT_COMMIT_ID ${GIT_COMMIT_ID}) | |||
| set(ENV{BACKEND_POLICY} ${CPACK_MS_BACKEND}) | |||
| set(ENV{BACKEND_TARGET} ${CPACK_MS_TARGET}) | |||
| set(ENV{MS_PACKAGE_NAME} ${CPACK_MS_PACKAGE_NAME}) | |||
| set(ENV{COMMIT_ID} ${GIT_COMMIT_ID}) | |||
| execute_process( | |||
| COMMAND ${PYTHON} ${MS_ROOT_DIR}/setup.py "bdist_wheel" | |||
| WORKING_DIRECTORY ${MS_PACK_ROOT_DIR} | |||
| ) | |||
| # finally | |||
| set(PACKAGE_NAME ${CPACK_MS_PACKAGE_NAME}) | |||
| if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows") | |||
| string(REPLACE "-" "_" PACKAGE_NAME ${PACKAGE_NAME}) | |||
| execute_process( | |||
| COMMAND chmod -R 700 ${MS_PACK_ROOT_DIR}/mindspore/ | |||
| COMMAND chmod -R 700 ${MS_PACK_ROOT_DIR}/${PACKAGE_NAME}.egg-info/ | |||
| ) | |||
| endif() | |||
| file(GLOB WHL_FILE ${MS_PACK_ROOT_DIR}/dist/*.whl) | |||
| get_filename_component(ORIGIN_FILE_NAME ${WHL_FILE} NAME) | |||
| string(REPLACE "-" ";" ORIGIN_FILE_NAME ${ORIGIN_FILE_NAME}) | |||
| list(GET ORIGIN_FILE_NAME 1 VERSION) | |||
| set(NEW_FILE_NAME ${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}.whl) | |||
| file(RENAME ${WHL_FILE} ${MS_PACK_ROOT_DIR}/${NEW_FILE_NAME}) | |||
| file(REMOVE_RECURSE ${MS_ROOT_DIR}/output) | |||
| file(MAKE_DIRECTORY ${MS_ROOT_DIR}/output) | |||
| file(COPY ${MS_PACK_ROOT_DIR}/${NEW_FILE_NAME} DESTINATION ${MS_ROOT_DIR}/output/) | |||
| file(SHA256 ${MS_ROOT_DIR}/output/${NEW_FILE_NAME} SHA256_VAR) | |||
| file(WRITE ${MS_ROOT_DIR}/output/${NEW_FILE_NAME}.sha256 ${SHA256_VAR} " " ${NEW_FILE_NAME}) | |||
| @@ -1,10 +1,6 @@ | |||
| include(FetchContent) | |||
| set(FETCHCONTENT_QUIET OFF) | |||
| if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.17.0) | |||
| set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES}) | |||
| endif() | |||
| function(mindspore_add_submodule_obj des_submodule_objs sub_dir submodule_name_obj) | |||
| add_subdirectory(${sub_dir}) | |||
| @@ -20,45 +16,25 @@ function(mindspore_add_submodule_obj des_submodule_objs sub_dir submodule_name_o | |||
| endfunction() | |||
| if(DEFINED ENV{MSLIBS_CACHE_PATH}) | |||
| set(_MS_LIB_CACHE $ENV{MSLIBS_CACHE_PATH}) | |||
| else() | |||
| set(_MS_LIB_CACHE ${CMAKE_BINARY_DIR}/.mslib) | |||
| endif() | |||
| message("MS LIBS CACHE PATH: ${_MS_LIB_CACHE}") | |||
| if(NOT EXISTS ${_MS_LIB_CACHE}) | |||
| get_filename_component(_MS_LIB_CACHE ~/.mslib REALPATH) | |||
| if (NOT EXISTS ${_MS_LIB_CACHE}) | |||
| file(MAKE_DIRECTORY ${_MS_LIB_CACHE}) | |||
| endif() | |||
| if(DEFINED ENV{MSLIBS_SERVER} AND NOT ENABLE_GITEE) | |||
| endif () | |||
| # set(FETCHCONTENT_BASE_DIR ${_MS_LIB_CACHE}) | |||
| # set(CMAKE_PREFIX_PATH ${_MS_LIB_CACHE}) | |||
| if (DEFINED ENV{MSLIBS_SERVER}) | |||
| set(LOCAL_LIBS_SERVER $ENV{MSLIBS_SERVER}) | |||
| message("LOCAL_LIBS_SERVER: ${LOCAL_LIBS_SERVER}") | |||
| endif() | |||
| include(ProcessorCount) | |||
| ProcessorCount(N) | |||
| if(JOBS) | |||
| set(THNUM ${JOBS}) | |||
| else() | |||
| set(JOBS 8) | |||
| if(${JOBS} GREATER ${N}) | |||
| set(THNUM ${N}) | |||
| else() | |||
| set(THNUM ${JOBS}) | |||
| endif() | |||
| endif() | |||
| message("set make thread num: ${THNUM}") | |||
| endif () | |||
| if(LOCAL_LIBS_SERVER) | |||
| if(NOT ENV{no_proxy}) | |||
| if (NOT ENV{no_proxy}) | |||
| set(ENV{no_proxy} "${LOCAL_LIBS_SERVER}") | |||
| else() | |||
| string(FIND $ENV{no_proxy} ${LOCAL_LIBS_SERVER} IP_POS) | |||
| if(${IP_POS} EQUAL -1) | |||
| if (${IP_POS} EQUAL -1) | |||
| set(ENV{no_proxy} "$ENV{no_proxy},${LOCAL_LIBS_SERVER}") | |||
| endif() | |||
| endif() | |||
| endif () | |||
| endif () | |||
| endif() | |||
| function(__download_pkg pkg_name pkg_url pkg_md5) | |||
| @@ -82,32 +58,7 @@ function(__download_pkg pkg_name pkg_url pkg_md5) | |||
| endfunction() | |||
| function(__download_pkg_with_git pkg_name pkg_url pkg_git_commit pkg_md5) | |||
| if(LOCAL_LIBS_SERVER) | |||
| set(pkg_url "http://${LOCAL_LIBS_SERVER}:8081/libs/${pkg_name}/${pkg_git_commit}") | |||
| FetchContent_Declare( | |||
| ${pkg_name} | |||
| URL ${pkg_url} | |||
| URL_HASH MD5=${pkg_md5} | |||
| ) | |||
| else() | |||
| FetchContent_Declare( | |||
| ${pkg_name} | |||
| GIT_REPOSITORY ${pkg_url} | |||
| GIT_TAG ${pkg_git_commit}) | |||
| endif() | |||
| FetchContent_GetProperties(${pkg_name}) | |||
| message("download: ${${pkg_name}_SOURCE_DIR} , ${pkg_name} , ${pkg_url}") | |||
| if(NOT ${pkg_name}_POPULATED) | |||
| FetchContent_Populate(${pkg_name}) | |||
| set(${pkg_name}_SOURCE_DIR ${${pkg_name}_SOURCE_DIR} PARENT_SCOPE) | |||
| endif() | |||
| endfunction() | |||
| function(__find_pkg_then_add_target pkg_name pkg_exe lib_path) | |||
| function(__find_pkg_then_add_target pkg_name pkg_exe) | |||
| unset(${pkg_name}_LIBS) | |||
| @@ -128,43 +79,35 @@ function(__find_pkg_then_add_target pkg_name pkg_exe lib_path) | |||
| foreach(_LIB_NAME ${ARGN}) | |||
| set(_LIB_SEARCH_NAME ${_LIB_NAME}) | |||
| set(_LIB_TYPE SHARED) | |||
| if(${pkg_name}_USE_STATIC_LIBS) | |||
| if (${pkg_name}_USE_STATIC_LIBS) | |||
| set(_LIB_SEARCH_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}${_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}") | |||
| set(_LIB_TYPE STATIC) | |||
| endif() | |||
| endif () | |||
| set(${_LIB_NAME}_LIB ${_LIB_NAME}_LIB-NOTFOUND) | |||
| find_library(${_LIB_NAME}_LIB ${_LIB_SEARCH_NAME} PATHS ${${pkg_name}_BASE_DIR}/${lib_path} NO_DEFAULT_PATH) | |||
| find_library(${_LIB_NAME}_LIB ${_LIB_SEARCH_NAME} PATHS ${${pkg_name}_BASE_DIR}/lib NO_DEFAULT_PATH) | |||
| if(NOT ${_LIB_NAME}_LIB) | |||
| return() | |||
| endif() | |||
| add_library(${pkg_name}::${_LIB_NAME} ${_LIB_TYPE} IMPORTED GLOBAL) | |||
| if(WIN32 AND ${_LIB_TYPE} STREQUAL "SHARED") | |||
| set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES IMPORTED_IMPLIB_RELEASE ${${_LIB_NAME}_LIB}) | |||
| else() | |||
| set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES IMPORTED_LOCATION ${${_LIB_NAME}_LIB}) | |||
| endif() | |||
| if(EXISTS ${${pkg_name}_BASE_DIR}/include) | |||
| set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES | |||
| INTERFACE_INCLUDE_DIRECTORIES "${${pkg_name}_BASE_DIR}/include") | |||
| endif() | |||
| set_target_properties(${pkg_name}::${_LIB_NAME} PROPERTIES | |||
| INTERFACE_INCLUDE_DIRECTORIES "${${pkg_name}_BASE_DIR}/include" | |||
| IMPORTED_LOCATION ${${_LIB_NAME}_LIB} | |||
| ) | |||
| list(APPEND ${pkg_name}_LIBS ${pkg_name}::${_LIB_NAME}) | |||
| message("found ${${_LIB_NAME}_LIB}") | |||
| STRING(REGEX REPLACE "(.+)/(.+)" "\\1" LIBPATH ${${_LIB_NAME}_LIB}) | |||
| STRING( REGEX REPLACE "(.+)/(.+)" "\\1" LIBPATH ${${_LIB_NAME}_LIB}) | |||
| set(${pkg_name}_LIBPATH ${LIBPATH} CACHE STRING INTERNAL) | |||
| endforeach() | |||
| endforeach(_LIB_NAME) | |||
| set(${pkg_name}_LIBS ${${pkg_name}_LIBS} PARENT_SCOPE) | |||
| endfunction() | |||
| function(__exec_cmd) | |||
| set(options) | |||
| set(options ) | |||
| set(oneValueArgs WORKING_DIRECTORY) | |||
| set(multiValueArgs COMMAND) | |||
| cmake_parse_arguments(EXEC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) | |||
| cmake_parse_arguments(EXEC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) | |||
| execute_process(COMMAND ${EXEC_COMMAND} | |||
| WORKING_DIRECTORY ${EXEC_WORKING_DIRECTORY} | |||
| @@ -176,57 +119,47 @@ endfunction() | |||
| function(__check_patches pkg_patches) | |||
| # check patches | |||
| if(PKG_PATCHES) | |||
| if (PKG_PATCHES) | |||
| file(TOUCH ${_MS_LIB_CACHE}/${pkg_name}_patch.md5) | |||
| file(READ ${_MS_LIB_CACHE}/${pkg_name}_patch.md5 ${pkg_name}_PATCHES_MD5) | |||
| message("patches md5:${${pkg_name}_PATCHES_MD5}") | |||
| set(${pkg_name}_PATCHES_NEW_MD5) | |||
| set(${pkg_name}_PATCHES_NEW_MD5 ) | |||
| foreach(_PATCH ${PKG_PATCHES}) | |||
| file(MD5 ${_PATCH} _PF_MD5) | |||
| set(${pkg_name}_PATCHES_NEW_MD5 "${${pkg_name}_PATCHES_NEW_MD5},${_PF_MD5}") | |||
| endforeach() | |||
| endforeach(_PATCH) | |||
| if(NOT ${pkg_name}_PATCHES_MD5 STREQUAL ${pkg_name}_PATCHES_NEW_MD5) | |||
| if (NOT ${pkg_name}_PATCHES_MD5 STREQUAL ${pkg_name}_PATCHES_NEW_MD5) | |||
| set(${pkg_name}_PATCHES ${PKG_PATCHES}) | |||
| file(REMOVE_RECURSE "${_MS_LIB_CACHE}/${pkg_name}-subbuild") | |||
| file(WRITE ${_MS_LIB_CACHE}/${pkg_name}_patch.md5 ${${pkg_name}_PATCHES_NEW_MD5}) | |||
| message("patches changed : ${${pkg_name}_PATCHES_NEW_MD5}") | |||
| endif() | |||
| endif() | |||
| endif () | |||
| endif () | |||
| endfunction() | |||
| set(MS_FIND_NO_DEFAULT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH | |||
| NO_CMAKE_BUILDS_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH | |||
| NO_CMAKE_SYSTEM_PACKAGE_REGISTRY) | |||
| set(MS_FIND_NO_DEFAULT_PATH ${MS_FIND_NO_DEFAULT_PATH} PARENT_SCOPE) | |||
| function(mindspore_add_pkg pkg_name) | |||
| set(options) | |||
| set(oneValueArgs URL MD5 GIT_REPOSITORY GIT_TAG VER EXE DIR HEAD_ONLY CMAKE_PATH RELEASE LIB_PATH CUSTOM_CMAKE) | |||
| set(multiValueArgs | |||
| CMAKE_OPTION LIBS PRE_CONFIGURE_COMMAND CONFIGURE_COMMAND BUILD_OPTION INSTALL_INCS | |||
| INSTALL_LIBS PATCHES SUBMODULES SOURCEMODULES ONLY_MAKE ONLY_MAKE_INCS ONLY_MAKE_LIBS) | |||
| cmake_parse_arguments(PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) | |||
| if(NOT PKG_LIB_PATH) | |||
| set(PKG_LIB_PATH lib) | |||
| endif() | |||
| function(mindspore_add_pkg pkg_name ) | |||
| if(NOT PKG_EXE) | |||
| set(PKG_EXE 0) | |||
| endif() | |||
| set(options ) | |||
| set(oneValueArgs URL MD5 VER EXE DIR HEAD_ONLY) | |||
| set(multiValueArgs CMAKE_OPTION LIBS PRE_CONFIGURE_COMMAND CONFIGURE_COMMAND BUILD_OPTION INSTALL_INCS INSTALL_LIBS PATCHES) | |||
| cmake_parse_arguments(PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) | |||
| set(__FIND_PKG_NAME ${pkg_name}) | |||
| string(TOLOWER ${pkg_name} pkg_name) | |||
| message("pkg name:${__FIND_PKG_NAME},${pkg_name}") | |||
| set(${pkg_name}_PATCHES_HASH) | |||
| set(${pkg_name}_PATCHES_HASH ) | |||
| foreach(_PATCH ${PKG_PATCHES}) | |||
| file(MD5 ${_PATCH} _PF_MD5) | |||
| set(${pkg_name}_PATCHES_HASH "${${pkg_name}_PATCHES_HASH},${_PF_MD5}") | |||
| endforeach() | |||
| endforeach(_PATCH) | |||
| # check options | |||
| set(${pkg_name}_CONFIG_TXT | |||
| @@ -245,17 +178,18 @@ function(mindspore_add_pkg pkg_name) | |||
| set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY} PARENT_SCOPE) | |||
| add_library(${pkg_name} INTERFACE) | |||
| target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC}) | |||
| if(${PKG_RELEASE}) | |||
| __find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS}) | |||
| endif() | |||
| return() | |||
| endif () | |||
| if(NOT PKG_EXE) | |||
| set(PKG_EXE 0) | |||
| endif() | |||
| set(${__FIND_PKG_NAME}_ROOT ${${pkg_name}_BASE_DIR}) | |||
| set(${__FIND_PKG_NAME}_ROOT ${${pkg_name}_BASE_DIR} PARENT_SCOPE) | |||
| if(PKG_LIBS) | |||
| __find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS}) | |||
| if (PKG_LIBS) | |||
| __find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIBS}) | |||
| if(${pkg_name}_LIBS) | |||
| set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE) | |||
| message("Found libs: ${${pkg_name}_LIBS}") | |||
| @@ -263,167 +197,124 @@ function(mindspore_add_pkg pkg_name) | |||
| endif() | |||
| elseif(NOT PKG_HEAD_ONLY) | |||
| find_package(${__FIND_PKG_NAME} ${PKG_VER} ${MS_FIND_NO_DEFAULT_PATH}) | |||
| if(${__FIND_PKG_NAME}_FOUND) | |||
| if (${__FIND_PKG_NAME}_FOUND) | |||
| set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE) | |||
| message("Found pkg: ${__FIND_PKG_NAME}") | |||
| return() | |||
| endif() | |||
| endif() | |||
| endif () | |||
| endif () | |||
| if(NOT PKG_DIR) | |||
| if(PKG_GIT_REPOSITORY) | |||
| __download_pkg_with_git(${pkg_name} ${PKG_GIT_REPOSITORY} ${PKG_GIT_TAG} ${PKG_MD5}) | |||
| else() | |||
| __download_pkg(${pkg_name} ${PKG_URL} ${PKG_MD5}) | |||
| endif() | |||
| foreach(_SUBMODULE_FILE ${PKG_SUBMODULES}) | |||
| STRING(REGEX REPLACE "(.+)_(.+)" "\\1" _SUBMODEPATH ${_SUBMODULE_FILE}) | |||
| STRING(REGEX REPLACE "(.+)/(.+)" "\\2" _SUBMODENAME ${_SUBMODEPATH}) | |||
| file(GLOB ${pkg_name}_INSTALL_SUBMODULE ${_SUBMODULE_FILE}/*) | |||
| file(COPY ${${pkg_name}_INSTALL_SUBMODULE} DESTINATION ${${pkg_name}_SOURCE_DIR}/3rdparty/${_SUBMODENAME}) | |||
| endforeach() | |||
| if (NOT PKG_DIR) | |||
| __download_pkg(${pkg_name} ${PKG_URL} ${PKG_MD5}) | |||
| else() | |||
| set(${pkg_name}_SOURCE_DIR ${PKG_DIR}) | |||
| endif() | |||
| endif () | |||
| file(WRITE ${${pkg_name}_BASE_DIR}/options.txt ${${pkg_name}_CONFIG_TXT}) | |||
| message("${pkg_name}_SOURCE_DIR : ${${pkg_name}_SOURCE_DIR}") | |||
| foreach(_PATCH_FILE ${PKG_PATCHES}) | |||
| get_filename_component(_PATCH_FILE_NAME ${_PATCH_FILE} NAME) | |||
| set(_LF_PATCH_FILE ${CMAKE_BINARY_DIR}/_ms_patch/${_PATCH_FILE_NAME}) | |||
| configure_file(${_PATCH_FILE} ${_LF_PATCH_FILE} NEWLINE_STYLE LF @ONLY) | |||
| message("patching ${${pkg_name}_SOURCE_DIR} -p1 < ${_LF_PATCH_FILE}") | |||
| execute_process(COMMAND ${Patch_EXECUTABLE} -p1 INPUT_FILE ${_LF_PATCH_FILE} | |||
| message("patching ${${pkg_name}_SOURCE_DIR} -p1 < ${_PATCH_FILE}") | |||
| execute_process(COMMAND patch -p1 INPUT_FILE ${_PATCH_FILE} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR} | |||
| RESULT_VARIABLE Result) | |||
| if(NOT Result EQUAL "0") | |||
| message(FATAL_ERROR "Failed patch: ${_LF_PATCH_FILE}") | |||
| message(FATAL_ERROR "Failed patch: ${_PATCH_FILE}") | |||
| endif() | |||
| endforeach() | |||
| foreach(_SOURCE_DIR ${PKG_SOURCEMODULES}) | |||
| file(GLOB ${pkg_name}_INSTALL_SOURCE ${${pkg_name}_SOURCE_DIR}/${_SOURCE_DIR}/*) | |||
| file(COPY ${${pkg_name}_INSTALL_SOURCE} DESTINATION ${${pkg_name}_BASE_DIR}/${_SOURCE_DIR}/) | |||
| endforeach() | |||
| endforeach(_PATCH_FILE) | |||
| file(LOCK ${${pkg_name}_BASE_DIR} DIRECTORY GUARD FUNCTION RESULT_VARIABLE ${pkg_name}_LOCK_RET TIMEOUT 600) | |||
| if(NOT ${pkg_name}_LOCK_RET EQUAL "0") | |||
| message(FATAL_ERROR "error! when try lock ${${pkg_name}_BASE_DIR} : ${${pkg_name}_LOCK_RET}") | |||
| endif() | |||
| if(PKG_CUSTOM_CMAKE) | |||
| file(GLOB ${pkg_name}_cmake ${PKG_CUSTOM_CMAKE}/CMakeLists.txt) | |||
| file(COPY ${${pkg_name}_cmake} DESTINATION ${${pkg_name}_SOURCE_DIR}) | |||
| endif() | |||
| if(${pkg_name}_SOURCE_DIR) | |||
| if(PKG_HEAD_ONLY) | |||
| if (PKG_HEAD_ONLY) | |||
| file(GLOB ${pkg_name}_SOURCE_SUBDIRS ${${pkg_name}_SOURCE_DIR}/*) | |||
| file(COPY ${${pkg_name}_SOURCE_SUBDIRS} DESTINATION ${${pkg_name}_BASE_DIR}) | |||
| set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/${PKG_HEAD_ONLY} PARENT_SCOPE) | |||
| if(NOT PKG_RELEASE) | |||
| add_library(${pkg_name} INTERFACE) | |||
| target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC}) | |||
| endif() | |||
| add_library(${pkg_name} INTERFACE) | |||
| target_include_directories(${pkg_name} INTERFACE ${${pkg_name}_INC}) | |||
| elseif(PKG_ONLY_MAKE) | |||
| __exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_CXXFLAGS} -j${THNUM} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| set(PKG_INSTALL_INCS ${PKG_ONLY_MAKE_INCS}) | |||
| set(PKG_INSTALL_LIBS ${PKG_ONLY_MAKE_LIBS}) | |||
| file(GLOB ${pkg_name}_INSTALL_INCS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_INCS}) | |||
| file(GLOB ${pkg_name}_INSTALL_LIBS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_LIBS}) | |||
| file(COPY ${${pkg_name}_INSTALL_INCS} DESTINATION ${${pkg_name}_BASE_DIR}/include) | |||
| file(COPY ${${pkg_name}_INSTALL_LIBS} DESTINATION ${${pkg_name}_BASE_DIR}/lib) | |||
| elseif(PKG_CMAKE_OPTION) | |||
| elseif (PKG_CMAKE_OPTION) | |||
| # in cmake | |||
| file(MAKE_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build) | |||
| if(${pkg_name}_CFLAGS) | |||
| if (${pkg_name}_CFLAGS) | |||
| set(${pkg_name}_CMAKE_CFLAGS "-DCMAKE_C_FLAGS=${${pkg_name}_CFLAGS}") | |||
| endif() | |||
| if(${pkg_name}_CXXFLAGS) | |||
| endif () | |||
| if (${pkg_name}_CXXFLAGS) | |||
| set(${pkg_name}_CMAKE_CXXFLAGS "-DCMAKE_CXX_FLAGS=${${pkg_name}_CXXFLAGS}") | |||
| endif() | |||
| endif () | |||
| if(${pkg_name}_LDFLAGS) | |||
| if(${pkg_name}_USE_STATIC_LIBS) | |||
| if (${pkg_name}_LDFLAGS) | |||
| if (${pkg_name}_USE_STATIC_LIBS) | |||
| #set(${pkg_name}_CMAKE_LDFLAGS "-DCMAKE_STATIC_LINKER_FLAGS=${${pkg_name}_LDFLAGS}") | |||
| else() | |||
| set(${pkg_name}_CMAKE_LDFLAGS "-DCMAKE_SHARED_LINKER_FLAGS=${${pkg_name}_LDFLAGS}") | |||
| endif() | |||
| endif() | |||
| endif () | |||
| endif () | |||
| __exec_cmd(COMMAND ${CMAKE_COMMAND} ${PKG_CMAKE_OPTION} -G ${CMAKE_GENERATOR} | |||
| ${${pkg_name}_CMAKE_CFLAGS} ${${pkg_name}_CMAKE_CXXFLAGS} ${${pkg_name}_CMAKE_LDFLAGS} | |||
| -DCMAKE_INSTALL_PREFIX=${${pkg_name}_BASE_DIR} ${${pkg_name}_SOURCE_DIR}/${PKG_CMAKE_PATH} | |||
| -DCMAKE_INSTALL_PREFIX=${${pkg_name}_BASE_DIR} .. | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build) | |||
| __exec_cmd(COMMAND ${CMAKE_COMMAND} --build . --target install -- -j8 | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build) | |||
| if(APPLE) | |||
| __exec_cmd(COMMAND ${CMAKE_COMMAND} --build . --target install -- | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build) | |||
| else() | |||
| __exec_cmd(COMMAND ${CMAKE_COMMAND} --build . --target install -- -j${THNUM} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}/_build) | |||
| endif() | |||
| else() | |||
| if(${pkg_name}_CFLAGS) | |||
| if (${pkg_name}_CFLAGS) | |||
| set(${pkg_name}_MAKE_CFLAGS "CFLAGS=${${pkg_name}_CFLAGS}") | |||
| endif() | |||
| if(${pkg_name}_CXXFLAGS) | |||
| endif () | |||
| if (${pkg_name}_CXXFLAGS) | |||
| set(${pkg_name}_MAKE_CXXFLAGS "CXXFLAGS=${${pkg_name}_CXXFLAGS}") | |||
| endif() | |||
| if(${pkg_name}_LDFLAGS) | |||
| endif () | |||
| if (${pkg_name}_LDFLAGS) | |||
| set(${pkg_name}_MAKE_LDFLAGS "LDFLAGS=${${pkg_name}_LDFLAGS}") | |||
| endif() | |||
| endif () | |||
| # in configure && make | |||
| if(PKG_PRE_CONFIGURE_COMMAND) | |||
| if (PKG_PRE_CONFIGURE_COMMAND) | |||
| __exec_cmd(COMMAND ${PKG_PRE_CONFIGURE_COMMAND} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| endif() | |||
| endif () | |||
| if(PKG_CONFIGURE_COMMAND) | |||
| if (PKG_CONFIGURE_COMMAND) | |||
| __exec_cmd(COMMAND ${PKG_CONFIGURE_COMMAND} | |||
| ${${pkg_name}_MAKE_CFLAGS} ${${pkg_name}_MAKE_CXXFLAGS} ${${pkg_name}_MAKE_LDFLAGS} | |||
| --prefix=${${pkg_name}_BASE_DIR} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| endif() | |||
| endif () | |||
| set(${pkg_name}_BUILD_OPTION ${PKG_BUILD_OPTION}) | |||
| if(NOT PKG_CONFIGURE_COMMAND) | |||
| if (NOT PKG_CONFIGURE_COMMAND) | |||
| set(${pkg_name}_BUILD_OPTION ${${pkg_name}_BUILD_OPTION} | |||
| ${${pkg_name}_MAKE_CFLAGS} ${${pkg_name}_MAKE_CXXFLAGS} ${${pkg_name}_MAKE_LDFLAGS}) | |||
| endif() | |||
| endif () | |||
| # build | |||
| if(APPLE) | |||
| __exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| else() | |||
| __exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION} -j${THNUM} | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| endif() | |||
| __exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} ${${pkg_name}_BUILD_OPTION} -j8 | |||
| WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| if(PKG_INSTALL_INCS OR PKG_INSTALL_LIBS) | |||
| if (PKG_INSTALL_INCS OR PKG_INSTALL_LIBS) | |||
| file(GLOB ${pkg_name}_INSTALL_INCS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_INCS}) | |||
| file(GLOB ${pkg_name}_INSTALL_LIBS ${${pkg_name}_SOURCE_DIR}/${PKG_INSTALL_LIBS}) | |||
| file(COPY ${${pkg_name}_INSTALL_INCS} DESTINATION ${${pkg_name}_BASE_DIR}/include) | |||
| file(COPY ${${pkg_name}_INSTALL_LIBS} DESTINATION ${${pkg_name}_BASE_DIR}/lib) | |||
| else() | |||
| __exec_cmd(COMMAND ${CMAKE_MAKE_PROGRAM} install WORKING_DIRECTORY ${${pkg_name}_SOURCE_DIR}) | |||
| endif() | |||
| endif() | |||
| endif () | |||
| endif () | |||
| endif() | |||
| if(PKG_LIBS) | |||
| __find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIB_PATH} ${PKG_LIBS}) | |||
| if (PKG_LIBS) | |||
| __find_pkg_then_add_target(${pkg_name} ${PKG_EXE} ${PKG_LIBS}) | |||
| set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE) | |||
| if(NOT ${pkg_name}_LIBS) | |||
| message(FATAL_ERROR "Can not find pkg: ${pkg_name}") | |||
| endif() | |||
| else() | |||
| find_package(${__FIND_PKG_NAME} ${PKG_VER} QUIET ${MS_FIND_NO_DEFAULT_PATH}) | |||
| if(${__FIND_PKG_NAME}_FOUND) | |||
| if (${__FIND_PKG_NAME}_FOUND) | |||
| set(${pkg_name}_INC ${${pkg_name}_BASE_DIR}/include PARENT_SCOPE) | |||
| message("Found pkg: ${${__FIND_PKG_NAME}_LIBRARIES}") | |||
| return() | |||
| endif() | |||
| endif() | |||
| endif () | |||
| endif () | |||
| endfunction() | |||
| @@ -1,19 +0,0 @@ | |||
| { | |||
| "common_dump_settings": { | |||
| "dump_mode": 0, | |||
| "path": "/test", | |||
| "net_name": "ResNet50", | |||
| "iteration": 0, | |||
| "input_output": 2, | |||
| "kernels": ["Default/Conv-op12"], | |||
| "support_device": [0,1,2,3,4,5,6,7] | |||
| }, | |||
| "e2e_dump_settings": { | |||
| "enable": false, | |||
| "trans_flag": false | |||
| }, | |||
| "async_dump_settings": { | |||
| "enable": false, | |||
| "op_debug_mode": 0 | |||
| } | |||
| } | |||
| @@ -0,0 +1,22 @@ | |||
| { | |||
| "DumpSettings": { | |||
| "enable": false, | |||
| "trans_flag": false, | |||
| "path": "/tmp/net/", | |||
| "net_name": "ResNet50", | |||
| "mode": 0, | |||
| "iteration": 0, | |||
| "kernels": ["TensorAdd"] | |||
| }, | |||
| "DumpSettingsSpec": { | |||
| "enable": "true: dump enable false: dump disable", | |||
| "trans_flag": "true: trans to host format,false: not trans format", | |||
| "path": "the dump file folder", | |||
| "net_name": "net name eg:ResNet50", | |||
| "mode": "0: dump all kernels 1: dump kernels in kernels list", | |||
| "iteration": "0: all iteration others: specified iteration ", | |||
| "kernels": "kernel name list need to be dump" | |||
| }, | |||
| "other": {} | |||
| } | |||
| @@ -0,0 +1,22 @@ | |||
| { | |||
| "DumpSettings": { | |||
| "enable": false, | |||
| "trans_flag": false, | |||
| "path": "/tmp/hccllog/0", | |||
| "net_name": "ResNet50", | |||
| "mode": 0, | |||
| "iteration": 0, | |||
| "kernels": ["AllReduce","BiasAddGrad","Conv2DBackpropFilter","SparseSoftmaxCrossEntropyWithLogits"] | |||
| }, | |||
| "DumpSettingsSpec": { | |||
| "enable": "true: dump enable false: dump disable", | |||
| "trans_flag": "true: trans to host format,false: not trans format", | |||
| "path": "the dump file folder", | |||
| "net_name": "net name eg:ResNet50", | |||
| "mode": "0: dump all kernels 1: dump kernels in kernels list", | |||
| "iteration": "0: all iteration others: specified iteration ", | |||
| "kernels": "kernel name list need to be dump" | |||
| }, | |||
| "other": {} | |||
| } | |||
| @@ -0,0 +1,22 @@ | |||
| { | |||
| "DumpSettings": { | |||
| "enable": false, | |||
| "trans_flag": false, | |||
| "path": "/tmp/hccllog/1", | |||
| "net_name": "ResNet50", | |||
| "mode": 0, | |||
| "iteration": 0, | |||
| "kernels": ["AllReduce","BiasAddGrad","Conv2DBackpropFilter","SparseSoftmaxCrossEntropyWithLogits"] | |||
| }, | |||
| "DumpSettingsSpec": { | |||
| "enable": "true: dump enable false: dump disable", | |||
| "trans_flag": "true: trans to host format,false: not trans format", | |||
| "path": "the dump file folder", | |||
| "net_name": "net name eg:ResNet50", | |||
| "mode": "0: dump all kernels 1: dump kernels in kernels list", | |||
| "iteration": "0: all iteration others: specified iteration ", | |||
| "kernels": "kernel name list need to be dump" | |||
| }, | |||
| "other": {} | |||
| } | |||
| @@ -0,0 +1,120 @@ | |||
| #!/bin/bash | |||
| # Copyright 2019 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| set -x | |||
| set -e | |||
| export SAVE_GRAPHS=YES | |||
| # print usage message | |||
| function usage() | |||
| { | |||
| echo "Usage:" | |||
| echo "bash $0 [-g] [-d] [-a] [-h] [-f file]" | |||
| echo "e.g. $0 -f 3_specialize.dat" | |||
| echo "" | |||
| echo "Options:" | |||
| echo " -g Generate ir file for debug" | |||
| echo " -d Debug dumped ir" | |||
| echo " -a Execute all steps, default" | |||
| echo " -f File to be parse" | |||
| echo " -h Print usage" | |||
| } | |||
| # check and set options | |||
| function checkopts() | |||
| { | |||
| # init variable | |||
| MODE_GEN=0 | |||
| MODE_DBG=1 | |||
| MODE_ALL=2 | |||
| FILE_NAME="3_optimize.dat" | |||
| mode="${MODE_ALL}" # default execute all steps | |||
| # Process the options | |||
| while getopts 'gdaf:h' opt | |||
| do | |||
| case "${opt}" in | |||
| g) | |||
| mode="${MODE_GEN}" | |||
| ;; | |||
| d) | |||
| mode="${MODE_DBG}" | |||
| ;; | |||
| a) | |||
| mode="${MODE_ALL}" | |||
| ;; | |||
| f) | |||
| FILE_NAME="$OPTARG" | |||
| if ! [ -f "${FILE_NAME}" ]; then | |||
| echo "File $FILE_NAME does not exist" | |||
| usage | |||
| exit 1 | |||
| fi | |||
| ;; | |||
| h) | |||
| usage | |||
| exit 0 | |||
| ;; | |||
| *) | |||
| echo "Unknown option ${opt}!" | |||
| usage | |||
| exit 1 | |||
| esac | |||
| done | |||
| } | |||
| # init variable | |||
| # check options | |||
| checkopts "$@" | |||
| cd build/mindspore/ | |||
| make -j8 | |||
| cp -v mindspore/ccsrc/_c_expression.cpython-*.so ../../mindspore/ | |||
| cd - | |||
| UT_NAME="./tests/ut/python/model/test_lenet.py::test_lenet5_train_sens" | |||
| #UT_NAME="./tests/python/ops/test_math_ops.py::test_matmul_grad" | |||
| #UT_NAME="./tests/python/exec/resnet_example.py::test_compile" | |||
| #UT_NAME="./tests/perf_test/test_bert_train.py::test_bert_train" | |||
| if [[ "${mode}" == "${MODE_GEN}" || "${mode}" == "${MODE_ALL}" ]]; then | |||
| rm -rf pkl_objs | |||
| mkdir -p pkl_objs | |||
| echo "MS_IR_PATH=$(pwd)/pkl_objs pytest -s ${UT_NAME}" | |||
| MS_IR_PATH=$(pwd)/pkl_objs/ pytest -s "${UT_NAME}" | |||
| #pytest -s $UT_NAME | |||
| # 1_resolve.dat | |||
| # 3_specialize.dat | |||
| # 4_simplify_data_structures.dat | |||
| # 5_opt.dat | |||
| # 6_opt2.dat | |||
| # 7_opt_ge_adaptor_special.dat | |||
| # 8_cconv.dat | |||
| # 9_validate.dat | |||
| cp "${FILE_NAME}" anf_ir_file.dbg | |||
| rm -rf pkl_objs.dbg | |||
| cp -rf pkl_objs pkl_objs.dbg | |||
| fi | |||
| if [[ "${mode}" == "${MODE_DBG}" || "${mode}" == "${MODE_ALL}" ]]; then | |||
| echo "MS_IR_FILE=$(pwd)/anf_ir_file.dbg MS_IR_PATH=$(pwd)/pkl_objs.dbg/ pytest -s ${UT_NAME}" | |||
| MS_IR_FILE=$(pwd)/anf_ir_file.dbg MS_IR_PATH=$(pwd)/pkl_objs.dbg/ pytest -s "${UT_NAME}" | |||
| fi | |||
| @@ -1,16 +0,0 @@ | |||
| ## MindSpore Dockerfile Repository | |||
| This folder hosts all the `Dockerfile` to build MindSpore container images with various hardware platforms. | |||
| ### MindSpore docker build command | |||
| | Hardware Platform | Version | Build Command | | |||
| | :---------------- | :------ | :------------ | | |||
| | CPU | `x.y.z` | cd mindspore-cpu/x.y.z && docker build . -t mindspore/mindspore-cpu:x.y.z | | |||
| | | `devel` | cd mindspore-cpu/devel && docker build . -t mindspore/mindspore-cpu:devel | | |||
| | | `runtime` | cd mindspore-cpu/runtime && docker build . -t mindspore/mindspore-cpu:runtime | | |||
| | GPU | `x.y.z` | cd mindspore-gpu/x.y.z && docker build . -t mindspore/mindspore-gpu:x.y.z | | |||
| | | `devel` | cd mindspore-gpu/devel && docker build . -t mindspore/mindspore-gpu:devel | | |||
| | | `runtime` | cd mindspore-gpu/runtime && docker build . -t mindspore/mindspore-gpu:runtime | | |||
| > **NOTICE:** The `x.y.z` version shown above should be replaced with the real version number. | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.1.0-alpha/MindSpore/cpu/ubuntu-x86/mindspore-0.1.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.2.0-alpha/MindSpore/cpu/x86_ubuntu/mindspore-0.2.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.3.0-alpha/MindSpore/cpu/ubuntu_x86/mindspore-0.3.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.5.0-beta/MindSpore/cpu/ubuntu_x86/mindspore-0.5.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.6.0-beta/MindSpore/cpu/ubuntu_x86/mindspore-0.6.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.7.0-beta/MindSpore/cpu/ubuntu_x86/mindspore-0.7.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,67 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:/root/.local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.0/MindSpore/cpu/ubuntu_x86/mindspore-1.0.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,71 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:/root/.local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.0/MindSpore/cpu/ubuntu_x86/mindspore-1.1.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,71 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:/root/.local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install MindSpore cpu whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0/MindSpore/cpu/ubuntu_x86/mindspore-1.2.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,78 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV CMAKE_ROOT_PATH /usr/local/cmake-3.14.1 | |||
| ENV PATH ${PYTHON_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${PYTHON_ROOT_PATH}/lib | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} --enable-shared \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf \ | |||
| && pip install --no-cache-dir wheel | |||
| # Install cmake (v3.14.1) | |||
| RUN cd /tmp \ | |||
| && wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1-Linux-x86_64.sh \ | |||
| && mkdir -p ${CMAKE_ROOT_PATH} \ | |||
| && bash ./cmake-3.14.1-Linux-x86_64.sh --prefix=${CMAKE_ROOT_PATH} --exclude-subdir --skip-license \ | |||
| && rm -f /tmp/cmake-3.14.1-Linux-x86_64.sh | |||
| @@ -1,68 +0,0 @@ | |||
| FROM ubuntu:18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV PATH /usr/local/bin:$PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| @@ -1,83 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex \ | |||
| libnccl2=2.4.8-1+cuda10.1 \ | |||
| libnccl-dev=2.4.8-1+cuda10.1 | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.1.0-alpha/MindSpore/gpu/cuda-10.1/mindspore-0.1.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,83 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex \ | |||
| libnccl2=2.4.8-1+cuda10.1 \ | |||
| libnccl-dev=2.4.8-1+cuda10.1 | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.2.0-alpha/MindSpore/gpu/cuda-10.1/mindspore_gpu-0.2.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,83 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex \ | |||
| libnccl2=2.4.8-1+cuda10.1 \ | |||
| libnccl-dev=2.4.8-1+cuda10.1 | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.3.0-alpha/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-0.3.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,83 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex \ | |||
| libnccl2=2.4.8-1+cuda10.1 \ | |||
| libnccl-dev=2.4.8-1+cuda10.1 | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.5.0-beta/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-0.5.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,83 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex \ | |||
| libnccl2=2.4.8-1+cuda10.1 \ | |||
| libnccl-dev=2.4.8-1+cuda10.1 | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.6.0-beta/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-0.6.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,81 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/0.7.0-beta/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-0.7.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,81 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-3.1.5 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v3.1.5) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \ | |||
| && tar -xvf openmpi-3.1.5.tar.gz \ | |||
| && cd /tmp/openmpi-3.1.5 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-3.1.5 \ | |||
| && rm -f /tmp/openmpi-3.1.5.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.0/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-1.0.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,85 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-4.0.3 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v4.0.3) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz \ | |||
| && tar -xvf openmpi-4.0.3.tar.gz \ | |||
| && cd /tmp/openmpi-4.0.3 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-4.0.3 \ | |||
| && rm -f /tmp/openmpi-4.0.3.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.0/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-1.1.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,88 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-4.0.3 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v4.0.3) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz \ | |||
| && tar -xvf openmpi-4.0.3.tar.gz \ | |||
| && cd /tmp/openmpi-4.0.3 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-4.0.3 \ | |||
| && rm -f /tmp/openmpi-4.0.3.tar.gz | |||
| # Install MindSpore cuda-10.1 whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0/MindSpore/gpu/ubuntu_x86/cuda-10.1/mindspore_gpu-1.2.0-cp37-cp37m-linux_x86_64.whl | |||
| # Install MindInsight whl package | |||
| RUN pip install --no-cache-dir https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0/MindInsight/ascend/ubuntu_x86/mindinsight-1.2.0-cp37-cp37m-linux_x86_64.whl | |||
| @@ -1,94 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV CMAKE_ROOT_PATH /usr/local/cmake-3.14.1 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-4.0.3 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:${PYTHON_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib::${PYTHON_ROOT_PATH}/lib | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Configure cuDNN (v7.6.5) | |||
| RUN ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.7.6.5 /usr/local/cuda/lib64/libcudnn.so | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} --enable-shared \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf \ | |||
| && pip install --no-cache-dir wheel | |||
| # Install cmake (v3.14.1) | |||
| RUN cd /tmp \ | |||
| && wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1-Linux-x86_64.sh \ | |||
| && mkdir -p ${CMAKE_ROOT_PATH} \ | |||
| && bash ./cmake-3.14.1-Linux-x86_64.sh --prefix=${CMAKE_ROOT_PATH} --exclude-subdir --skip-license \ | |||
| && rm -f /tmp/cmake-3.14.1-Linux-x86_64.sh | |||
| # Install openmpi (v4.0.3) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz \ | |||
| && tar -xvf openmpi-4.0.3.tar.gz \ | |||
| && cd /tmp/openmpi-4.0.3 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-4.0.3 \ | |||
| && rm -f /tmp/openmpi-4.0.3.tar.gz | |||
| @@ -1,82 +0,0 @@ | |||
| FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 | |||
| MAINTAINER leonwanghui <leon.wanghui@huawei.com> | |||
| # Set env | |||
| ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 | |||
| ENV OMPI_ROOT_PATH /usr/local/openmpi-4.0.3 | |||
| ENV PATH ${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH | |||
| ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:$LD_LIBRARY_PATH | |||
| # Install base tools | |||
| RUN apt update \ | |||
| && DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| vim \ | |||
| wget \ | |||
| curl \ | |||
| xz-utils \ | |||
| net-tools \ | |||
| openssh-client \ | |||
| git \ | |||
| ntpdate \ | |||
| tzdata \ | |||
| tcl \ | |||
| sudo \ | |||
| bash-completion | |||
| # Install compile tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| gcc \ | |||
| g++ \ | |||
| zlibc \ | |||
| make \ | |||
| libgmp-dev \ | |||
| patch \ | |||
| autoconf \ | |||
| libtool \ | |||
| automake \ | |||
| flex | |||
| # Install the rest dependent tools | |||
| RUN DEBIAN_FRONTEND=noninteractive apt install -y \ | |||
| libnuma-dev | |||
| # Set bash | |||
| RUN echo "dash dash/sh boolean false" | debconf-set-selections | |||
| RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash | |||
| # Install python (v3.7.5) | |||
| RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ | |||
| libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ | |||
| && cd /tmp \ | |||
| && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ | |||
| && tar -xvf v3.7.5.tar.gz \ | |||
| && cd /tmp/cpython-3.7.5 \ | |||
| && mkdir -p ${PYTHON_ROOT_PATH} \ | |||
| && ./configure --prefix=${PYTHON_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -f /usr/local/bin/python \ | |||
| && rm -f /usr/local/bin/pip \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ | |||
| && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ | |||
| && rm -rf /tmp/cpython-3.7.5 \ | |||
| && rm -f /tmp/v3.7.5.tar.gz | |||
| # Set pip source | |||
| RUN mkdir -pv /root/.pip \ | |||
| && echo "[global]" > /root/.pip/pip.conf \ | |||
| && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ | |||
| && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf | |||
| # Install openmpi (v4.0.3) | |||
| RUN cd /tmp \ | |||
| && wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz \ | |||
| && tar -xvf openmpi-4.0.3.tar.gz \ | |||
| && cd /tmp/openmpi-4.0.3 \ | |||
| && mkdir -p ${OMPI_ROOT_PATH} \ | |||
| && ./configure --prefix=${OMPI_ROOT_PATH} \ | |||
| && make -j4 \ | |||
| && make install -j4 \ | |||
| && rm -rf /tmp/openmpi-4.0.3 \ | |||
| && rm -f /tmp/openmpi-4.0.3.tar.gz | |||
| @@ -0,0 +1,55 @@ | |||
| # Copyright 2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| """ | |||
| network config setting, will be used in train.py | |||
| """ | |||
| from easydict import EasyDict as edict | |||
| import mindspore.common.dtype as mstype | |||
| from mindspore.model_zoo.Bert_NEZHA import BertConfig | |||
| bert_train_cfg = edict({ | |||
| 'epoch_size': 10, | |||
| 'num_warmup_steps': 0, | |||
| 'start_learning_rate': 1e-4, | |||
| 'end_learning_rate': 0.0, | |||
| 'decay_steps': 1000, | |||
| 'power': 10.0, | |||
| 'save_checkpoint_steps': 2000, | |||
| 'keep_checkpoint_max': 10, | |||
| 'checkpoint_prefix': "checkpoint_bert", | |||
| 'DATA_DIR': "/your/path/examples.tfrecord", | |||
| 'SCHEMA_DIR': "/your/path/datasetSchema.json" | |||
| }) | |||
| bert_net_cfg = BertConfig( | |||
| batch_size=16, | |||
| seq_length=128, | |||
| vocab_size=21136, | |||
| hidden_size=1024, | |||
| num_hidden_layers=24, | |||
| num_attention_heads=16, | |||
| intermediate_size=4096, | |||
| hidden_act="gelu", | |||
| hidden_dropout_prob=0.0, | |||
| attention_probs_dropout_prob=0.0, | |||
| max_position_embeddings=512, | |||
| type_vocab_size=2, | |||
| initializer_range=0.02, | |||
| use_relative_positions=True, | |||
| input_mask_from_dataset=True, | |||
| token_type_ids_from_dataset=True, | |||
| dtype=mstype.float32, | |||
| compute_type=mstype.float16, | |||
| ) | |||
| @@ -0,0 +1,98 @@ | |||
| # Copyright 2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| """ | |||
| NEZHA (NEural contextualiZed representation for CHinese lAnguage understanding) is the Chinese pretrained language model currently based on BERT developed by Huawei. | |||
| 1. Prepare data | |||
| Following the data preparation as in BERT, run command as below to get dataset for training: | |||
| python ./create_pretraining_data.py \ | |||
| --input_file=./sample_text.txt \ | |||
| --output_file=./examples.tfrecord \ | |||
| --vocab_file=./your/path/vocab.txt \ | |||
| --do_lower_case=True \ | |||
| --max_seq_length=128 \ | |||
| --max_predictions_per_seq=20 \ | |||
| --masked_lm_prob=0.15 \ | |||
| --random_seed=12345 \ | |||
| --dupe_factor=5 | |||
| 2. Pretrain | |||
| First, prepare the distributed training environment, then adjust configurations in config.py, finally run train.py. | |||
| """ | |||
| import os | |||
| import pytest | |||
| import numpy as np | |||
| from numpy import allclose | |||
| from config import bert_train_cfg, bert_net_cfg | |||
| import mindspore.common.dtype as mstype | |||
| import mindspore.dataset.engine.datasets as de | |||
| import mindspore._c_dataengine as deMap | |||
| from mindspore import context | |||
| from mindspore.common.tensor import Tensor | |||
| from mindspore.train.model import Model | |||
| from mindspore.train.callback import Callback, ModelCheckpoint, CheckpointConfig, LossMonitor | |||
| from mindspore.model_zoo.Bert_NEZHA import BertConfig, BertNetworkWithLoss, BertTrainOneStepCell | |||
| from mindspore.nn.optim import Lamb | |||
| from mindspore import log as logger | |||
| _current_dir = os.path.dirname(os.path.realpath(__file__)) | |||
| def create_train_dataset(batch_size): | |||
| """create train dataset""" | |||
| # apply repeat operations | |||
| repeat_count = bert_train_cfg.epoch_size | |||
| ds = de.StorageDataset([bert_train_cfg.DATA_DIR], bert_train_cfg.SCHEMA_DIR, columns_list=["input_ids", "input_mask", "segment_ids", | |||
| "next_sentence_labels", "masked_lm_positions", | |||
| "masked_lm_ids", "masked_lm_weights"]) | |||
| type_cast_op = deMap.TypeCastOp("int32") | |||
| ds = ds.map(input_columns="masked_lm_ids", operations=type_cast_op) | |||
| ds = ds.map(input_columns="masked_lm_positions", operations=type_cast_op) | |||
| ds = ds.map(input_columns="next_sentence_labels", operations=type_cast_op) | |||
| ds = ds.map(input_columns="segment_ids", operations=type_cast_op) | |||
| ds = ds.map(input_columns="input_mask", operations=type_cast_op) | |||
| ds = ds.map(input_columns="input_ids", operations=type_cast_op) | |||
| # apply batch operations | |||
| ds = ds.batch(batch_size, drop_remainder=True) | |||
| ds = ds.repeat(repeat_count) | |||
| return ds | |||
| def weight_variable(shape): | |||
| """weight variable""" | |||
| np.random.seed(1) | |||
| ones = np.random.uniform(-0.1, 0.1, size=shape).astype(np.float32) | |||
| return Tensor(ones) | |||
| def train_bert(): | |||
| """train bert""" | |||
| context.set_context(mode=context.GRAPH_MODE) | |||
| context.set_context(device_target="Ascend") | |||
| context.set_context(enable_task_sink=True) | |||
| context.set_context(enable_loop_sink=True) | |||
| context.set_context(enable_mem_reuse=True) | |||
| ds = create_train_dataset(bert_net_cfg.batch_size) | |||
| netwithloss = BertNetworkWithLoss(bert_net_cfg, True) | |||
| optimizer = Lamb(netwithloss.trainable_params(), decay_steps=bert_train_cfg.decay_steps, | |||
| start_learning_rate=bert_train_cfg.start_learning_rate, end_learning_rate=bert_train_cfg.end_learning_rate, | |||
| power=bert_train_cfg.power, warmup_steps=bert_train_cfg.num_warmup_steps, decay_filter=lambda x: False) | |||
| netwithgrads = BertTrainOneStepCell(netwithloss, optimizer=optimizer) | |||
| netwithgrads.set_train(True) | |||
| model = Model(netwithgrads) | |||
| config_ck = CheckpointConfig(save_checkpoint_steps=bert_train_cfg.save_checkpoint_steps, | |||
| keep_checkpoint_max=bert_train_cfg.keep_checkpoint_max) | |||
| ckpoint_cb = ModelCheckpoint(prefix=bert_train_cfg.checkpoint_prefix, config=config_ck) | |||
| model.train(ds.get_repeat_count(), ds, callbacks=[LossMonitor(), ckpoint_cb], dataset_sink_mode=False) | |||
| if __name__ == '__main__': | |||
| train_bert() | |||