c++ library adapt to latest ascend software

Signed-off-by: zhoufeng <zhoufeng54@huawei.com>
This commit is contained in:
zhoufeng 2020-12-25 09:25:18 +08:00
parent dafd26196e
commit 775795253e
7 changed files with 41 additions and 16 deletions

@ -1 +1 @@
Subproject commit 9a7b271674f343157c316b1455aee628c43cffdc Subproject commit c762dd5dcc207987d5b5d4ee520da3939222ec88

View File

@ -14,6 +14,7 @@
# ============================================================================ # ============================================================================
"""dependency package version check""" """dependency package version check"""
from argparse import ArgumentParser from argparse import ArgumentParser
import sys
def parse_args(): def parse_args():
""" """
@ -45,6 +46,11 @@ def check_deps_version(mindspore_version, supported_version):
void void
""" """
try: try:
from hccl import sys_version as hccl_version
v = hccl_version.__sys_version__
if v not in supported_version:
print(f"MindSpore version {mindspore_version} and \"hccl\" wheel package version {v} does not "
"match, reference to the match info on: https://www.mindspore.cn/install")
import te import te
v = te.__version__ v = te.__version__
if v not in supported_version: if v not in supported_version:
@ -55,12 +61,9 @@ def check_deps_version(mindspore_version, supported_version):
if v not in supported_version: if v not in supported_version:
print(f"MindSpore version {mindspore_version} and \"topi\" wheel package version {v} does not " print(f"MindSpore version {mindspore_version} and \"topi\" wheel package version {v} does not "
"match, reference to the match info on: https://www.mindspore.cn/install") "match, reference to the match info on: https://www.mindspore.cn/install")
from hccl import sys_version as hccl_version
v = hccl_version.__sys_version__ # pylint: disable=broad-except
if v not in supported_version: except Exception as e:
print(f"MindSpore version {mindspore_version} and \"hccl\" wheel package version {v} does not "
"match, reference to the match info on: https://www.mindspore.cn/install")
except ImportError as e:
print("CheckFailed: ", e.args) print("CheckFailed: ", e.args)
print("Minspore relies on the 3 whl packages of \"te\", \"topi\" and \"hccl\" in the \"fwkacllib\" " print("Minspore relies on the 3 whl packages of \"te\", \"topi\" and \"hccl\" in the \"fwkacllib\" "
"folder of the Ascend 910 AI software package, please check whether they are installed " "folder of the Ascend 910 AI software package, please check whether they are installed "
@ -71,4 +74,5 @@ def main():
check_deps_version(args.mindspore_version, args.supported_version) check_deps_version(args.mindspore_version, args.supported_version)
if __name__ == "__main__": if __name__ == "__main__":
sys.path = sys.path[1:] # avoid the impact of relative path env, only affect this process
main() main()

View File

@ -253,6 +253,7 @@ if (ENABLE_D)
find_library(OPTILING optiling ${ASCEND_OPP_PATH}) find_library(OPTILING optiling ${ASCEND_OPP_PATH})
# hccl_adpter # hccl_adpter
find_library(HCCL_ADPTER hcom_graph_adaptor ${ASCEND_RUNTIME_PATH} ${ASCEND_TOOLKIT_RUNTIME_PATH}) find_library(HCCL_ADPTER hcom_graph_adaptor ${ASCEND_RUNTIME_PATH} ${ASCEND_TOOLKIT_RUNTIME_PATH})
find_library(HCCL_RA ra ${ASCEND_RUNTIME_PATH} ${ASCEND_TOOLKIT_RUNTIME_PATH})
find_library(HCCL_BUILDER hcom_opskernel_builder ${ASCEND_RUNTIME_PATH}/plugin/opskernel ${ASCEND_TOOLKIT_RUNTIME_PATH}/plugin/opskernel) find_library(HCCL_BUILDER hcom_opskernel_builder ${ASCEND_RUNTIME_PATH}/plugin/opskernel ${ASCEND_TOOLKIT_RUNTIME_PATH}/plugin/opskernel)
add_library(ms_profile SHARED ${CMAKE_CURRENT_SOURCE_DIR}/runtime/device/ascend/profiling/profiling_callback_register.cc) add_library(ms_profile SHARED ${CMAKE_CURRENT_SOURCE_DIR}/runtime/device/ascend/profiling/profiling_callback_register.cc)
@ -260,7 +261,7 @@ if (ENABLE_D)
target_link_options(ms_profile PRIVATE -Wl,-init,common_log_init) target_link_options(ms_profile PRIVATE -Wl,-init,common_log_init)
target_link_libraries(ms_profile -Wl,--start-group -Wl,--whole-archive ${PROFILING} -Wl,--no-whole-archive mindspore::protobuf -Wl,--end-group) target_link_libraries(ms_profile -Wl,--start-group -Wl,--whole-archive ${PROFILING} -Wl,--no-whole-archive mindspore::protobuf -Wl,--end-group)
target_link_libraries(mindspore ge_runtime ${CCE_LIB} ${RUNTIME_LIB} ${TSDCLIENT} ${HCCL} ${DATATRANSFER} target_link_libraries(mindspore ge_runtime ${CCE_LIB} ${RUNTIME_LIB} ${TSDCLIENT} ${HCCL} ${DATATRANSFER}
${HCCL_ADPTER} ${REGISTER} -Wl,--no-as-needed ${OPTILING} ${HCCL_BUILDER}) ${HCCL_ADPTER} ${REGISTER} -Wl,--no-as-needed ${OPTILING} ${HCCL_BUILDER} ${HCCL_RA})
target_link_libraries(mindspore -Wl,--start-group proto_input mindspore::protobuf -Wl,--end-group) target_link_libraries(mindspore -Wl,--start-group proto_input mindspore::protobuf -Wl,--end-group)
elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
target_link_libraries(mindspore -Wl,--start-group proto_input mindspore::protobuf mindspore::sentencepiece -Wl,--end-group) target_link_libraries(mindspore -Wl,--start-group proto_input mindspore::protobuf mindspore::sentencepiece -Wl,--end-group)

View File

@ -122,10 +122,13 @@ Status MsGraphImpl::FinalizeEnv() {
MS_LOG(ERROR) << "Get Context failed!"; MS_LOG(ERROR) << "Get Context failed!";
return FAILED; return FAILED;
} }
InitPython(); // CloseTsd will release python git
if (!context::CloseTsd(ms_context)) { if (!context::CloseTsd(ms_context)) {
MS_LOG(ERROR) << "CloseTsd failed!"; MS_LOG(ERROR) << "CloseTsd failed!";
return FAILED; return FAILED;
} }
FinalizePython();
init_flag_ = false; init_flag_ = false;
MS_LOG(INFO) << "End finalize env"; MS_LOG(INFO) << "End finalize env";

View File

@ -13,15 +13,18 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
#include "toolchain/prof_mgr_core.h" #include "runtime/device/ascend/profiling/profiling_callback_register.h"
#include "utils/log_adapter.h"
int ProfMgrStop(void *) { VMCallbackRegister &VMCallbackRegister::GetInstance() {
MS_LOG(WARNING) << "Unsupported feature."; static VMCallbackRegister instance;
return -1; return instance;
} }
void *ProfMgrStartUp(const ProfMgrCfg *) { bool VMCallbackRegister::Registe(Status (*pRegProfCtrlCallback)(MsprofCtrlCallback),
MS_LOG(WARNING) << "Unsupported feature."; Status (*pRegProfSetDeviceCallback)(MsprofSetDeviceCallback),
return nullptr; Status (*pRegProfReporterCallback)(MsprofReporterCallback),
Status (*pProfCommandHandle)(ProfCommandHandleType, void *, uint32_t)) {
return false;
} }
void VMCallbackRegister::ForceMsprofilerInit() {}

View File

@ -119,4 +119,16 @@ void RegAllOp() {
} }
bool PythonIsInited() { return Py_IsInitialized() != 0; } bool PythonIsInited() { return Py_IsInitialized() != 0; }
void InitPython() {
if (!PythonIsInited()) {
Py_Initialize();
}
}
void FinalizePython() {
if (PythonIsInited()) {
Py_Finalize();
}
}
} // namespace mindspore::api } // namespace mindspore::api

View File

@ -20,6 +20,8 @@
namespace mindspore::api { namespace mindspore::api {
void RegAllOp(); void RegAllOp();
bool PythonIsInited(); bool PythonIsInited();
void InitPython();
void FinalizePython();
} // namespace mindspore::api } // namespace mindspore::api
#endif // MINDSPORE_CCSRC_CXXAPI_PYTHON_UTILS_H #endif // MINDSPORE_CCSRC_CXXAPI_PYTHON_UTILS_H