Windows安装CuPy报error C3615错误

CuPy简介

CuPy 是基于 CUDA 实现与 NumPy 兼容的多维数组的实现。 CuPy 由核心多维数组类 cupy.ndarray 和许多函数组成。 它支持 numpy.ndarray 接口的子集。

问题出现

Windows 环境下安装CuPy

pip install cupy

在编译CUDA的.cu文件文件时出现C3615错误,本地编译器时VS2022的MSVC。具体错误如下:

      C:\Users\yesy\AppData\Local\Temp\pip-install-y318um1n\cupy_5bd86417e2c340b6b449c45ce7549be3\cupy\cuda\cupy_cub.cu(86): error C3615: constexpr 函数“std::numeric_limits<__half>::infinity”不能生成常量表达式

      C:\Users\yesy\AppData\Local\Temp\pip-install-y318um1n\cupy_5bd86417e2c340b6b449c45ce7549be3\cupy\cuda\cupy_cub.cu(88): note: 失败原因是 constexpr 上下文中无效的语句或表达式

      tmpxft_00009d90_00000000-10_cupy_thrust.compute_90.cudafe1.cpp

      building 'cupy.cuda.thrust' extension

问题解决

尝试了网络上修改cupy_cub.cu的方法,并不凑效,直接参考官方文档,带上本机cuda版本号(我机器上是12.x),安装命令如下:

pip install cupy-cuda12x

代码可测试通过:

import cupy as cp
import numpy as np
import xgboost as xgb
from sklearn import metrics
from sklearn.datasets import make_regression

X, y = make_regression()

reg = xgb.XGBRegressor()
model = reg.fit(X, y)

# No warning, reg and X are on CPU
y_hat = reg.predict(X)
print('====================CPU====================')
print(f"MAE: {metrics.mean_absolute_error(y, y_hat)}")
print(f"MAPE: {metrics.mean_absolute_percentage_error(y, y_hat)}")
print(f"MSE: {metrics.mean_squared_error(y, y_hat)}")
print(f"RMSE: {np.sqrt(metrics.mean_squared_error(y, y_hat))}")
print(f"R-SQUARE: {metrics.r2_score(y, y_hat)}")

# Put X into GPU
X = cp.array(X)
# Put reg to GPU
reg.set_params(device="cuda")
# No warning, both on GPU
y_hat_cuda = reg.predict(X)
print('====================GPU====================')
print(f"MAE: {metrics.mean_absolute_error(y, y_hat_cuda)}")
print(f"MAPE: {metrics.mean_absolute_percentage_error(y, y_hat_cuda)}")
print(f"MSE: {metrics.mean_squared_error(y, y_hat_cuda)}")
print(f"RMSE: {cp.sqrt(metrics.mean_squared_error(y, y_hat_cuda))}")
print(f"R-SQUARE: {metrics.r2_score(y, y_hat_cuda)}")

参考资料

Installation — CuPy 13.1.0 documentation

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 00:50:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 00:50:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 00:50:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 00:50:02       18 阅读

热门阅读

  1. 前端开发之WebSocket通信

    2024-06-08 00:50:02       8 阅读
  2. 人工智能处理大数据很方便吗

    2024-06-08 00:50:02       7 阅读
  3. 数据结构(Trie树(字典树))

    2024-06-08 00:50:02       5 阅读
  4. Mybatis使用缓存的配置总结

    2024-06-08 00:50:02       8 阅读
  5. 正则表达式详解

    2024-06-08 00:50:02       8 阅读
  6. 【bug】在 Windows 上安装 SDKMAN! 的完整指南

    2024-06-08 00:50:02       10 阅读
  7. oracle dataguard 从库 MRP 进程的状态是 WAIT_FOR_GAP

    2024-06-08 00:50:02       8 阅读
  8. 如何评价GPT-4o?

    2024-06-08 00:50:02       9 阅读
  9. CEF编译打包(支持MP4播放,windows-x64版本)

    2024-06-08 00:50:02       8 阅读
  10. WebSocket和HTTP协议对比

    2024-06-08 00:50:02       10 阅读
  11. 【Git】(七)git push用法

    2024-06-08 00:50:02       9 阅读
  12. 中子介程三

    2024-06-08 00:50:02       6 阅读