Skip to content
Snippets Groups Projects
Commit 84588344 authored by Eric Wait's avatar Eric Wait
Browse files

Added buffer conversion when copying to and from the device

parent f7e96ab9
No related branches found
No related tags found
No related merge requests found
#pragma once
template <typename T>
void toDevice(T** dst, T* src, size_t length)
{
*dst = src;
}
template <typename T, typename U>
void toDevice(T** dst, U* src, size_t length)
{
T* temp = new T[length];
for (size_t i = 0; i < length; ++i)
temp[i] = (T)(src[i]);
*dst = temp;
}
template <typename T>
void fromDevice(T** dst, T** src, size_t length)
{
*dst = *src;
}
template <typename T, typename U>
void fromDevice(T** dst, U* src, size_t length)
{
*dst = new T[length];
}
template <typename T>
void copyBuffer(T** dst, T** src, size_t length)
{
*dst = *src;
}
template <typename T, typename U>
void copyBuffer(T** dst, U** src, size_t length)
{
for (size_t i = 0; i < length; ++i)
(*dst)[i] = (T)((*src)[i]);
U* toDelete = *src;
delete[] toDelete;
}
template <typename T>
void cleanBuffer(T** buff, T* src) {}
template <typename T, typename U>
void cleanBuffer(T** buff, U* src)
{
T* toDelete = *buff;
delete[] toDelete;
}
......@@ -122,6 +122,7 @@
<ClCompile Include="Cuda\GaussianKernel.cpp" />
<ClCompile Include="Cuda\ImageChunk.cpp" />
<ClCompile Include="Cuda\LoGKernel.cpp" />
<ClInclude Include="Cuda\BufferConversions.h" />
<ClInclude Include="Cuda\CudaClosure.cuh" />
<ClInclude Include="Cuda\CudaLoG.cuh" />
<ClInclude Include="Cuda\CudaMeanFilter.cuh" />
......
......@@ -120,6 +120,9 @@
<ClInclude Include="Cuda\CudaElementWiseDifference.cuh">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Cuda\BufferConversions.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="Cuda\ImageDimensions.cuh">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment