CUDA中的复数定义、开内存空间以及运算
最近在做时频混合域的全波形反演(FWI),用CUDA加速,要做复数运算,所以研究了一下CUDA中复数运算等。简单说一下CUDA中复数的基本应用。
在CUDA中用CUFFT的库来定义与运算复数,基本如下:
#include "cufft.h"int main()
{/* Transform real field to complex field */cufftComplex *h_cf ; /* host 上的复数变量 */cufftComplex *d_cf ; /* device 上的复数变量 */h_cf = (cufftComplex *)malloc(sizeof(cufftComplex) * nf); cudaMalloc((void**)&d_cf, sizeof(cufftComplex)*nf); for (int it = 0,t=0.0; it < nt; ++it,t+=dt){for (int iff=0;iff<nf;iff++) {h_cf[iff].x=exp(-damp*t)*cos(2.0*PI*invf[iff]*t);h_cf[iff].y=exp(-damp*t)*sin(2.0*PI*invf[iff]*t);}}CHECK(cudaMemcpy(d_cf,h_cf,sizeof(cufftComplex)*nf,cudaMemcpyHostToDevice));free(h_cf);CHECK(cudaFree(d_cf));}
以上是CUDA中,复数的定义、开辟空间、CPU/GPU间的传递以及内存的释放。希望对大家有用
CUDA中的复数定义、开内存空间以及运算相关推荐
- C++中的类所占内存空间总结
C++中的类所占内存空间总结 最近在复习c++的一些基础,感觉这篇文章很不错,转载来,大家看看! 类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的 ...
- java中各种类型所占内存空间大小
一.常用类型占用内存大小 java中常用类型所占内存大小,以下值以实测为准. 类型 数量 大小 备注 byte 1 1B byte 1024 1KB int 1 4B int 1024 4KB boo ...
- C语言中常见数据类型和对应内存空间大小
C语言的数据类型是指变量所能存储的数据范围和格式的类型.C语言提供了以下几种基本的数据类型: int类型:int类型用于存储整数(正数.负数.零).它可以有不同的位数,例如int类型可以是16位.32 ...
- 在代码段中安排自己定义的栈空间
如何定义自己的栈(通过系统分配的内存) 完成下面的程序,利用栈.将程序中定义的数据逆序存放. 我们之前是如何安排自己的栈? 设置SS:SP(SS为栈顶的段地址存放处,栈顶偏移地址存放在SP) 我们如何 ...
- C语言中指针占据内存空间问题
以前一直有个疑问,指向不同类型的指针到底占用的内存空间是多大呢? 这个问题我多次问过老师,老师的答案是"指向不同类型的指针占据的内存空间大小不同",我一直很之一这个答案,今天我就做 ...
- 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
文章目录 一.变量概念 二.变量本质 1.变量本质 - 内存别名 2.变量存储位置 - 代码区 3.变量三要素 一.变量概念 变量概念 : 变量 是 既能读 , 又能写 的 内存对象 ; 与 变量 相 ...
- java 内存空间_怎样用java实现存储空间动态分配
1.java是如何管理内存的 Java的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象 ...
- java 数据保存内存_java中的各种数据类型在内存中存储的方式 一
1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...
- java内存空间详解
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般 ...
最新文章
- python哪一版好用-Python最好用的编辑器是哪款?北京老男孩教育
- ERP项目选型实施注意的几点(二)
- QML创建C ++插件
- 判断jQuery选择器结果为空 - CSDN博客
- sap 新建事务_SAP GUI里的收藏夹事务码管理工具
- 微信小程序四种父子相互传值方式
- (转)MapReduce二次排序
- prolog 从list中取出一个_二、redis中Hash、Set、SortedSet应用场景
- 一键修改电脑硬件信息_不想使用iPhone锁屏键?一键锁屏快捷指令来了
- 最近一段时间的找工作计划
- [Maven实战-许晓斌]-[第二章]-2.7-2.8 Mave安装的最优建议和安装小结
- 慧荣SM2246XT、SM2246EN开卡教程 及 固件下载
- 感恩节快到了 Thanksgiving is coming,愿所有人健康平安!
- 苹果CMS小俊XG013主题模板下载
- 简述冯诺依曼工作原理_冯.诺依曼计算机的基本工作原理是什么??
- 结构体 — C 语言中不定长结构体的使用
- 智能优化及其应用——课程设计(粒子群算法)
- android studio 使用第三方模拟器连接方法,如MUMU模拟器
- 对于木马的一些介绍(预防木马)
- 你真的会使用github吗?