EXP0001: Experimental OpenCL Implementation

Cause

This indicates that the OpenCL implementation is in the experimental phase and may change drastically.

How to Fix Violations

Suppress the warning with

#pragma warning disable EXP0001

Example

The following violates the rule:

builder.Services.AddSingleton<IComputeService, OpenCLService>(provider =>
{
  var logger = provider.GetRequiredService<ILogger<OpenCLService>>();
  return new OpenCLService(
    logger,
    OpenCLService.Vendors.NVIDIA,
    x => x.Name == "NVIDIA GeForce RTX 2080 Ti");
});

The following is valid:

#pragma warning disable EXP0001

builder.Services.AddSingleton<IComputeService, OpenCLService>(provider =>
{
  var logger = provider.GetRequiredService<ILogger<OpenCLService>>();
  return new OpenCLService(
    logger,
    OpenCLService.Vendors.NVIDIA,
    x => x.Name == "NVIDIA GeForce RTX 2080 Ti");
});