惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
Google DeepMind News
Google DeepMind News
月光博客
月光博客
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog

CUDA

招聘|外资对冲基金|机器学习工程师 [英伟达] [北京或者上海] [深度学习性能优化-CUDA] 训练 SVC 声音模型 2060 12g 和 8G 的 3060TI 哪个快 win11 使用 cuda 调用两个 gpu 计算时,自带任务管理器看不到 gpu2 的使用率? [cuda 函数劫持] cuda12.2 版本新增了一个函数 cuGetProcAddress_v2,请问如何进行劫持? Set Max_split_size_mb To Avoid Oom In Pytorch [英伟达 NVIDIA] [上海/北京/深圳] [CUDA 相关岗位] 如果实现 openmpi 和 cuda 编程的结合 怎么把显卡显存中的 rgba 图像渲染输出? 如何实现 CUDA 的分布式并行运算? 游戏本上用 cuda 是什么体验? Tesla k20m 使用问题 CUDA on WSL cuda 计算 titan v 为何比 rtx2080ti 更慢? DeOldify 不死心问一下笔记本 1050 支持 cudnn 吗? Python+CUDA,大家有什么推荐的值得深入学习了解的项目或者著作么? 写 CUDA,使用专业卡与游戏卡有什么区别? 急求推荐个 5k 人民币左右的运算 GPU,能装 ubuntu 就行,跑深度学习用的,必须在 nvidia 运算能力表里面的卡 OpenCL/CUDA/云存储求牛人指导,小伙伴们来围观 :) 想了想用 WebGL 能不能做科学计算 有人用雷电转 PCI-e 设备外接显卡跑过 CUDA 的么? 关于 GPU CUDA 编程的优化问题 CPU or GPU? CUDA or OpenCL ?
关于使用 GPU 生成随机数(cuda/opencl)
different · 2019-08-11 · via CUDA

由于特殊原因(原因很特殊(手动狗头))并不能使用 cuda 自带的随机函数。

因此,翻车了....。

目的:在不使用 cuda 自带的随机函数前提下,使用 cuda/opencl 的一个内核函数生成 10000 个高斯分布的随机数。

本人已尝试一下步骤:

1.在 cpu 生成 10000 的随机函数(应该是线性同余算法)

2.在 cpu 使用 The Box – Muller transform (听说和线性同余算法使用起来会翻车..)算法将步骤 1 的随机数转成正态分布

3.然后检验是否为正态分布,结果是对的.

4.至此,已经生成了一个 10000 个服从高斯分布的随机数啦,将其保存到数组 a。

事实上需要不断生成并使用数组 a。

因此考虑 GPU

分析:上述的 cpu 代码是序列进行的,也就是只有一个随机种子,然后在一个线程内完成了 10000 个随机数的生成。

然后将代码改改放到 GPU 上面来生成。(目标是实现与 cuda 的函数 curandGenerateNormal(cuda::generator, cudaRand, number, 0.0, 1.0); 一摸一样的功能)。

为了得到与 curandGenerateNormal 函数相同的结果,我尝试每个内核线程维护一个种子,也就是有 10000 个随机数种子。(调用一次内核,然后执行一万个线程,每隔线程使用自己的种子生成一个随机数,然后组合到数组 a 中) 但是目前,我做了试验中,如果每个内核线程维护一个种子,每个线程维护 a[i](i 为线程 id),最后的出来的并不服从高斯分布。

也就是说,纵向去看的话( cpu 串行)是可以得到高斯分布的随机数,横向并不行。

也就是说,假如有 a 数组,b 数组....z 数组中,每个数组自个是高斯分布,但是 a...z 中,各取一个出来,组合在一起,并不服从高斯分布。

而如果从直观上出发,上述应该也服从高斯分布,但是由于随机种子的问题,可能导致其 a....z 可能有相关性。具体原因我也不是很清楚。

不知道表达清楚没,各位兄台有没有了解过相关的信息?

一句话概括就是:curandGenerateNormal 函数相同的功能...

所以想问问大伙有做过相关的研究吗?