pyCUDA教程-系列学习(1):GPU结构、pyCUDA、numbapro安装及HelloGPU例子

GPU结构

CPU v.s. GPU



CPU是被设计用来处理复杂任务的,而GPU只能做好一件事-处理百万级的低级任务(原来是被用来生成3D图形中的三角形),而且GPU有上千个ALU(算术逻辑单元),而CPU通常只有8个。而且很多程序大部分时间都花在GPU擅长的简单运算上了,所以GPU加速程序很有必要。

CUDA编程有越来越复杂的趋势,但pyCUDA则大大简化了这个过程,并且拥有GPU加速的享受,所以面向GPU的高级编程正逐渐成为主流。

GPU内部图:



CUDA处理流程图:



可以看出,由CPU向GPU部署处理任务,同时由内存向GPU显存复制处理数据,而后GPU的显存将数据布置到每个核进行搞笑的并行运算,而后将结果返回显存,再由显存将结果返回内存。这个流程将会在程序中反复出现。

pyCUDA的安装在python下很简单,只要:(本人用的python3,例子中都改成python3了,其实变得不大)

ubuntu下,sudo pip3 install pycuda

windows命令行,pip3 install pycuda

同时分享,api和官方例子地址:

api:

https://documen.tician.de/pycuda/index.html、

例子:

https://wiki.tiker.net/PyCuda

HelloGPU例子:

import pycuda.driver as drv
import pycuda.tools
import pycuda.autoinit
import numpy
import numpy.linalg as la
from pycuda.compiler import SourceModule

mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
  const int i = threadIdx.x;
  dest[i] = a[i] * b[i];
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)

dest = numpy.zeros_like(a)
multiply_them(
        drv.Out(dest), drv.In(a), drv.In(b),
        block=(400,1,1))

print(dest-a*b)

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当在conda命令中使用"conda install -c anaconda pytorch-gpu"时,出现"solving environment: failed with initi"错误,这可能是由于以下几个原因导致的。 首先,这个错误可能是由于网络连接问题引起的。请确保你的网络连接稳定,并且能够访问Anaconda仓库。你可以尝试重新运行命令,也可以尝试使用不同的网络连接来解决这个问题。 其次,这个错误可能是由于环境冲突导致的。当安装pytorch-gpu时,它可能与其他已安装的软件包存在依赖冲突。你可以尝试创建一个新的conda环境,然后在新的环境中安装pytorch-gpu,这可能会解决这个问题。 另外,这个错误也可能是由于系统环境不兼容导致的。确保你的操作系统与pytorch-gpu的要求相匹配。PyTorch-GPU对比较新的GPU驱动程序和操作系统版本有特定的要求。你可以查看PyTorch-GPU的官方文档,了解它的要求,并确保你的系统符合这些要求。 最后,如果上述方法都没有解决问题,你可以尝试手动安装pytorch-gpu。你可以从官方网站下载适合你操作系统和CUDA版本的pytorch-gpu安装包,然后按照官方指导手动安装。 总结起来,当在conda中使用"conda install -c anaconda pytorch-gpu"命令时出现"solving environment: failed with initi"错误,你可以尝试解决网络连接问题,创建新的conda环境,确认系统环境兼容性,或者尝试手动安装pytorch-gpu来解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值