CuPy

2024-02-08 11:48
文章标签 cupy

本文主要是介绍CuPy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CuPy是基于CUDA实现与NumPy兼容的多维数组的实现。CuPy由核心多维数组类cupy.ndarray和许多函数组成。它支持numpy。ndarray接口的字集。CuPy专门进行大型、高维数组、矩阵的快速计算。

  • 安装
#Binary Package for CUDA 10.0
pip3 install cupy-cuda100 --user
  • NumPy和CuPy
    NumPy自动调用cpu来进行数组合矩阵间的计算,计算惹我默认单进程;CuPy自动调用gpu来进行数组合矩阵间的计算,gpu中默认并行计算。二者的函数和实际操作的功能基本完全一样,只需要把np.xxx()该成cp.xxx()即可。

  • CuPy优势

    • 数组、矩阵的维度、尺寸一定要够大,计算量够大才行,最好矢量化编程,否则GPU的初始化耗时都比计算时间都长。
    • 数组、矩阵间的运算,比如矩阵相加、相乘、点乘等,一定要直接使用CuPy自动的函数,能用自带函数就尽量用自带函数。例如cupy.add (x1, x2)不用直接写x1+x2
    • 避免CPU和GPU混合编程,相比计算任务来说,CPU和GPU之间的切换、数据互动等一系列初始化非常耗时。
  • 测试

import cupy as cp
import numpy as np
import time# 高维矩阵/数组:
gpu = cp.ones( (1024,512,4,4) )
cpu = np.ones( (1024,512,4,4) )# 纯numpy的cpu测试:
ctime1 = time.time()
for c in range(1024):cpu = np.add(cpu,cpu)   # 这里用np.add()和直接用 + 一样!内核都是cpu来算
ctime2 = time.time()
ctotal = ctime2 - ctime1
print('纯cpu计算时间:', ctotal)# 纯cupy的gpu测试:
gtime1 = time.time()
for g in range(1024):gpu = cp.add(gpu,gpu)   # 自带的加法函数
gtime2 = time.time()
gtotal = gtime2 - gtime1
print('纯gpu计算时间:', gtotal)# gpu和cpu混合编程:
ggtime1 = time.time()
for g in range(1024):gpu = gpu + gpu         # 手工加法:+ 默认回到cpu计算!!!
ggtime2 = time.time()
ggtotal = ggtime2 - ggtime1
print('混合的计算时间:', ggtotal)
  • 耗时结果
纯cpu计算时间: 43.857738733291626
纯gpu计算时间: 0.02496480941772461
混合的计算时间: 1.4730699062347412
  • 错误
    @cupy.util.memoize(for_each_device=True)
AttributeError: module 'cupy' has no attribute 'util'

修改为(去掉util):

@cupy.memoize(for_each_device=True)

参考资料
CuPy 基于CUDA实现与NumPy兼容的多维数组的实现
Cupy的用处概述

这篇关于CuPy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690938

相关文章

如何用CuPy来对Numpy进行700倍加速

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者:George Seif 编译:ronghuaiyang 导读 给大家试试GPU的威力! Numpy是Python社区的一份大礼。它允许数据科学家、机器学习使用者和统计学家以一种简单有效的方式处理矩阵格式的大量数据。 即使就其本身而言,Numpy在速度方面已经比Python有了很大的提升。当你发现自己Python代码

Cupy介绍与安装

Cupy概述 可以把cupy看做numpy的GPU版本,使用GPU强大的并行计算能力。numpy是很重要的基础设施库,许多库都是基于它构建的,比如:Scipy,Pandas,Matplotlib,Scikit-learn,Statsmodels,SymPy等。由此可见numpy的重要性,而cupy作为其GPU版本,对于需要使用GPU加速计算的项目更加重要。 Cupy安装 可以直接使用pip

cupy,一个超级实用的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个超级实用的 Python 库 - cupy。 Github地址:https://github.com/cupy/cupy 深度学习和科学计算需要处理大规模的数据和复杂的计算任务,而Python是一个非常流行的编程语言,但在处理大规模数据时可能会面临性能瓶颈。Python Cupy是一个基于NumP

numpy加速-->cupy 安装

错误做法: pip install cupy 直接安装往往会报错的,最后出现安装不成功提示。 正确做法: 1. 在以上错误信息中可以直接看到自己的cuda版本,例如我的是cuda9.0 2. pip install cupy-cuda90 3.安装成功

将Numpy加速700倍——CuPy

就其自身来说,Numpy 的速度已经较 Python 有了很大的提升。当你发现 Python 代码运行较慢,尤其出现大量的 for-loops 循环时,通常可以将数据处理移入 Numpy 并实现其向量化最高速度处理。 但有一点,上述 Numpy 加速只是在 CPU 上实现的。由于消费级 CPU 通常只有 8 个核心或更少,所以并行处理数量以及可以实现的加速是有限的。 这就催生了新的加速工具——

Python Cupy 模块:加速大规模数值计算

更多资料获取 📚 个人网站:ipengtao.com Cupy是一个基于NumPy的库,专门设计用于在GPU上进行高性能计算。它提供了与NumPy相似的API,因此用户可以很容易地将现有的NumPy代码迁移到Cupy上,从而充分利用GPU的并行计算能力。 Github:https://github.com/cupy/cupy 安装 Cupy 在开始之前,首先需要安装Cupy。

numpy升级cupy|cupy完整开发笔记|保姆级教学

numpy升级cupy|cupy完整开发笔记|保姆级教学 大家好,这里是【来一块葱花饼】,这次带来了cupy的开发教学,与你分享~ numpy作为 Python 语言的一个扩展程序库,速度已经较 Python 有了很大的提升。CuPy 是一个借助 CUDA在英伟达 GPU 上实现 Numpy 数组的库,则可以更大幅度的提速。 文章目录 numpy升级cupy|cupy完整开

安装cupy失败到成功

1:查看cuda版本: nvcc -V or nuvv --version # 加入环境变量可以查到 2: pip 命令安装 pip install cupy-cuda90 (2 以上安装报错) 3:使用pip3 pip3 install cupy-cuda91 -i https://mirrors.aliyun.com/pypi/simple/ 4:结果成功安装