Beispiel #1
0
 def test_libdevice_path_decision(self):
     # Check that the default is using conda environment
     by, info = self.remote_do(self.do_clear_envs)
     if has_cuda:
         self.assertEqual(by, 'Conda environment')
     else:
         self.assertEqual(by, "<unavailable>")
         self.assertIsNone(info)
     # Check that CUDA_HOME works by removing conda-env
     by, info = self.remote_do(self.do_set_cuda_home)
     self.assertEqual(by, 'CUDA_HOME')
     self.assertEqual(info, os.path.join('mycudahome', 'nvvm', 'libdevice'))
     # Check that NUMBAPRO_LIBDEVICE override works
     by, info = self.remote_do(self.do_set_libdevice)
     self.assertEqual(by, 'NUMBAPRO_LIBDEVICE')
     self.assertEqual(info, os.path.join('nbp_libdevice'))
     if get_system_ctk() is None:
         # Fake remove conda environment so no cudatoolkit is available
         by, info = self.remote_do(self.do_clear_envs)
         self.assertEqual(by, '<unavailable>')
         self.assertIsNone(info)
     else:
         # Use system available cudatoolkit
         by, info = self.remote_do(self.do_clear_envs)
         self.assertEqual(by, 'System')
 def test_libdevice_path_decision(self):
     # Check that the default is using conda environment
     by, info = self.remote_do(self.do_clear_envs)
     if has_cuda:
         self.assertEqual(by, 'Conda environment')
     else:
         self.assertEqual(by, "<unavailable>")
         self.assertIsNone(info)
     # Check that CUDA_HOME works by removing conda-env
     by, info = self.remote_do(self.do_set_cuda_home)
     self.assertEqual(by, 'CUDA_HOME')
     self.assertEqual(info, os.path.join('mycudahome', 'nvvm', 'libdevice'))
     # Check that NUMBAPRO_LIBDEVICE override works
     by, info = self.remote_do(self.do_set_libdevice)
     self.assertEqual(by, 'NUMBAPRO_LIBDEVICE')
     self.assertEqual(info, os.path.join('nbp_libdevice'))
     if get_system_ctk() is None:
         # Fake remove conda environment so no cudatoolkit is available
         by, info = self.remote_do(self.do_clear_envs)
         self.assertEqual(by, '<unavailable>')
         self.assertIsNone(info)
     else:
         # Use system available cudatoolkit
         by, info = self.remote_do(self.do_clear_envs)
         self.assertEqual(by, 'System')
    def test_libdevice_path_decision(self):
        # Check that the default is using conda environment
        by, info, warns = self.remote_do(self.do_clear_envs)
        if has_cuda:
            self.assertEqual(by, "Conda environment")
        else:
            self.assertEqual(by, "<unknown>")
            self.assertIsNone(info)
        self.assertFalse(warns)
        # Check that CUDA_HOME works by removing conda-env
        by, info, warns = self.remote_do(self.do_set_cuda_home)
        self.assertEqual(by, "CUDA_HOME")
        self.assertEqual(info, os.path.join("mycudahome", "nvvm", "libdevice"))
        self.assertFalse(warns)

        # Check that NUMBAPRO_LIBDEVICE override *warns*
        by, info, warns = self.remote_do(self.do_set_libdevice)
        self.check_NUMBAPRO_warning(warns)
        # clear
        self.remote_do(self.do_clear_envs)

        if get_system_ctk() is None:
            # Fake remove conda environment so no cudatoolkit is available
            by, info, warns = self.remote_do(self.do_clear_envs)
            self.assertEqual(by, "<unknown>")
            self.assertIsNone(info)
            self.assertFalse(warns)
        else:
            # Use system available cudatoolkit
            by, info, warns = self.remote_do(self.do_clear_envs)
            self.assertEqual(by, "System")
            self.assertFalse(warns)
    def test_cudalib_path_decision(self):
        # Check that the default is using conda environment
        by, info, warns = self.remote_do(self.do_clear_envs)
        if has_cuda:
            self.assertEqual(by, 'Conda environment')
        else:
            self.assertEqual(by, "<unknown>")
            self.assertIsNone(info)
        self.assertFalse(warns)

        # Check that CUDA_HOME works by removing conda-env
        self.remote_do(self.do_clear_envs)
        by, info, warns = self.remote_do(self.do_set_cuda_home)
        self.assertEqual(by, 'CUDA_HOME')
        self.assertFalse(warns)
        if IS_WIN32:
            self.assertEqual(info, os.path.join('mycudahome', 'bin'))
        elif IS_OSX:
            self.assertEqual(info, os.path.join('mycudahome', 'lib'))
        else:
            self.assertEqual(info, os.path.join('mycudahome', 'lib64'))
        if get_system_ctk() is None:
            # Fake remove conda environment so no cudatoolkit is available
            by, info, warns = self.remote_do(self.do_clear_envs)
            self.assertEqual(by, "<unknown>")
            self.assertIsNone(info)
            self.assertFalse(warns)
        else:
            # Use system available cudatoolkit
            by, info, warns = self.remote_do(self.do_clear_envs)
            self.assertEqual(by, 'System')
            self.assertFalse(warns)
    def test_nvvm_path_decision(self):
        # Check that the default is using conda environment
        by, info, warns = self.remote_do(self.do_clear_envs)
        if has_cuda:
            self.assertEqual(by, "Conda environment")
        else:
            self.assertEqual(by, "<unknown>")
            self.assertIsNone(info)
        self.assertFalse(warns)
        # Check that CUDA_HOME works by removing conda-env
        by, info, warns = self.remote_do(self.do_set_cuda_home)
        self.assertEqual(by, "CUDA_HOME")
        self.assertFalse(warns)
        if IS_WIN32:
            self.assertEqual(info, os.path.join("mycudahome", "nvvm", "bin"))
        elif IS_OSX:
            self.assertEqual(info, os.path.join("mycudahome", "nvvm", "lib"))
        else:
            self.assertEqual(info, os.path.join("mycudahome", "nvvm", "lib64"))

        # Check that NUMBAPRO_CUDALIB override warns
        self.remote_do(self.do_clear_envs)
        by, info, warns = self.remote_do(self.do_set_cuda_lib)
        self.check_NUMBAPRO_warning(warns)

        # Check that NUMBAPRO_NVVM override warns
        self.remote_do(self.do_clear_envs)
        by, info, warns = self.remote_do(self.do_set_nvvm)
        self.check_NUMBAPRO_warning(warns)

        if get_system_ctk() is None:
            # Fake remove conda environment so no cudatoolkit is available
            by, info, warns = self.remote_do(self.do_clear_envs)
            self.assertEqual(by, "<unknown>")
            self.assertIsNone(info)
            self.assertFalse(warns)
        else:
            # Use system available cudatoolkit
            by, info, warns = self.remote_do(self.do_clear_envs)
            self.assertEqual(by, "System")
            self.assertFalse(warns)