[CUDA] 在 n_unique_values * n_features 超过阈值时,使用离散数据时出现 SIGFPE (浮点异常)
□ 说明
带有“device='cuda”的光GBM与SIGFPE(浮点特例)相撞,在单个值和特性数量超过一定阈值的离散数据上进行培训。
□ 可复制实例
导入 lgbm 为 lgb
将数字导入为 np
# FAIL: 5个离散值×600特性
X = np.random.randint (0, 5, (50000, 600))) stype (np. float32).
y = np.random.uniform(0, 1, 5000).astype(np.float32).
模型 = lgb.LGBMRegressor(device='cuda',n 估计者=10,动词=-1)
model.fit(X,y) # SIGAPE:浮点例外(核心倾销)□ 测试结果
测试了5万行:
========================================================================================================================================================================================== |:|也. 传出 传出 传出 传出 传出 SIGPE 4 传出 传出 SIGPE 5 传出 SIGFPE SIGFPE 6 传出 SIGFPE SIGFPE 7 传出 SIGFPE SIGFPE 8 传出 SIGFPE SIGFPE
QQ 观察模式
崩溃阈值取决于独有值的数量和特性的数量:
- 独特值 * * 大致安全列限制 * * * |:也.
3 - 4 | 600 - 700 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
这表明`n unique *n features'和可用的CUDA直方图箱之间的关系。
工作间
添加微小噪声会将离散值转换为连续并避免崩溃:
X = X.as类型(np.float32)
X \ np.random.uniform(-1e-6, 1e-6, X.shape). astype(np.float32).
现在训练成功□ 真实世界的影响
此错误会影响 Numerai 锦标赛数据 :
- 2.7M行×2376个特征
- 有值{0, 1, 2, 3, 4} (5个离散值) 的 int8 dtype
- 总是触发SIGPE与CUDA
□ 环境
- LightGBM版本:4.6.0.99(来源为GCC 10所建)
- CUDA版本:12.6
- GPU: NVIDIA RTX 5000 Ada Center(计算机能力8.9)
- 司机:572.16人
- OS: Windows 11 + WSL2 (Ubuntu) + Docker (nvidia-Docker) 互联网档案馆的存檔,存档日期2014-12-20.
- 齐特曼4: 3.10
□ 构建命令
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? cmake -B 构建 -S.
- DUSE CUDA=1=1============================================================================================================ ==================================================== (=================================================================================
- DCMake BUILD 类型 释放
- DCMake C COMPILER=gcc-10=== (帮助) (中文(简体) ).
- DCMake CQQCOMPILER=g++-10 (韩语) cmake -- -- 建设 -- -- j$(nproc) cd Python-package 安装 pip.
□ 注释
- CPU培训使用相同的数据。
- 这个问题似乎在CUDA直方图的分解逻辑中
- 行数不会对门槛产生重大影响内容来源: lightgbm-org/LightGBM