n_clusters = [n_samples_sqrt / 2, n_samples_sqrt] n_clusters = map(int,n_clusters) # generator = K_Means(cuda_mem="manual") # generator.n_clusters = n_clusters[-1] # generator.max_iter = 3 # generator.fit(data) generator = K_Means(cuda_mem="manual") generator.N = n_samples generator.D = n_features generator.n_clusters = n_clusters[-1] generator.centroids = generator._init_centroids(data) generator.labels = np.empty(shape=generator.N, dtype = np.int32) generator._dists = np.empty(shape=generator.N, dtype = np.float32) generator._compute_cuda_dims(data) gridDim = generator._gridDim blockDim = generator._blockDim dData = cuda.to_device(data) dCentroids = cuda.to_device(generator.centroids) dLabels = cuda.device_array_like(generator.labels) dDists = cuda.device_array_like(generator._dists) _cu_label_kernel_dists[gridDim,blockDim](dData,dCentroids,dLabels,dDists) dDists.copy_to_host(ary = generator._dists) labels = dLabels.copy_to_host(ary = generator.labels)
data = data.astype(np.float32) n_samples_sqrt = np.int(np.sqrt(n_samples)) n_clusters = [n_samples_sqrt / 2, n_samples_sqrt] n_clusters = map(int,n_clusters) generator = K_Means(cuda_mem="manual") generator.n_clusters = 176 generator.max_iter = 1 generator.N = n_samples generator.D = n_features generator.centroids = generator._init_centroids(data) generator.labels = cuda.pinned_array(shape=generator.N, dtype = np.int32) generator._dists = cuda.pinned_array(shape=generator.N, dtype = np.float32) generator._compute_cuda_dims(data) gridDim = generator._gridDim blockDim = generator._blockDim print "grid: ", gridDim print "block: ", blockDim dData = cuda.to_device(data) dCentroids = cuda.to_device(generator.centroids) dLabels = cuda.device_array_like(generator.labels) dDists = cuda.device_array_like(generator._dists)
n_clusters = [n_samples_sqrt / 2, n_samples_sqrt] n_clusters = map(int, n_clusters) # generator = K_Means(cuda_mem="manual") # generator.n_clusters = n_clusters[-1] # generator.max_iter = 3 # generator.fit(data) generator = K_Means(cuda_mem="manual") generator.N = n_samples generator.D = n_features generator.n_clusters = n_clusters[-1] generator.centroids = generator._init_centroids(data) generator.labels = np.empty(shape=generator.N, dtype=np.int32) generator._dists = np.empty(shape=generator.N, dtype=np.float32) generator._compute_cuda_dims(data) gridDim = generator._gridDim blockDim = generator._blockDim dData = cuda.to_device(data) dCentroids = cuda.to_device(generator.centroids) dLabels = cuda.device_array_like(generator.labels) dDists = cuda.device_array_like(generator._dists) _cu_label_kernel_dists[gridDim, blockDim](dData, dCentroids, dLabels, dDists) dDists.copy_to_host(ary=generator._dists) labels = dLabels.copy_to_host(ary=generator.labels)