已合并
激活和量化算子的示例中的输出类型不匹配 #8372
季骏创建于 15 天前
激活和量化算子的示例中的输出类型不匹配 #8372
已合并
季骏创建于 15 天前
6 个文件变更+18-18
Mactivation/ge_glu_grad_v2/docs/aclnnGeGluBackward.md+2-2
@@ -403,13 +403,13 @@ int main()
403 403 
404 // 5. 获取输出的值,将device侧内存上的结果拷贝至host侧,需要根据具体API的接口定义修改404 // 5. 获取输出的值,将device侧内存上的结果拷贝至host侧,需要根据具体API的接口定义修改
405 auto size = GetShapeSize(gradInputShape);405 auto size = GetShapeSize(gradInputShape);
406- std::vector<float> resultData(size, 0);406+ std::vector<aclFloat16> resultData(size, 0);
407 ret = aclrtMemcpy(407 ret = aclrtMemcpy(
408 resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr, size * sizeof(resultData[0]),408 resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr, size * sizeof(resultData[0]),
409 ACL_MEMCPY_DEVICE_TO_HOST);409 ACL_MEMCPY_DEVICE_TO_HOST);
410 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);410 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);
411 for (int64_t i = 0; i < size; i++) {411 for (int64_t i = 0; i < size; i++) {
412- LOG_PRINT("result[%ld] is: %f\n", i, resultData[i]);412+ LOG_PRINT("result[%ld] is: %f\n", i, aclFloat16ToFloat(resultData[i]));
413 }413 }
414 414 
415 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改415 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改
Mactivation/ge_glu_grad_v2/docs/aclnnGeGluV3Backward.md+2-2
@@ -400,13 +400,13 @@ int main()
400 400 
401 // 5. 获取输出的值,将device侧内存上的结果拷贝至Host侧,需要根据具体API的接口定义修改401 // 5. 获取输出的值,将device侧内存上的结果拷贝至Host侧,需要根据具体API的接口定义修改
402 auto size = GetShapeSize(gradInputShape);402 auto size = GetShapeSize(gradInputShape);
403- std::vector<float> resultData(size, 0);403+ std::vector<aclFloat16> resultData(size, 0);
404 ret = aclrtMemcpy(404 ret = aclrtMemcpy(
405 resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr, size * sizeof(resultData[0]),405 resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr, size * sizeof(resultData[0]),
406 ACL_MEMCPY_DEVICE_TO_HOST);406 ACL_MEMCPY_DEVICE_TO_HOST);
407 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);407 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);
408 for (int64_t i = 0; i < size; i++) {408 for (int64_t i = 0; i < size; i++) {
409- LOG_PRINT("result[%ld] is: %f\n", i, resultData[i]);409+ LOG_PRINT("result[%ld] is: %f\n", i, aclFloat16ToFloat(resultData[i]));
410 }410 }
411 411 
412 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改412 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改
Mactivation/ge_glu_grad_v2/examples/test_aclnn_ge_glu_backward.cpp+3-3
@@ -135,12 +135,12 @@ int main()
135 135 
136 // 5. 获取输出的值,将device侧内存上的结果拷贝至host侧,需要根据具体API的接口定义修改136 // 5. 获取输出的值,将device侧内存上的结果拷贝至host侧,需要根据具体API的接口定义修改
137 auto size = GetShapeSize(gradInputShape);137 auto size = GetShapeSize(gradInputShape);
138- std::vector<float> resultData(size, 0);138+ std::vector<aclFloat16> resultData(size, 0);
139 ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr,139 ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr,
140 size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);140 size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);
141 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);141 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);
142 for (int64_t i = 0; i < size; i++) {142 for (int64_t i = 0; i < size; i++) {
143- LOG_PRINT("result[%ld] is: %f\n", i, resultData[i]);143+ LOG_PRINT("result[%ld] is: %f\n", i, aclFloat16ToFloat(resultData[i]));
144 }144 }
145 145 
146 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改146 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改
@@ -161,4 +161,4 @@ int main()
161 aclrtResetDevice(deviceId);161 aclrtResetDevice(deviceId);
162 aclFinalize();162 aclFinalize();
163 return 0;163 return 0;
164-}164+}
Mactivation/ge_glu_grad_v2/examples/test_aclnn_ge_glu_v3_backward.cpp+3-3
@@ -137,12 +137,12 @@ int main()
137 137 
138 // 5. 获取输出的值,将device侧内存上的结果拷贝至Host侧,需要根据具体API的接口定义修改138 // 5. 获取输出的值,将device侧内存上的结果拷贝至Host侧,需要根据具体API的接口定义修改
139 auto size = GetShapeSize(gradInputShape);139 auto size = GetShapeSize(gradInputShape);
140- std::vector<float> resultData(size, 0);140+ std::vector<aclFloat16> resultData(size, 0);
141 ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr,141 ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]), gradInputDeviceAddr,
142 size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);142 size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);
143 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);143 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return ret);
144 for (int64_t i = 0; i < size; i++) {144 for (int64_t i = 0; i < size; i++) {
145- LOG_PRINT("result[%ld] is: %f\n", i, resultData[i]);145+ LOG_PRINT("result[%ld] is: %f\n", i, aclFloat16ToFloat(resultData[i]));
146 }146 }
147 147 
148 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改148 // 6. 释放aclTensor和aclScalar,需要根据具体API的接口定义修改
@@ -163,4 +163,4 @@ int main()
163 aclrtResetDevice(deviceId);163 aclrtResetDevice(deviceId);
164 aclFinalize();164 aclFinalize();
165 return 0;165 return 0;
166-}166+}
Mquant/dynamic_quant_v2/docs/aclnnDynamicQuantV2.md+3-3
@@ -373,12 +373,12 @@ int64_t GetShapeSize(const std::vector<int64_t>& shape) {
373 373 
374void PrintOutResult(std::vector<int64_t> &shape, void** deviceAddr) {374void PrintOutResult(std::vector<int64_t> &shape, void** deviceAddr) {
375 auto size = GetShapeSize(shape);375 auto size = GetShapeSize(shape);
376- std::vector<float> resultData(size, 0);376+ std::vector<int8_t> resultData(size, 0);
377 auto ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]),377 auto ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]),
378 *deviceAddr, size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);378 *deviceAddr, size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);
379 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return);379 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return);
380 for (int64_t i = 0; i < size; i++) {380 for (int64_t i = 0; i < size; i++) {
381- LOG_PRINT("result[%ld] is: %f\n", i, resultData[i]);381+ LOG_PRINT("result[%ld] is: %d\n", i, resultData[i]);
382 }382 }
383}383}
384 384 
@@ -396,7 +396,7 @@ int Init(int32_t deviceId, aclrtStream* stream) {
396template <typename T>396template <typename T>
397int CreateAclTensor(const std::vector<T>& hostData, const std::vector<int64_t>& shape, void** deviceAddr,397int CreateAclTensor(const std::vector<T>& hostData, const std::vector<int64_t>& shape, void** deviceAddr,
398 aclDataType dataType, aclTensor** tensor) {398 aclDataType dataType, aclTensor** tensor) {
399- auto size = GetShapeSize(shape) * sizeof(float);399+ auto size = GetShapeSize(shape) * sizeof(T);
400 // 调用aclrtMalloc申请device侧内存400 // 调用aclrtMalloc申请device侧内存
401 auto ret = aclrtMalloc(deviceAddr, size, ACL_MEM_MALLOC_HUGE_FIRST);401 auto ret = aclrtMalloc(deviceAddr, size, ACL_MEM_MALLOC_HUGE_FIRST);
402 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclrtMalloc failed. ERROR: %d\n", ret); return ret);402 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclrtMalloc failed. ERROR: %d\n", ret); return ret);
Mquant/dynamic_quant_v2/examples/test_aclnn_dynamic_quant_v2.cpp+5-5
@@ -37,12 +37,12 @@ int64_t GetShapeSize(const std::vector<int64_t>& shape)
37void PrintOutResult(std::vector<int64_t>& shape, void** deviceAddr)37void PrintOutResult(std::vector<int64_t>& shape, void** deviceAddr)
38{38{
39 auto size = GetShapeSize(shape);39 auto size = GetShapeSize(shape);
40- std::vector<float> resultData(size, 0);40+ std::vector<int8_t> resultData(size, 0);
41 auto ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]), *deviceAddr,41 auto ret = aclrtMemcpy(resultData.data(), resultData.size() * sizeof(resultData[0]), *deviceAddr,
42 size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);42 size * sizeof(resultData[0]), ACL_MEMCPY_DEVICE_TO_HOST);
43- CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return );43+ CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("copy result from device to host failed. ERROR: %d\n", ret); return);
44 for (int64_t i = 0; i < size; i++) {44 for (int64_t i = 0; i < size; i++) {
45- LOG_PRINT("result[%ld] is: %f\n", i, resultData[i]);45+ LOG_PRINT("result[%ld] is: %d\n", i, resultData[i]);
46 }46 }
47}47}
48 48 
@@ -62,7 +62,7 @@ template <typename T>
62int CreateAclTensor(const std::vector<T>& hostData, const std::vector<int64_t>& shape, void** deviceAddr,62int CreateAclTensor(const std::vector<T>& hostData, const std::vector<int64_t>& shape, void** deviceAddr,
63 aclDataType dataType, aclTensor** tensor)63 aclDataType dataType, aclTensor** tensor)
64{64{
65- auto size = GetShapeSize(shape) * sizeof(float);65+ auto size = GetShapeSize(shape) * sizeof(T);
66 // 调用aclrtMalloc申请device侧内存66 // 调用aclrtMalloc申请device侧内存
67 auto ret = aclrtMalloc(deviceAddr, size, ACL_MEM_MALLOC_HUGE_FIRST);67 auto ret = aclrtMalloc(deviceAddr, size, ACL_MEM_MALLOC_HUGE_FIRST);
68 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclrtMalloc failed. ERROR: %d\n", ret); return ret);68 CHECK_RET(ret == ACL_SUCCESS, LOG_PRINT("aclrtMalloc failed. ERROR: %d\n", ret); return ret);
@@ -206,4 +206,4 @@ int main()
206 aclFinalize();206 aclFinalize();
207 207 
208 return 0;208 return 0;
209-}209+}