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);
        }
Esempio n. 2
0
        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);
        }