在Azure NV24s V3上,LightGBM GPU的运行速度比CPU慢

时间:2020-07-31 00:19:59

标签: gpu lightgbm

我们在具有24个内核和2个M60 GPU的Azure NV24s v3上从源代码构建了LightGBM v2.3.2。根据LightGBM的文档,建议使用较小的max_bin值来提高GPU速度。但是较小的max_bin值会使它比我的测试更慢。

使用默认的max_bin值(例如255),用120万行训练数据和140K行验证数据计算以下训练需要30秒。每行有160列。然后使用GPU,耗时36秒。使用top和nvtop命令,我发现CPU和GPU都在工作。它使用了全部24个内核和大约25%的GPU。

然后我将max_bin值减小到63,仅CPU花费了28.5秒。但是使用GPU则需要43秒。选择GPU后,将同时使用CPU和GPU。它使用了全部24个内核和25%的GPU。

如何提高GPU性能?培训代码如下所示:

lgb_train=lgb.Dataset(X_train, y_train)
lgb_valid = lgb.Dataset(X_valid, y_valid)

params = {
    'learning_rate': 0.02,
    'objective': 'binary',
    'device' : 'gpu', # comment out this line to run in CPU only
    'metric' : 'binary_logloss',
    'max_bin': 63,
    'random_state': 8
}

model=lgb.train(params, lgb_train, 
    num_boost_round=2000,
    valid_sets=[lgb_train,lgb_valid],
    early_stopping_rounds=35,
    verbose_eval=50)

0 个答案:

没有答案
相关问题