首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CUDA缩减-和样本:数据竞赛?

CUDA缩减-和样本:数据竞赛?
EN

Stack Overflow用户
提问于 2015-06-29 03:59:22
回答 1查看 341关注 0票数 1

我是数据自动化系统的新手,目前我正在调查和减少样本,这与我的最终目标相关。

提供的文档描述了如何对内核进行优化,以快速减少跨块的大型数组。宿主函数reduce在reduction_kernel.cu中使用模板在编译时优化各种内核。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template <class T>
void reduce(int size, int threads, int blocks,
            int whichKernel, T *d_idata, T *d_odata)
{
    // 
    // Long list with switch statement to have all optimized functions at compile-time
    //

    // amongst which (for instance):
    case 32:
        reduce5<T,  32><<< dimGrid, dimBlock, smemSize >>>(d_idata, d_odata, size);
        break;

编辑:内核reduce5d_idata的部分和填充d_odata。更具体地说,它将g_idata的元素与索引2*blockSize*blockIdx.x相加到2*blockSize*(blockIdx.x + 1) (不包括在内),并将结果存储在g_odata[blockIdx.x]中。(编辑-结尾)

总和是通过缩小块的大小来得到的,直到剩下一个块为止。主机代码用于通过在减少的数组上重复启动内核来跨“级别”同步内核。Reduction.cpp中的相关代码位:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template <class T>
T benchmarkReduce(int n, numThreads, numBlocks, /* more args */, 
                  T *h_odata, T *d_idata, T *d_odata) {

    // first kernel launch
    reduce<T>(n, numThreads, numBlocks, whichKernel, d_idata, d_odata);

    // repeated kernel launches
    int s=numBlocks;
    int kernel = whichKernel;

    while (s > cpuFinalThreshold)
    {   
        int threads = 0, blocks = 0;
        getNumBlocksAndThreads(kernel, s, maxBlocks, maxThreads, blocks, threads);

        reduce<T>(s, threads, blocks, kernel, d_odata, d_odata);

        if (kernel < 3) 
            s = (s + threads - 1) / threads;
        else
            s = (s + (threads*2-1)) / (threads*2);  
    }
}

我对第一个内核调用很满意,它将d_idata的部分和存储在d_odata中。我担心的是第二个内核发布(在while循环中):即内核将同时读写,这可能导致数据竞争。例如,第二个块可以在第一个块读取其原始值之前将其部分和写入d_odata[1];这是第一个块的部分和所必需的。

我错过了一个细节吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-21 17:44:25

这一点已在数据自动化系统8.0软件包中得到修正。库达8.0很快就会面世。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31115128

复制
相关文章
pycharm上传文件到服务器_python代码部署到服务器
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174583.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
4.2K0
pycharm上传文件到服务器_python代码部署到服务器
mac怎么上传文件到服务器_shell上传文件到服务器
我们使用mac时,想让本地文件上传至服务器,该怎么办呢 windows系统,我们可以使用xftp或者rz命令,那么mac呢? mac系统,我们可以使用sftp、scp或者rz命令,本文介绍sftp
全栈程序员站长
2022/09/19
13.1K0
mac怎么上传文件到服务器_shell上传文件到服务器
iOS开发中上传JSON字符串到后台服务器
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/72457751
用户1451823
2018/09/13
1.6K0
[android] 上传文件到服务器
前面我们使用普通的方式post提交数据,比较麻烦,现在使用异步框架来实现以下,感觉非常舒服。
唯一Chat
2019/09/10
7.3K0
IOS 上传到后台json数据
今天后台让我传一个类似下图 后台要求的数据格式 我以前还没有这样传过数据。不知道该怎么传,在网上搜了一下,很感谢www.cnblogs.com/yang-guang-girl/p/5642333.ht
honey缘木鱼
2018/06/13
8270
jenkins上传文件到服务器
2、获取文件名,重新命名文件为上传的名字。(mv file_name ${file_name})
@凌晨
2023/09/29
8310
jenkins上传文件到服务器
上传项目代码到Github|Gitee
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
WHYBIGDATA
2023/01/31
6850
上传项目代码到Github|Gitee
如何上传代码到github?
1. 先到GitHub: Where the world builds software · GitHub 注册一个账号,此处忽略
全栈程序员站长
2022/11/15
6440
如何上传代码到github?
上传本地代码到github
点击下面的Create repository,就会进入到类似下面的一个页面,拿到创建的仓库的https地址,红框标示的就是
IT小马哥
2020/03/18
7000
idea上传代码到github
在第一次提交的情况下,如果报错 Push rejected: Push to origin/master was rejected。
Twcat_tree
2022/11/30
6960
idea上传代码到github
Springboot上传文件到Linux服务器
jar打包方式不支持将文件动态写入文件,这时需要通过映射的方式将文件上传到映射某一个文件夹,通过映射获取文件,在页面显示。
全栈程序员站长
2022/08/30
5.7K0
Springboot上传文件到Linux服务器
iOS实现上传图片到服务器
当然如果你的项目大的话最好使用开源的网络库ASI或者AFNetWork,库里面都有现有的方法,
用户7705674
2021/10/29
2.8K0
Python上传文件到FTP服务器
代码在python2.7下测试通过!写在最前面! # -*- coding: UTF-8 -*- from ftplib import FTP import os import os.path #上传文件到FTP服务器 def ftp_upload(filename, save_filename): ftp = FTP() ftp.set_debuglevel(0) # 打开调试级别2,显示详细信息;0为关闭调试信息 ftp.connect('bl
苦咖啡
2018/04/28
8.7K0
IOS Alamofire上传文件到服务器
103 @IBAction func touchupInsideUploadingFileBtnAction(_ sender:AnyObject) { 104 let fileURL = Bundle.main.url(forResource:“tortoise”, withExtension:“png”) 105 Alamofire.upload(fileURL!,to:“https://httpbin.org/post”) 106 .validate() 107 .response
用户5760343
2019/07/08
3.6K0
使用linux上传代码到gitee
一、 git的安装 sudo yum -y install git 检查是否安装成功 git --version(这个是输入) git version 1.8.3.1 (若安装成功会自动弹出) 二、过程 1. 仓库链接 首先登录gittee,进入仓库,并找到克隆/下载 点击下载后,找到HTPPS并复制链接 2.linux中的操作 进入你想要传的文件目录中 [yzq@VM-8-8-centos ~]$ cd mk [yzq@VM-8-8-centos mk]$ ls main.c ma
lovevivi
2022/11/10
7080
使用linux上传代码到gitee
Git上传项目代码到github上
1、在github上申请账号,并New Repositories(我的名字是April-Taurus),新建的Repository默认master为其主干分支
杨肆月
2019/08/15
1.2K0
Git上传项目代码到github上
存取json数据到数据库
开发中可能会遇到这样的需求:比如说页面的一个N*N的表格中需要存取多个字段,如下图所示,很明显这里是需要支持动态添加的,如果此时我们建立对应的字段如插入的话,显然是一种比较麻烦的方式,所以我们可以使用在对应的实体类中添加一个List或者是JsonArray字段来表达对应的字段。如图二所示:
关忆北.
2021/12/07
1.3K0
存取json数据到数据库
java图片上传服务器保存路径(如何上传文件到网站服务器)
好了现在重点就是看Upload 这个类了 这个类基本是封装好了的,需要 加的东西可以自己取看看然后修改
Java架构师必看
2022/04/11
8K0
点击加载更多

相似问题

Android分块上传图片和JSON数据到服务器

82

Android上传JSON到服务器错误

21

JSON和上传图片到服务器

21

Javascript / Json / Firestore代码到firestore批量上传

113

如何批量上传JSON数据到Cloudant?

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文