zoukankan      html  css  js  c++  java
  • matlab 中使用 GPU 加速运算

    为了提高大规模数据处理的能力,matlab 的 GPU 并行计算,本质上是在 cuda 的基础上开发的 wrapper,也就是说 matlab 目前只支持 NVIDIA 的显卡。

    1. GPU 硬件支持

    首先想要在 matlab 中使用 GPU 加速运算,需要计算机配备有 NVIDIA 的显卡,可在 matlab 中运行:

    >> gpuDevice

    如果本机有 GPU 支持,会列出 CUDADevice 的相关属性。

    2. GPU 和 CPU 之间的数据传递

    • gpuArray:将定义在 CPU 上的矩阵转换为 GPU 模式;

      X=rand(10,'single'); 
      GX=gpuArray(X);      
      GX2=GX.*GX;         
    • gather:将 GPU 内存中的数据拷贝到 CPU 内存中

    • 在一些函数中通过相关参数进行 GPU 支持;

      • rand(10, ‘gpuArray’)

    3. tips

    • 有时候 GPU 受限于硬件架构,单精度的计算远快于双精度。这时候可以考虑在拷贝的时候顺便转换一下精度 A = gpuArray(single(B)) 以进一步提高运算速度 。

    • 对于一些代码结构较为复杂的程序,除了 matlab 提供的内置函数进行 GPU 加速外,matlab 还可调用 .cu 文件

      • matlab + c/c++ 的混合编程能把 .c, .cc, .cpp 等文件编译为可供使用的 mex 文件,
      • 对于 cuda 程序(.cu),matlab 则可调用相关编译工具,将其编译为 .ptx 文件;

    Matlab之GPU加速方法

  • 相关阅读:
    JavaScript进阶-BOM和DOM
    JavaScript基础
    CSS2-属性
    CSS1-选择器
    HTML-常用标签
    判断回文
    课堂作业
    动手动脑
    原码反码补码
    Java第一次考试作业
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422148.html
Copyright © 2011-2022 走看看