鞍山网站制作人才招聘专业建站源码
web/
2025/10/6 10:47:04/
文章来源:
鞍山网站制作人才招聘,专业建站源码,广州百度推广外包,中国核工业华兴建设有限公司网站MATLAB目前只支持Nvidia的显卡。如果你的显卡是AMD的或者是Intel的#xff0c;就得考虑另寻它路了。
MATLAB可谓工程计算中的神器#xff0c;一方面它自带丰富的函数库#xff0c;另一方面它所有的数据都是内建的矩阵类型#xff0c;最后画图也方便#xff0c;因此解决一…MATLAB目前只支持Nvidia的显卡。如果你的显卡是AMD的或者是Intel的就得考虑另寻它路了。
MATLAB可谓工程计算中的神器一方面它自带丰富的函数库另一方面它所有的数据都是内建的矩阵类型最后画图也方便因此解决一些小规模的计算问题如果对性能要求不高的话开发效率远大于C FORTRAN之类传统手段。不过受限于PC的计算能力对于一些大规模数据处理它就力不从心了。还好最近Matlab开发了cuda的wrapper计算能力因而上升了一个数量级。
那么怎样在MATLAB上做GPU计算呢?首先要进行数据的初始化。有两种方法可以进行初始化一是先在CPU上设置好数据然后拷贝到GPU二是直接在GPU上初始化数据。先看看第一种方案N 6; M magic(N); G gpuArray(M); 可见把数据从CPU拷贝到GPU上非常简单只要B gpuArray (A)就可以了。实际上MATLAB并没有规定一个矩阵定义之后不能改类型所以以下也是可以的M gpuArray(M);有时候GPU受限于硬件架构单精度的计算远快于双精度。这时候可以考虑在拷贝的时候顺便转换一下精度A gpuArray(single(B));如前所述第二种方法是直接在GPU上设置数据A zeros(10, gpuArray);这时候运行size函数size (A)得到 100 100。所以A其实是一个二维数组。也可以生成一个一维的随机数组r gpuArray.rand(1, 100) % 一行一百列运行class函数class(r)得到ans gpuArray。可见这是一个在gpu上的数组。下面就是对GPU数据进行操作。首先MATLAB定义了GPU上丰富的库函数比如快速傅立叶变换result fft(r)这样result就是另一个GPU上的数组存储了对r做fft的结果。加减乘除更不在话下r2 (real(result) r ) / 2作用是对result取实部之后加r再除以2.这里r2, r, result都是GPU上的数组。方便吧最后是如何把GPU上的数据回传给CPU:B gather (A);其中A是GPU上的数据B是CPU上的数据。B的内容在回传之后等于A。并不是所有的电脑都可以用MATLAB进行GPU加速计算。想知道自己的电脑有没有这个能力运行gpuDevice:gpuDevice ans CUDADevice with properties: Name: GeForce GTX 650 Index: 1 ComputeCapability: 3.0 SupportsDouble: 1 DriverVersion: 6.5000 ToolkitVersion: 5 MaxThreadsPerBlock: 1024 MaxShmemPerBlock: 49152 MaxThreadBlockSize: [1024 1024 64] MaxGridSize: [2.1475e09 65535 65535] SIMDWidth: 32 TotalMemory: 1.0737e09 FreeMemory: 732377088 MultiprocessorCount: 2 ClockRateKHz: 1058500 ComputeMode: Default GPUOverlapsTransfers: 1 KernelExecutionTimeout: 1 CanMapHostMemory: 1 DeviceSupported: 1 DeviceSelected: 1 MATLAB目前只支持Nvidia的显卡。如果你的显卡是AMD的或者是Intel的就得考虑另寻它路了。MATLAB目前只支持Nvidia的显卡。如果你的显卡是AMD的或者是Intel的就得考虑另寻它路了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87864.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!