Skip to content

Commit

Permalink
Added error messages to verify OpenCL C version in CLAccelerator.
Browse files Browse the repository at this point in the history
  • Loading branch information
m4rs-mt committed Nov 23, 2019
1 parent b71ff11 commit 1e44c25
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
11 changes: 10 additions & 1 deletion Src/ILGPU/Resources/RuntimeErrorMessages.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Src/ILGPU/Resources/RuntimeErrorMessages.resx
Expand Up @@ -168,6 +168,9 @@
<data name="NotSupportedNonBlittableType" xml:space="preserve">
<value>Type type '{0}' is not blittable</value>
</data>
<data name="NotSupportedOpenCLCVersion" xml:space="preserve">
<value>Not supported OpenCL C version (&gt;= {0} required)</value>
</data>
<data name="NotSupportedPTXArchitecture" xml:space="preserve">
<value>Not supported PTX architecture</value>
</data>
Expand Down
10 changes: 8 additions & 2 deletions Src/ILGPU/Runtime/OpenCL/CLAccelerator.cs
Expand Up @@ -461,8 +461,14 @@ private void InitSubGroupSupport(CLAcceleratorId acceleratorId)
new CLMemoryBuffer<T, TIndex>(this, extent);

/// <summary cref="KernelAccelerator{TCompiledKernel, TKernel}.CreateKernel(TCompiledKernel)"/>
protected override CLKernel CreateKernel(CLCompiledKernel compiledKernel) =>
new CLKernel(this, compiledKernel, null);
protected override CLKernel CreateKernel(CLCompiledKernel compiledKernel)
{
// Verify OpenCL C version
if (compiledKernel.CVersion > CVersion)
throw new NotSupportedException(
string.Format(RuntimeErrorMessages.NotSupportedOpenCLCVersion, compiledKernel.CVersion));
return new CLKernel(this, compiledKernel, null);
}

/// <summary cref="KernelAccelerator{TCompiledKernel, TKernel}.CreateKernel(TCompiledKernel, MethodInfo)"/>
protected override CLKernel CreateKernel(CLCompiledKernel compiledKernel, MethodInfo launcher) =>
Expand Down

0 comments on commit 1e44c25

Please sign in to comment.