Пример #1
0
 private static eKernelMethodType GetKernelMethodType(eCudafyType? attr, MethodInfo mi)
 {
     eKernelMethodType kmt;
     if (attr == eCudafyType.Auto)
         kmt = mi.ReturnType.Name == "Void" ? eKernelMethodType.Global : eKernelMethodType.Device;
     else if (attr == eCudafyType.Device)
         kmt = eKernelMethodType.Device;
     else if (attr == eCudafyType.Global && mi.ReturnType.Name != "Void")
         throw new CudafyException(CudafyException.csX_NOT_SUPPORTED, "Return values on global methods");
     else if (attr == eCudafyType.Global)
         kmt = eKernelMethodType.Global;
     else if (attr == eCudafyType.Struct)
         throw new CudafyException(CudafyException.csX_NOT_SUPPORTED, "Cudafy struct attribute on methods");
     else
         throw new CudafyFatalException(attr.ToString());
     return kmt;
 }