mirror of
https://gitee.com/openharmony/xts_hats
synced 2025-03-03 07:57:33 +00:00
!735 修复 hats 仓安全告警问题
Merge pull request !735 from scholar-lc/weekly_20230411
This commit is contained in:
commit
bc2c659f69
@ -116,9 +116,8 @@ OH_NN_ReturnCode HDICommon::ConvertModel(OHOS::sptr<V1_0::INnrtDevice> device_,
|
||||
|
||||
size_t tensorSize = mindspore::lite::MindIR_LiteGraph_GetConstTensorSize(m_liteGraph.get());
|
||||
std::cout << "[ConvertModel] const tensorsize:" << tensorSize << std::endl;
|
||||
int32_t hdiRet{0};
|
||||
if (tensorSize > 0) {
|
||||
hdiRet = device_->AllocateBuffer(tensorSize, tensorBuffer);
|
||||
int32_t hdiRet = device_->AllocateBuffer(tensorSize, tensorBuffer);
|
||||
if (hdiRet != HDF_SUCCESS || tensorBuffer.fd == NNRT_INVALID_FD) {
|
||||
printf("[NNRtTest] [ConvertModel] allocate tensor buffer failed after get const tensor size,"\
|
||||
"ret:%d\n", hdiRet);
|
||||
@ -133,7 +132,11 @@ OH_NN_ReturnCode HDICommon::ConvertModel(OHOS::sptr<V1_0::INnrtDevice> device_,
|
||||
}
|
||||
// release model
|
||||
OH_NNModel_Destroy(&model);
|
||||
model = nullptr;
|
||||
if(model != nullptr) {
|
||||
printf("[NNRtTest] OH_NNModel_Destroy failed.\n");
|
||||
return OH_NN_FAILED;
|
||||
}
|
||||
|
||||
printf("[NNRtTest] [ConvertModel] convert model done\n");
|
||||
return OH_NN_SUCCESS;
|
||||
}
|
||||
@ -249,7 +252,7 @@ void HDICommon::ReleaseBufferOfTensors(OHOS::sptr<V1_0::INnrtDevice> &device, st
|
||||
}
|
||||
}
|
||||
|
||||
void HDICommon::UnmapAllMemory(std::vector<void* > &buffers)
|
||||
void HDICommon::UnmapAllMemory(const std::vector<void* > &buffers)
|
||||
{
|
||||
auto memoryMenager = MemoryManager::GetInstance();
|
||||
for (auto buffer : buffers) {
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
static V1_0::IOTensor CreateOutputIOTensor(OHOS::sptr<V1_0::INnrtDevice> &device, size_t length);
|
||||
static void* MapMemory(int fd, size_t length);
|
||||
static void UnmapMemory(float* buffer);
|
||||
static void UnmapAllMemory(std::vector<void* > &buffers);
|
||||
static void UnmapAllMemory(const std::vector<void* > &buffers);
|
||||
static void SetData(float* buffer, size_t length, float* data);
|
||||
static void ReleaseBufferOfTensors(OHOS::sptr<V1_0::INnrtDevice> &device, std::vector<V1_0::IOTensor> &tensors);
|
||||
};
|
||||
|
@ -68,7 +68,7 @@ void AddModelTest(OHOS::sptr<V1_0::INnrtDevice> &device_, V1_0::ModelConfig &mod
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// set outputs
|
||||
@ -81,7 +81,7 @@ void AddModelTest(OHOS::sptr<V1_0::INnrtDevice> &device_, V1_0::ModelConfig &mod
|
||||
auto memAddress = HDICommon::MapMemory(outputs[0].data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
|
||||
auto buffer = (float *)memAddress;
|
||||
auto buffer = static_cast<float*>(memAddress);
|
||||
std::vector<float> expectValue(ADDEND_DATA_SIZE, ADD_VALUE_RESULT);
|
||||
std::vector<float> outputValue(buffer, buffer + ADDEND_DATA_SIZE);
|
||||
PrintTensor(buffer, ADDEND_DATA_SIZE);
|
||||
@ -172,7 +172,6 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_Run_0500, Function |
|
||||
std::vector<V1_0::IOTensor> outputs;
|
||||
std::vector<std::vector<int32_t>> outputsDims;
|
||||
std::vector<bool> isOutputBufferEnough;
|
||||
vector<void* > mapedMemorys;
|
||||
|
||||
// only set outputs
|
||||
auto outputTensor = HDICommon::CreateIOTensor(device_);
|
||||
@ -223,7 +222,7 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_Run_0600, Function |
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// model run
|
||||
@ -392,7 +391,7 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_CombRun_1000, Functio
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// set outputs
|
||||
@ -405,7 +404,7 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_CombRun_1000, Functio
|
||||
auto memAddress = HDICommon::MapMemory(outputs[0].data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
|
||||
auto buffer = (float *)memAddress;
|
||||
auto buffer = static_cast<float*>(memAddress);
|
||||
std::vector<float> expectValue(ADDEND_DATA_SIZE, ADD_VALUE_RESULT);
|
||||
std::vector<float> outputValue(buffer, buffer + ADDEND_DATA_SIZE);
|
||||
// check output
|
||||
|
@ -71,7 +71,7 @@ void RunModelTest(OHOS::sptr<V1_0::INnrtDevice> device, OHOS::sptr<V1_0::IPrepar
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// set outputs
|
||||
@ -84,7 +84,7 @@ void RunModelTest(OHOS::sptr<V1_0::INnrtDevice> device, OHOS::sptr<V1_0::IPrepar
|
||||
auto memAddress = HDICommon::MapMemory(outputs[0].data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
|
||||
auto buffer = (float *)memAddress;
|
||||
auto buffer = static_cast<float*>(memAddress);
|
||||
std::vector<float> expectValue(ADDEND_DATA_SIZE, ADD_VALUE_RESULT);
|
||||
std::vector<float> outputValue(buffer, buffer + ADDEND_DATA_SIZE);
|
||||
// check output
|
||||
@ -111,7 +111,6 @@ HWTEST_F(StabilityTest, SUB_AI_NNRt_Reliability_South_Stress_0100, Reliability |
|
||||
{
|
||||
OHOS::sptr<V1_0::INnrtDevice> device = V1_0::INnrtDevice::Get();
|
||||
std::vector<V1_0::Model *> iModels;
|
||||
std::vector<OHOS::sptr<V1_0::IPreparedModel>> iPreparedModels;
|
||||
std::vector<V1_0::SharedBuffer> tensorBuffers;
|
||||
for (int i = 0; i < THREAD_NUM; i++) {
|
||||
// build graph with NNModel
|
||||
|
@ -116,9 +116,8 @@ OH_NN_ReturnCode HDICommon::ConvertModel(OHOS::sptr<V2_0::INnrtDevice> device_,
|
||||
|
||||
size_t tensorSize = mindspore::lite::MindIR_LiteGraph_GetConstTensorSize(m_liteGraph.get());
|
||||
std::cout << "[ConvertModel] const tensorsize:" << tensorSize << std::endl;
|
||||
int32_t hdiRet{0};
|
||||
if (tensorSize > 0) {
|
||||
hdiRet = device_->AllocateBuffer(tensorSize, tensorBuffer);
|
||||
int32_t hdiRet = device_->AllocateBuffer(tensorSize, tensorBuffer);
|
||||
if (hdiRet != HDF_SUCCESS || tensorBuffer.fd == NNRT_INVALID_FD) {
|
||||
printf("[NNRtTest] [ConvertModel] allocate tensor buffer failed after get const tensor size,"\
|
||||
"ret:%d\n", hdiRet);
|
||||
@ -133,7 +132,11 @@ OH_NN_ReturnCode HDICommon::ConvertModel(OHOS::sptr<V2_0::INnrtDevice> device_,
|
||||
}
|
||||
// release model
|
||||
OH_NNModel_Destroy(&model);
|
||||
model = nullptr;
|
||||
if(model != nullptr) {
|
||||
printf("[NNRtTest] OH_NNModel_Destroy failed.\n");
|
||||
return OH_NN_FAILED;
|
||||
}
|
||||
|
||||
printf("[NNRtTest] [ConvertModel] convert model done\n");
|
||||
return OH_NN_SUCCESS;
|
||||
}
|
||||
@ -249,7 +252,7 @@ void HDICommon::ReleaseBufferOfTensors(OHOS::sptr<V2_0::INnrtDevice> &device, st
|
||||
}
|
||||
}
|
||||
|
||||
void HDICommon::UnmapAllMemory(std::vector<void* > &buffers)
|
||||
void HDICommon::UnmapAllMemory(const std::vector<void* > &buffers)
|
||||
{
|
||||
auto memoryMenager = MemoryManager::GetInstance();
|
||||
for (auto buffer : buffers) {
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
static V2_0::IOTensor CreateOutputIOTensor(OHOS::sptr<V2_0::INnrtDevice> &device, size_t length);
|
||||
static void* MapMemory(int fd, size_t length);
|
||||
static void UnmapMemory(float* buffer);
|
||||
static void UnmapAllMemory(std::vector<void* > &buffers);
|
||||
static void UnmapAllMemory(const std::vector<void* > &buffers);
|
||||
static void SetData(float* buffer, size_t length, float* data);
|
||||
static void ReleaseBufferOfTensors(OHOS::sptr<V2_0::INnrtDevice> &device, std::vector<V2_0::IOTensor> &tensors);
|
||||
};
|
||||
|
@ -56,7 +56,6 @@ void AddModelTest(OHOS::sptr<V2_0::INnrtDevice> &device_, V2_0::ModelConfig &mod
|
||||
std::vector<V2_0::IOTensor> inputs;
|
||||
std::vector<V2_0::IOTensor> outputs;
|
||||
std::vector<std::vector<int32_t>> outputsDims;
|
||||
std::vector<bool> isOutputBufferEnough;
|
||||
|
||||
std::vector<void* > mapedMemorys;
|
||||
// set inputs
|
||||
@ -68,7 +67,7 @@ void AddModelTest(OHOS::sptr<V2_0::INnrtDevice> &device_, V2_0::ModelConfig &mod
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// set outputs
|
||||
@ -81,7 +80,7 @@ void AddModelTest(OHOS::sptr<V2_0::INnrtDevice> &device_, V2_0::ModelConfig &mod
|
||||
auto memAddress = HDICommon::MapMemory(outputs[0].data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
|
||||
auto buffer = (float *)memAddress;
|
||||
auto buffer = static_cast<float*>(memAddress);
|
||||
std::vector<float> expectValue(ADDEND_DATA_SIZE, ADD_VALUE_RESULT);
|
||||
std::vector<float> outputValue(buffer, buffer + ADDEND_DATA_SIZE);
|
||||
PrintTensor(buffer, ADDEND_DATA_SIZE);
|
||||
@ -171,7 +170,6 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_Run_0500, Function |
|
||||
std::vector<V2_0::IOTensor> inputs;
|
||||
std::vector<V2_0::IOTensor> outputs;
|
||||
std::vector<std::vector<int32_t>> outputsDims;
|
||||
std::vector<bool> isOutputBufferEnough;
|
||||
vector<void* > mapedMemorys;
|
||||
|
||||
// only set outputs
|
||||
@ -211,7 +209,6 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_Run_0600, Function |
|
||||
std::vector<V2_0::IOTensor> inputs;
|
||||
std::vector<V2_0::IOTensor> outputs;
|
||||
std::vector<std::vector<int32_t>> outputsDims;
|
||||
std::vector<bool> isOutputBufferEnough;
|
||||
vector<void* > mapedMemorys;
|
||||
|
||||
// only set inputs
|
||||
@ -223,7 +220,7 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_Run_0600, Function |
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// model run
|
||||
@ -384,7 +381,6 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_CombRun_1000, Functio
|
||||
std::vector<V2_0::IOTensor> inputs;
|
||||
std::vector<V2_0::IOTensor> outputs;
|
||||
std::vector<std::vector<int32_t>> outputsDims;
|
||||
std::vector<bool> isOutputBufferEnough;
|
||||
vector<void* > mapedMemorys;
|
||||
|
||||
// set inputs
|
||||
@ -395,7 +391,7 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_CombRun_1000, Functio
|
||||
auto memAddress = HDICommon::MapMemory(tensor.data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
// set input data
|
||||
HDICommon::SetData((float*)memAddress, ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
HDICommon::SetData(static_cast<float*>(memAddress), ADDEND_BUFFER_LENGTH, (float*)data.data());
|
||||
inputs.emplace_back(tensor);
|
||||
}
|
||||
// set outputs
|
||||
@ -408,7 +404,7 @@ HWTEST_F(ModelRunTest, SUB_AI_NNRt_Func_South_Model_Invoke_CombRun_1000, Functio
|
||||
auto memAddress = HDICommon::MapMemory(outputs[0].data.fd, ADDEND_BUFFER_LENGTH);
|
||||
mapedMemorys.emplace_back(memAddress);
|
||||
|
||||
auto buffer = (float *)memAddress;
|
||||
auto buffer = static_cast<float*>(memAddress);
|
||||
std::vector<float> expectValue(ADDEND_DATA_SIZE, ADD_VALUE_RESULT);
|
||||
std::vector<float> outputValue(buffer, buffer + ADDEND_DATA_SIZE);
|
||||
// check output
|
||||
|
Loading…
x
Reference in New Issue
Block a user