Line data Source code
1 : /**
2 : * Copyright (c) 2025 Huawei Technologies Co., Ltd.
3 : * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
4 : * CANN Open Software License Agreement Version 2.0 (the "License").
5 : * Please refer to the License for details. You may not use this file except in compliance with the License.
6 : * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
7 : * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8 : * See LICENSE in the root of the software repository for the full text of the License.
9 : */
10 : #include "acl/acl_rt.h"
11 : #include "log_inner.h"
12 : #include "runtime/rt.h"
13 : #include "ge_executor_rt.h"
14 :
15 : #ifdef __cplusplus
16 : extern "C" {
17 : #endif
18 :
19 8 : aclError aclrtSetDevice(int32_t deviceId)
20 : {
21 8 : const rtError_t rtErr = rtSetDevice(deviceId);
22 8 : if (rtErr != RT_ERROR_NONE) {
23 1 : ACL_LOG_CALL_ERROR("open device %d failed, rt ret = %d.", deviceId, (int32_t)(rtErr));
24 1 : return rtErr;
25 : }
26 7 : Status ret = GeNofifySetDevice(0, (uint32_t)deviceId);
27 7 : if (ret != SUCCESS) {
28 1 : ACL_LOG_CALL_ERROR("prof notify device %d fail, result = %d.", deviceId, (int32_t)(ret));
29 1 : return ret;
30 : }
31 6 : ACL_LOG_INFO("set deviceId = %d success", deviceId);
32 6 : return ACL_SUCCESS;
33 : }
34 :
35 8 : aclError aclrtResetDevice(int32_t deviceId)
36 : {
37 8 : const rtError_t rtErr = rtDeviceReset(deviceId);
38 8 : if (rtErr != RT_ERROR_NONE) {
39 1 : ACL_LOG_CALL_ERROR("reset device %d failed, rt ret = %d.", deviceId, (int32_t)(rtErr));
40 1 : return rtErr;
41 : }
42 7 : ACL_LOG_INFO("reset deviceId = %d success.", deviceId);
43 7 : return ACL_SUCCESS;
44 : }
45 :
46 3 : aclError aclrtGetDevice(int32_t* deviceId)
47 : {
48 3 : if (deviceId == NULL) {
49 1 : ACL_LOG_ERROR("deviceId is NULL");
50 1 : return ACL_ERROR_INVALID_PARAM;
51 : }
52 2 : const rtError_t rtErr = rtGetDevice(deviceId);
53 2 : if (rtErr != RT_ERROR_NONE) {
54 1 : ACL_LOG_INFO("can not get device id, rt ret = %d.", (int32_t)(rtErr));
55 1 : return rtErr;
56 : }
57 1 : return ACL_SUCCESS;
58 : }
59 :
60 4 : aclError aclrtGetRunMode(aclrtRunMode* runMode)
61 : {
62 4 : if (runMode == NULL) {
63 1 : ACL_LOG_ERROR("runMode is NULL");
64 1 : return ACL_ERROR_INVALID_PARAM;
65 : }
66 : rtRunMode rtMode;
67 3 : const rtError_t rtErr = rtGetRunMode(&rtMode);
68 3 : if (rtErr != RT_ERROR_NONE) {
69 1 : ACL_LOG_CALL_ERROR("get runMode failed ret = %d.", (int32_t)(rtErr));
70 1 : return rtErr;
71 : }
72 2 : if (rtMode == RT_RUN_MODE_OFFLINE) {
73 1 : *runMode = ACL_DEVICE;
74 1 : return ACL_SUCCESS;
75 : }
76 1 : *runMode = ACL_HOST;
77 1 : ACL_LOG_INFO("get runMode success, runMode = %d.", (int32_t)(*runMode));
78 1 : return ACL_SUCCESS;
79 : }
80 : #if defined(__cplusplus)
81 : }
82 : #endif
|