小编tro*_*ore的帖子

在CUDA profiler nvvp中,"共享/全局内存重播开销"是什么意思?怎么计算?

当我们使用CUDA分析器时nvvp,有几个"开销"与指令相关,例如:

  • 分支发散开销;
  • 共享/全局内存重播开销; 和
  • 本地/全局缓存重播开销.

我的问题是:

  1. 导致这些开销的原因是什么?
  2. 他们是如何计算的?
  3. 同样,如何计算全局负载/存储效率?

附件:我发现在CUDA5工具包中打包的"CUDA Profiler用户指南"中计算这些开销的所有公式.

performance cuda overhead

6
推荐指数
1
解决办法
2310
查看次数

git fetch 到底有什么作用?

现在我想合并一个远程分支,将它命名origin/branch1为我的本地分支branch1,因为我的合作伙伴在我们上次合并后向远程分支 1推送了一个新提交,并且自他上次提交以来我没有提交过,并希望从中获取更新犯罪。我使用了以下命令:

$ git fetch origin branch1
Compressing...
*branch branch1 ->FETCH_HEAD
$ git merge origin/branch1
Already up-to-date
Run Code Online (Sandbox Code Playgroud)

那不是我想要的。在这样做之前,我的想法是使用 fetch 来获取我的合作伙伴添加的内容并origin/branch1更新远程分支。但是,“已经是最新的”意味着我无法在本地分支 1 中获取更新。然后我检查的SHA1值origin/branch1

$ git ls-remote origin
Run Code Online (Sandbox Code Playgroud)

发现在我们上次合并后它保留了旧提交的陈旧值。它告诉git fetch origin branch1无法更新origin/branch1。我做了另一个实验,我的伙伴在他身边创建了另一个名为“branch2”的分支,并将 branch2 中的提交推送到远程源。那我还是用

$ git fetch origin branch2
Compressing...
$ git merge origin/branch2
No branch named "origin/branch2"
Run Code Online (Sandbox Code Playgroud)

“压缩”告诉我第一个命令在 origin 中成功下载了 branch2 中的东西,但是,第二个命令告诉我没有名为 origin/branch2 的分支!因此我得出结论,既不能在本地git fetch origin branchname更新origin/branchname,也不能在不存在的情况下创建远程分支。

在我用 替换git fetch origin branch#git …

git merge fetch

4
推荐指数
1
解决办法
1616
查看次数

对于 CUDA,线程是否停留在 GPU 上的单个 SP 上?

在进行CUDA编程时,我们都知道一个线程块会被调度在一个SM上,不会迁移到其他SM上。对于线程块中的一个线程来说,它在整个执行过程中是停留在单个SP上,还是可以将其指令任意调度到不同的SP上?

cuda scheduling

2
推荐指数
1
解决办法
651
查看次数

标签 统计

cuda ×2

fetch ×1

git ×1

merge ×1

overhead ×1

performance ×1

scheduling ×1