Пример #1
0
 def internal_free_point_data(self):
     if SVM is None: return
     if SVM.point_data_cpu_copy is not None:
         SVM.point_data_cpu_copy = None      # deallocated by the GC
     if SVM.point_data_gpu_copy is not None:
         gpu_ptr = pycasp.get_GPU_pointer(SVM.point_data_gpu_copy)
         if gpu_ptr == 0: # only dealloc if this memory hasn't been allocated previously
             self.get_asp_mod().dealloc_point_data_on_GPU()
         SVM.point_data_gpu_copy = None
Пример #2
0
 def internal_alloc_point_data(self, X):
     data_ptr = X.__array_interface__['data'][0]
     if SVM.point_data_cpu_copy != data_ptr:
         if SVM.point_data_cpu_copy is not None:
             self.internal_free_point_data()
         self.get_asp_mod().alloc_point_data_on_CPU(X)
         SVM.point_data_cpu_copy = X.__array_interface__['data'][0]
         if SVM.use_cuda:
             gpu_ptr = pycasp.get_GPU_pointer(data_ptr)
             SVM.point_data_gpu_copy = X.__array_interface__['data'][0]
             if gpu_ptr != 0: 
                 self.get_asp_mod().alloc_point_data_on_GPU_from_ptr(gpu_ptr, X.shape[0], X.shape[1])
                 SVM.point_data_gpu_copy = X.__array_interface__['data'][0]
             else:
                 self.get_asp_mod().alloc_point_data_on_GPU(X.shape[0], X.shape[1])
                 self.get_asp_mod().copy_point_data_CPU_to_GPU(X.shape[1])
                 SVM.point_data_gpu_copy = X.__array_interface__['data'][0]
Пример #3
0
 def internal_alloc_component_data(self):
     if GMM.component_data_cpu_copy != self.components:
         if GMM.component_data_cpu_copy:
             self.internal_free_component_data()
         self.get_asp_mod().alloc_components_on_CPU(self.M, self.D,\
                                                    self.components.weights,\
                                                    self.components.means,\
                                                    self.components.covars,\
                                                    self.components.comp_probs)
         GMM.component_data_cpu_copy = self.components
         if GMM.use_cuda:
             # Add to PYCASP memory map
             means_gpu_ptr = self.get_asp_mod().alloc_components_on_GPU(self.M, self.D)
             means_cpu_ptr = self.components.means.__array_interface__['data'][0]
             if pycasp.get_GPU_pointer(means_cpu_ptr) == 0:
                 pycasp.add_to_data_map(means_cpu_ptr, means_gpu_ptr)
             self.get_asp_mod().copy_component_data_CPU_to_GPU(self.M, self.D)
             GMM.component_data_gpu_copy = self.components