前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python pycuda进行GPU编程(并行编程 38)

python pycuda进行GPU编程(并行编程 38)

作者头像
用户5760343
发布2019-07-30 10:55:30
2.5K0
发布2019-07-30 10:55:30
举报
文章被收录于专栏:sktjsktj

类似的框架还有:numbapy pyopencl

CPU v.s. GPU

image.png

CPU是被设计用来处理复杂任务的,而GPU只能做好一件事-处理百万级的低级任务(原来是被用来生成3D图形中的三角形),而且GPU有上千个ALU(算术逻辑单元),而CPU通常只有8个。而且很多程序大部分时间都花在GPU擅长的简单运算上了,所以GPU加速程序很有必要。 CUDA编程有越来越复杂的趋势,但pyCUDA则大大简化了这个过程,并且拥有GPU加速的享受,所以面向GPU的高级编程正逐渐成为主流。 GPU内部图:

image.png

CUDA处理流程图: ![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)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类似的框架还有:numbapy pyopencl
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档