cuda和结构体
来源:互联网 发布:nginx allow 编辑:程序博客网 时间:2024/05/22 13:47
在CUDA中使用结构体,比如这种形式:
struct saxpy_functor { const float a; saxpy_functor(float _a) : a(_a) {} __host__ __device__ float operator()(const float& x, const float& y) const { return a * x + y; } };
这样,结构体里就具有了cuda的存储类型的成员。
cuda中还经常出现reduce操作。搜了一下,还是浙大的一个学姐写得详细:
http://blog.csdn.net/abcjennifer/article/details/43528407
下面还有一个cuda结构体分配存储空间的例子:
http://blog.csdn.net/wang11234514/article/details/18664139
********
如果涉及链表,则网上给出的解答是:
另外一篇海洋大学的文章则称,CUDA6的统一寻址提供了很好的解决办法。http://www.ouccloud.com/356.html
下面是一个用到统一寻址功能的排序:http://bbs.csdn.net/topics/310264284
相关的各种排序:http://blog.sina.com.cn/s/blog_a1243c1901014w9h.html
对于cuda,还涉及运算符重载。下面有一个牛人的总结:https://wuyuans.com/2012/09/cpp-operator-overload/
忽然想到java和python。java不支持运算符重载,而phthon支持。
(1) 一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好重载为类的友元函数。
(2) 以下一些双目运算符不能重载为类的友元函数:=、()、[]、->。
(3) 类型转换函数只能定义为一个类的成员函数而不能定义为类的友元函数。
(4) 若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好。
(5) 若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数。
(6) 当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是对该类对象的引用)。如果左边的操作数必须是一个不同类的对象,或者是一个内部 类型的对象,该运算符函数必须作为一个友元函数来实现。
- cuda和结构体
- cuda结构体数组拷贝
- CUDA传递结构体数组
- cuda中结构体的赋值
- GPU硬件结构--CUDA
- cuda工程文件组织结构
- CUDA结构简介
- Cuda编程结构《1》
- CUDA学习笔记 03 cuda文件组织结构
- CUDA GPU编程中使用结构体传递函数参数
- CUDA GPU编程中使用结构体传递函数参数
- CUDA的结构指南简述
- CUDA的内存结构,通过实例展示寄存器和共享内存的使用
- cuda安装配置和新建cuda程序
- 【OpenCV & CUDA】OpenCV和Cuda结合编程
- Opencl和CUDA
- CUDA和OpenCL
- Opencl和CUDA
- 2016年10月22日工作知识点小结
- NSOperation
- 自己编写的字符串处理函数
- 类的继承
- vs2013编译cocos2d-x3.2依赖库找不到
- cuda和结构体
- NOIP2015 day2 [二分][DP][树剖]
- 从尾到头打印链表
- OGG Defgen 使用方法
- AndroidManifest.xml详解
- 对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。
- mongodb3.2 步步深入二:增删改查
- 计算机的微处理器
- 记app断网广播展示布局