예제 #1
0
 public static int cuDeviceGetAttribute(CUdevice_attribute attrib, CUdevice dev)
 {
     return(Wrap(() =>
     {
         try
         {
             int i;
             var error = nativeDeviceGetAttribute(out i, attrib, dev);
             if (error != CUresult.CUDA_SUCCESS)
             {
                 throw new CudaException(error);
             }
             return i;
         }
         catch (CudaException)
         {
             throw;
         }
         catch (DllNotFoundException dnfe)
         {
             throw new CudaException(CudaError.NoDriver, dnfe);
         }
         catch (Exception e)
         {
             throw new CudaException(CudaError.Unknown, e);
         }
     }));
 }
예제 #2
0
        public static bool cuDeviceGetFlag(CUdevice_attribute attrib, CUdevice dev)
        {
            var value = cuDeviceGetAttribute(attrib, dev);

            if (value == 0)
            {
                return(false);
            }
            else if (value == 1)
            {
                return(true);
            }
            else
            {
                var fex = new FormatException(String.Format("Attribute \"{0}\" has value \"{1}\" which isn't convertible to bool.", attrib, value));
                throw new CudaException(CudaError.InvalidValue, fex);
            }
        }
예제 #3
0
 public static bool cuDeviceGetFlag(CUdevice_attribute attrib, CUdevice dev)
 {
     var value = cuDeviceGetAttribute(attrib, dev);
     if (value == 0)
     {
         return false;
     }
     else if (value == 1)
     {
         return true;
     }
     else
     {
         var fex = new FormatException(String.Format("Attribute \"{0}\" has value \"{1}\" which isn't convertible to bool.", attrib, value));
         throw new CudaException(CudaError.InvalidValue, fex);
     }
 }
예제 #4
0
 public static int cuDeviceGetAttribute(CUdevice_attribute attrib, CUdevice dev)
 {
     return Wrap(() =>
     {
         try
         {
             int i;
             var error = nativeDeviceGetAttribute(out i, attrib, dev);
             if (error != CUresult.CUDA_SUCCESS) throw new CudaException(error);
             return i;
         }
         catch (CudaException)
         {
             throw;
         }
         catch (DllNotFoundException dnfe)
         {
             throw new CudaException(CudaError.NoDriver, dnfe);
         }
         catch (Exception e)
         {
             throw new CudaException(CudaError.Unknown, e);
         }
     });
 }
예제 #5
0
 // http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/online/group__CUDEVICE_ge283d0251a80fe5a82ec8f6e552eb248.html
 private static extern CUresult nativeDeviceGetAttribute(out int pi, CUdevice_attribute attrib, CUdevice dev);
예제 #6
0
 // http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/online/group__CUDEVICE_ge283d0251a80fe5a82ec8f6e552eb248.html
 private static extern CUresult nativeDeviceGetAttribute(out int pi, CUdevice_attribute attrib, CUdevice dev);
예제 #7
0
 public int GetAttribute(CUdevice_attribute attrib)
 {
     return(Driver.DeviceGetAttribute(attrib, device));
 }
예제 #8
0
 /// <summary> see CUDA doc; </summary>
 public static void DeviceGetAttribute(out int pi, CUdevice_attribute attrib, CUdevice dev)
 {
     testResult(my.cuDeviceGetAttribute(out pi, attrib, dev));
 }