public SystemValidationReport Validate() { var report = new SystemValidationReport(); #if NETSTANDARD if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { report.MicrosoftVisualCPlusPlusRedistributableExists = this.IsMicrosoftVisualCPlusPlus2017Available(); } else { report.MicrosoftVisualCPlusPlusRedistributableExists = true; } #endif #if NET461 report.MicrosoftVisualCPlusPlusRedistributableExists = this.IsMicrosoftVisualCPlusPlus2017Available(); #endif if (File.Exists("cudnn64_7.dll")) { report.CudnnExists = true; } var envirormentVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine); if (envirormentVariables.Contains("CUDA_PATH")) { report.CudaExists = true; } if (envirormentVariables.Contains("CUDA_PATH_V10_2")) { report.CudaExists = true; } // Unity bool isUnity, isUnityIOS; var unityApplicationClass = Type.GetType(UnityEngineApplicationClassName); if (unityApplicationClass != null) { isUnity = true; // Consult value of Application.platform via reflection // https://docs.unity3d.com/ScriptReference/Application-platform.html var platformProperty = unityApplicationClass.GetTypeInfo().GetProperty("platform"); var unityRuntimePlatform = platformProperty?.GetValue(null)?.ToString(); isUnityIOS = (unityRuntimePlatform == "IPhonePlayer"); } else { isUnity = false; isUnityIOS = false; } if (isUnity) { report.CudnnExists = true; report.CudaExists = true; } return(report); }
public SystemValidationReport Validate() { var report = new SystemValidationReport(); #if NETSTANDARD if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { report.MicrosoftVisualCPlusPlusRedistributableExists = IsMicrosoftVisualCPlusPlus2017Available(); } else { report.MicrosoftVisualCPlusPlusRedistributableExists = true; } #endif #if NET461 report.MicrosoftVisualCPlusPlusRedistributableExists = this.IsMicrosoftVisualCPlusPlus2017Available(); #endif const string yoloDllFileName = "yolo_cpp_dll_gpu.dll"; int cudnnVersion = 7; int cudartVersion = 102; // 10.2 if (File.Exists(yoloDllFileName)) { report.YoloGpuDll = true; var data = File.ReadAllBytes(yoloDllFileName); if (FindVersion(data, CudnnPattern, out int version)) { cudnnVersion = version; } if (FindVersion(data, CudartPattern, out version)) { cudartVersion = version; } } string cudnnFileName = $"cudnn64_{cudnnVersion}.dll"; if (File.Exists(cudnnFileName)) { report.CudnnExists = true; } var environmentVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine); if (environmentVariables.Contains("CUDA_PATH")) { report.CudaExists = true; } int cudaVersionMajor = cudartVersion / 10; int cudaVersionMinor = cudartVersion % 10; if (environmentVariables.Contains($"CUDA_PATH_V{cudaVersionMajor}_{cudaVersionMinor}")) { report.CudaExists = true; } return(report); }
public SystemValidationReport Validate() { var report = new SystemValidationReport(); report.MicrosoftVisualCPlusPlusRedistributableExists = this.IsMicrosoftVisualCPlusPlus2017Available(); if (File.Exists("cudnn64_7.dll")) { report.CudnnExists = true; } var envirormentVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine); if (envirormentVariables.Contains("CUDA_PATH")) { report.CudaExists = true; } if (envirormentVariables.Contains("CUDA_PATH_V10_2")) { report.CudaExists = true; } return(report); }
public SystemValidationReport Validate() { var report = new SystemValidationReport(); #if NETSTANDARD if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { report.MicrosoftVisualCPlusPlusRedistributableExists = this.IsMicrosoftVisualCPlusPlus2017Available(); } else { report.MicrosoftVisualCPlusPlusRedistributableExists = true; } #endif #if NET461 report.MicrosoftVisualCPlusPlusRedistributableExists = this.IsMicrosoftVisualCPlusPlus2017Available(); #endif if (File.Exists("cudnn64_7.dll")) { report.CudnnExists = true; } var envirormentVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine); if (envirormentVariables.Contains("CUDA_PATH")) { report.CudaExists = true; } if (envirormentVariables.Contains("CUDA_PATH_V10_2")) { report.CudaExists = true; } return(report); }