2016-04-27 51 views
-2

有人请向我解释一下双人字形在 Kernel<<<32*SM, 256>>>(1 << 20, 2.0, x, y); 做什么?cuda双人字形如1 << 20?

+3

我建议删除'cuda'和'gpgpu'标签,并添加'c'标签。注意这个问题是关于'<<'运算符的。 –

+0

我认为它实际上更好地保持它tbh,认为会有人在cuda中提出这个问题,并不确定是否他们认为它是这样,这将给他们一个确认,如果有人正在搜索c偏移,他们将很容易找到数以千计的线程。只是我的意见tho,如果你们认为我应该改变我会 –

回答

0

它有点变化。 1转了20次。没有具体的cuda。这是一个c/C++符号

+0

大声笑我认为这是别的,这一切都有道理,现在谢谢 –

3

triple-chevron是启动内核的语法 - 调度它由GPU执行。请参阅CUDA Programming Guide(第3.2.2节)中的第一个示例。 double chevron只是通常的左移运算符 - 它不是CUDA相关的,它是内核函数的参数(即参数是1048576或2^20)。我们知道,无论如何,不​​要指望任何其他奇怪的人字形组合都意味着什么任何CUDA特定的。)

+0

谢谢你的帮助,我只是读了一些代码,没有机器测试所以我只需要在这里问一下,tbh三个雪佛龙是一个坏主意,我不知道他们为什么选择它,在我的程序中,我只是将它们变成了更好看的东西。 –

+0

@RockyZhang:我的一位前同事说他认为他们可能已经做到了获得专利或其他东西。顺便说一下,如果你愿意,你可以基本避免它,见[this](https://bitbucket.org/eyalroz/kernel-tester/src/1dfc1880efb1a1e59e1d5929222f78cb7a4a9c1e/src/cuda/kernel_launch_wrapper.cuh?at=default&fileviewer=file-视图 - 默认)很好的模板包装。 – einpoklum

+1

三层雪佛龙专利?真?更可能的解释是他们需要一个在常规C(和C++)中无效的标记,同时仍然易于解析。 –

相关问题