Osd.CudaStencilTable
类封装了用于计算图像上邻近像素值的CUDA码头。它提供了低层次的CUDA手推算法以及高层次的Stencil算法。
Stencil表格被视为一组稀疏矩阵,例如用于近似微分方程的用于矩阵内扩散和导数的中心差分系数。这个类负责将这个表格转化为一组矩阵操作。
函数 | 描述 |
---|---|
const CudaStencilTable *Create(int numStencils, const int * sizes, const int * offsets, const int * indices, const float * weights, cudaStream_t stream) |
构造函数,返回一个该类的实例对象。 |
void * GetCudaStencilTable() const |
获取CUDA Stencil表格的指针。 |
void * GetSizes() const |
获取Stencil中的每个条目的Size向量数组的指针。 |
void * GetOffsets() const |
获取Stencil中的每个条目的偏移向量数组的指针。 |
void * GetIndices() const |
获取Stencil中的每个条目的索引向量数组的指针。 |
以下是一个使用Osd.CudaStencilTable
类的简单示例:
const int numControls = 1000;
const int numStencils = ...;
stencilSizes = new int[numStencils];
stencilOffsets = new int[numStencils];
stencilIndices = new int[numStencils*27];
stencilWeights = new float[numStencils*27];
...
// 创建CUDA Stencil表格
Osd::CudaStencilTable *stencilTable = Osd::CudaStencilTable::Create(numStencils, stencilSizes, stencilOffsets, stencilIndices, stencilWeights, cudaStream);
...
// 获取Stencil表格指针
void *devStencilTable = stencilTable->GetCudaStencilTable();
...
// 释放资源
delete[] stencilSizes;
delete[] stencilOffsets;
delete[] stencilIndices;
delete[] stencilWeights;
delete stencilTable;
Osd.CudaStencilTable
类提供了用于计算图像上邻近像素值的CUDA码头。Stencil表格被视为一组稀疏矩阵,该类将这个表格转化为一组矩阵操作。