For multiple inputs in plugin, what should be the source for
void copyDeviceInputToFP32(const void* src, void*& dst){}
?
Sample has only one source as follows. If I have two sources, how to implement src and dst?
void copyDeviceInputToFP32(const void* src, void*& dst)
{
assert(mDataType == DataType::kINT8);
size_t inCount = getC(mInputDims) * getH(mInputDims) * getW(mInputDims);
std::unique_ptr<char> inputTmp{new char[inCount * elementSize(mDataType)]};
CHECK(cudaMemcpy(inputTmp.get(), src, inCount * elementSize(mDataType), cudaMemcpyDeviceToHost));
std::unique_ptr<float> inputFP32{new float[inCount]};
transform<DataType::kINT8, DataType::kFLOAT>(inputTmp.get(), inputFP32.get(), inCount);
// int8 scale
int hw = mInputDims.d[1] * mInputDims.d[2];
for (int j = 0; j < mInputDims.d[0]; ++j)
{
std::transform(inputFP32.get() + hw * j, inputFP32.get() + hw * (j + 1), inputFP32.get() + hw * j,
[&](float in) -> float { return in * mInHostScale; });
}
CHECK(cudaMalloc(&dst, inCount * elementSize(DataType::kFLOAT)));
CHECK(cudaMemcpy(dst, inputFP32.get(), inCount * elementSize(DataType::kFLOAT), cudaMemcpyHostToDevice));
}