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 = 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)
Exemple #2
0
data, gt = make_blobs(n_samples = n_samples, n_features = n_features, centers = centers)
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)
Exemple #3
0
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 = 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)