静态模型输入:
aclmdlDataset * inputDataset_ = aclmdlCreateDataset();
// 动态输入,可以通过aclmdlGetInputSizeByIndex获取模型第1个输入的大小
size_t inputIndex = 0;
size_t inputBufferSize_ = aclmdlGetInputSizeByIndex(modelDesc_, inputIndex);
void * inputBuffer_;
aclrtMalloc(&inputBuffer_, inputBufferSize_, ACL_MEM_MALLOC_HUGE_FIRST);
aclDataBuffer * inputData = aclCreateDataBuffer(inputBuffer_, inputBufferSize_);
aclmdlAddDatasetBuffer(inputDataset_, inputData);
aclmdlExecute(modelId_, inputDataset_, outputDataset_);
动态模型输入:
aclmdlDataset * inputDataset_ = aclmdlCreateDataset();
int64_t shapes[] = { 16, 128 };
aclTensorDesc * inputDesc0 = aclCreateTensorDesc(ACL_INT64, 2, shapes, ACL_FORMAT_ND);
aclmdlSetDatasetTensorDesc(inputDataset_, inputDesc0, 0);
// 动态输入,可以通过传入的数据获取大小
size_t inputBufferSize_ = sizeof(int64_t ) * 16 * 128;
void * inputBuffer_;
aclrtMalloc(&inputBuffer_, inputBufferSize_, ACL_MEM_MALLOC_HUGE_FIRST);
aclDataBuffer * inputData = aclCreateDataBuffer(inputBuffer_, inputBufferSize_);
aclmdlAddDatasetBuffer(inputDataset_, inputData);
aclmdlExecute(modelId_, inputDataset_, outputDataset_);
静态模型输入:
aclmdlDataset * inputDataset_ = aclmdlCreateDataset();
// 动态输入,可以通过aclmdlGetInputSizeByIndex获取模型第1个输入的大小
size_t inputIndex = 0;
size_t inputBufferSize_ = aclmdlGetInputSizeByIndex(modelDesc_, inputIndex);
void * inputBuffer_;
aclrtMalloc(&inputBuffer_, inputBufferSize_, ACL_MEM_MALLOC_HUGE_FIRST);
aclDataBuffer * inputData = aclCreateDataBuffer(inputBuffer_, inputBufferSize_);
aclmdlAddDatasetBuffer(inputDataset_, inputData);
aclmdlExecute(modelId_, inputDataset_, outputDataset_);
动态模型输入:
aclmdlDataset * inputDataset_ = aclmdlCreateDataset();
int64_t shapes[] = { 16, 128 };
aclTensorDesc * inputDesc0 = aclCreateTensorDesc(ACL_INT64, 2, shapes, ACL_FORMAT_ND);
aclmdlSetDatasetTensorDesc(inputDataset_, inputDesc0, 0);
// 动态输入,可以通过传入的数据获取大小
size_t inputBufferSize_ = sizeof(int64_t ) * 16 * 128;
void * inputBuffer_;
aclrtMalloc(&inputBuffer_, inputBufferSize_, ACL_MEM_MALLOC_HUGE_FIRST);
aclDataBuffer * inputData = aclCreateDataBuffer(inputBuffer_, inputBufferSize_);
aclmdlAddDatasetBuffer(inputDataset_, inputData);
aclmdlExecute(modelId_, inputDataset_, outputDataset_);