当多个实例运行时,cuml K-means 集群速度较慢

cuml K-means clustering slower when multiple instances are running

提问人:Jihyun 提问时间:11/5/2023 更新时间:11/5/2023 访问量:28

问:

在一台机器上同时运行多个 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() 调用时保持相同的性能有建议?

python k-means 库姆

评论


答: 暂无答案