本文整理汇总了C++中OpenCLContext::getContext方法的典型用法代码示例。如果您正苦于以下问题:C++ OpenCLContext::getContext方法的具体用法?C++ OpenCLContext::getContext怎么用?C++ OpenCLContext::getContext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OpenCLContext
的用法示例。
在下文中一共展示了OpenCLContext::getContext方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tt
void FftClFft::
compute( Tfr::ChunkData::Ptr input, Tfr::ChunkData::Ptr output, DataStorageSize n, FftDirection direction )
{
TaskTimer tt("Stft::computeWithClFft( matrix[%d, %d], %s )",
input->size().width,
input->size().height,
direction==FftDirection_Forward?"forward":"backward");
EXCEPTION_ASSERT( output->numberOfBytes() == input->numberOfBytes() );
const int batchSize = n.height;
OpenCLContext *opencl = &OpenCLContext::Singleton();
cl_int fft_error;
clFFT_Plan plan = CLFFTKernelBuffer::Singleton().getPlan(opencl->getContext(), n.width, fft_error);
if(fft_error != CL_SUCCESS)
throw std::runtime_error("Could not create clFFT compute plan.");
{
TaskTimer tt("Calculating batches");
// Run the fft in OpenCL :)
fft_error |= clFFT_ExecuteInterleaved(
opencl->getCommandQueue(),
plan, batchSize, direction==FftDirection_Forward?clFFT_Forward:clFFT_Inverse,
OpenClMemoryStorage::ReadOnly<1>( input ).ptr(),
OpenClMemoryStorage::ReadWrite<1>( output ).ptr(),
0, NULL, NULL );
if(fft_error != CL_SUCCESS)
throw std::runtime_error("Bad stuff happened during FFT computation.");
}
}
示例2: OpenMMException
OpenCLArray::OpenCLArray(OpenCLContext& context, int size, int elementSize, const std::string& name, cl_int flags) :
context(context), size(size), elementSize(elementSize), name(name), ownsBuffer(true) {
try {
buffer = new cl::Buffer(context.getContext(), flags, size*elementSize);
}
catch (cl::Error err) {
std::stringstream str;
str<<"Error creating array "<<name<<": "<<err.what()<<" ("<<err.err()<<")";
throw OpenMMException(str.str());
}
}