code: protected static boolean selectLhsIfCUDA(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs) {
         if (_deviceLhs.getType() != _deviceRhs.getType()) {
            return selectLhsByType(_deviceLhs.getType(), _deviceRhs.getType());
         }
         return _deviceLhs.getMaxWorkGroupSize() == _deviceRhs.getMaxWorkGroupSize()
                 ? _deviceLhs.getGlobalMemSize() > _deviceRhs.getGlobalMemSize()
                 : _deviceLhs.getMaxWorkGroupSize() > _deviceRhs.getMaxWorkGroupSize();
      }
docs: NVidia/CUDA architecture reports maxComputeUnits in a completely different context, i.e. maxComputeUnits is not same as
  (is much less than) the number of OpenCL cores available.
  
  <p>Therefore when comparing an NVidia device we use different criteria.</p>