码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • pycuda使用方法


    Step1 安装visual studio,然后安装新版本的cuda,比如cuda11

    Step2  安装pycuda, 命令如下:pip install pycuda

    Step3 运行以下例子:

    import pycuda
    import pycuda.autoinit
    import pycuda.driver as drv
    import numpy
    from pycuda.compiler import SourceModule
    ### 防止找不到c语言编译器 
    import os
    if (os.system("cl.exe")):
        os.environ['PATH'] += ';'+r"D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64"
    if (os.system("cl.exe")):
        raise RuntimeError("cl.exe still not found, path probably incorrect")
    ##### 具体乘法模块 
    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), grid=(1,1))
    #### 测试结果与cpu计算结果比较
    print(dest - a * b)

    当然以上代码只是一个简单的例子,具体需要更加精确的Grid Block Thread个数设计,比如1000万长度的列向量相乘最好写成以下形式:

    mod2 = SourceModule("""
    __global__ void multiply_them(float *dest, float *a, float *b, int data_length)
    
  • 相关阅读:
    Java中的局部变量和成员变量的区别
    一篇文章带你走进cookie,session,Token的世界
    Redis测试
    git常见操作
    Leetcode.2786 访问数组中的位置使分数最大
    Django学习(三) 之 模板中标签的使用
    微软研发“超级大脑“:Excel智商提高25.6%!
    Jenkins插件开发——提供对外访问接口
    干货 | 如何在子查询和联接之间选择
    Inpaint Anything:一键进行多种图像修补
  • 原文地址:https://blog.csdn.net/chenguowen21/article/details/126639149
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号