提问人:Jihyun 提问时间:11/5/2023 更新时间:11/5/2023 访问量:28
当多个实例运行时,cuml K-means 集群速度较慢
cuml K-means clustering slower when multiple instances are running
问:
在一台机器上同时运行多个 cuml.cluster.KMeans.fit_predict() 时遇到性能问题。GPU 和主机上都有足够的内存。单独运行时,函数 (max_silhouette_score) 调用大约需要 1 秒。但是,当我同时运行 2 个函数时,每个函数大约需要 5 秒,导致整体速度减慢 5 倍。
这是我的使用上下文:
环境:GPU RTX-3090 CUDA 版本 11.8 cuML 版本 23.08.00
数据集:输入是一个形状为 3000x20 的 pandas DataFrame,完全由数值列和规范化列组成。
函数:我正在运行我的 max_silhouette_score() 函数,该函数在数据集上内部调用 fit_predict() 18 次
代码片段:
from cuml.cluster import KMeans
from cuml.metrics.cluster import silhouette_samples,silhouette_score
def max_silhouette_score(df):
sil_scores = []
test_range = range(2,20)
for k in test_range:
kmeans = KMeans(n_clusters=k,n_init=10)
predictions = kmeans.fit_predict(df)
sil = silhouette_samples(df.values, predictions)
sil_scores.append(float(np.mean(sil)))
max_sil_idx = np.argmax(sil_scores)
max_sil = sil_scores[max_sil_idx]
max_sil_k = list(test_range)[max_sil_idx]
return max_sil,max_sil_k
我已经确认机器的资源在执行过程中没有达到最大值。有没有人对为什么并发执行速度如此之慢有见解,或者对如何在同一台机器上运行多个 fit_predict() 调用时保持相同的性能有建议?
答: 暂无答案
评论