- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我仍然不确定在使用 nvcc 构建时如何正确指定代码生成的体系结构。我知道我的二进制文件中嵌入了机器代码和 PTX 代码,并且可以通过 Controller 开关 -code
进行控制。和-arch
(或使用 -gencode
两者的组合)。
现在,根据 this除了两个编译器标志之外,还有两种指定体系结构的方法: sm_XX
和compute_XX
,其中compute_XX
指虚拟和 sm_XX
到一个真正的建筑。旗帜-arch
仅采用虚拟架构的标识符(例如 compute_XX
),而 -code
flag 接受真实架构和虚拟架构的标识符。
文档指出 -arch
指定为其编译输入文件的虚拟体系结构。然而,这个 PTX 代码不会自动编译为机器代码,但这只是一个“预处理步骤”。
现在,-code
应该指定 PTX 代码针对哪些架构进行汇编和优化。
但是,尚不清楚二进制文件中将嵌入哪种 PTX 或二进制代码。例如,如果我指定 -arch=compute_30 -code=sm_52
,这是否意味着我的代码将首先编译为功能级别 3.0 PTX,然后从中创建功能级别 5.2 的机器代码?将嵌入什么?
如果我只是指定 -code=sm_52
那么会发生什么?仅嵌入由 V5.2 PTX 代码创建的 V5.2 机器代码?与 -code=compute_52
有什么区别? ?
最佳答案
I am still not sure how to properly specify the architectures for code generation when building with nvcc.
完整的描述有些复杂,但其目的是相对简单、易于内存的规范用法。针对代表您希望定位的 GPU 的架构(虚拟和真实)进行编译。一个相当简单的形式是:
-gencode arch=compute_XX,code=sm_XX
其中 XX 是您希望定位的 GPU 的两位数计算能力。如果您希望定位多个 GPU,只需对每个 XX 目标重复整个序列即可。这大约是 CUDA 示例代码项目所采用的方法。 (如果您想在可执行文件中包含 PTX,请包含一个额外的 -gencode
和 code
选项,指定与 arch
选项相同的 PTX 虚拟架构)。
另一种相当简单的形式,当仅针对单个 GPU 时,只需使用:
-arch=sm_XX
与 XX 的描述相同。此表单将包括指定架构的 SASS 和 PTX。
Now, according to this apart from the two compiler flags there are also two ways of specifying architectures: sm_XX and compute_XX, where compute_XX refers to a virtual and sm_XX to a real architecture. The flag -arch only takes identifiers for virtual architectures (such as compute_XX) whereas the -code flag takes both, identifiers for real and for virtual architectures.
当 arch
时,这基本上是正确的和code
用作 -gencode
内的子开关开关,或者如果两者一起使用,如您所描述的那样独立。但是,例如,当-arch
时单独使用(不带 -code
),它代表另一种“速记”符号,在这种情况下,您可以传递一个真实的架构,例如 -arch=sm_52
However, it is not clear which PTX or binary code will be embedded in the binary. If I specify for example -arch=compute_30 -code=sm_52, does that mean my code will first be compiled to feature level 3.0 PTX from which afterwards machine code for feature level 5.2 will be created from? And what will be embedded?
嵌入内容的确切定义因使用形式而异。但对于这个例子:
-gencode arch=compute_30,code=sm_52
或者对于您确定的等效情况:
-arch=compute_30 -code=sm_52
那么是的,这意味着:
ptxas
工具将生成符合 cc5.2 标准的 SASS 代码。(我不确定为什么您实际上会指定这样的组合,但它是合法的。)
If I just specify -code=sm_52 what will happen then? Only machine code for V5.2 will be embedded that has been created out of V5.2 PTX code? And what would be the difference to -code=compute_52?
-code=sm_52
将从中间 PTX 代码生成 cc5.2 SASS 代码。 SASS 代码将被嵌入,PTX 将被丢弃。请注意,以这种形式单独指定此选项,不带 -arch
选项,将是非法的。 (1)
-code=compute_52
将(仅)生成 cc5.x PTX 代码并将该 PTX 嵌入到可执行文件/二进制文件中。请注意,以这种形式单独指定此选项,不带 -arch
选项,将是非法的。 (1)
cuobjdump
tool可用于识别给定二进制文件中到底包含哪些组件。
(1) 当没有 -gencode
时使用开关,没有-arch
使用开关,nvcc
假定默认 -arch=sm_20
附加到您的编译命令中(这是针对 CUDA 7.5,默认 -arch
设置可能会因 CUDA 版本而异)。 sm_20
是一个真实架构,并且在-arch
上指定一个真实架构是不合法的。当 -code
时的选项还提供了选项。
关于CUDA:如何使用 -arch 和 -code 以及 SM 与 COMPUTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35656294/
我需要澄清一下 AT 命令 AT+CPMS="SM","SM","MT" 尽管此 AT 命令适用于大多数 UE,但它会为诺基亚 N72 提供错误消息... 我试过 AT 命令 AT+CPMS=? &
我使用 hidden-sm 在平板电脑模式下隐藏我的 col-sm-5。 如何让 col-sm-4 在隐藏时重新获得 col-sm-5
我有一个问题来自 IBM's Nested Relational Database White Paper 的第 16 页,我很困惑为什么在下面的 CREATE 命令中他们使用 MV/MS/MS 而不
这个问题源于在内核中观察到的理论占用率和实现占用率之间的差异。我知道 different occupancy between calculator and nvprof以及 A question ab
我想将 col-sm-4 中的元素移动到显示它的窗口的左侧,基本上我的元素是一个圆环图,它在移动 View 中显示了一半——但是我想如果我可以在 col-xs-6 元素内进行调整,它将正确显示。 这是
是否可以在 bootstrap 中实现? 我实现了两行标签和输入。 LABEL* 但是当显示宽度超过 sm 大小时,我想将它们放在一行中。因此,我按如下方式编辑我的代码。
我注意到我的网站在桌面上看起来很好,但在我的手机上却有些问题。简而言之,我的网站是这样的 我注意到:第二行左侧没有空白。 第一种方法:改变
这个问题在这里已经有了答案: Nested rows with bootstrap grid system? (2 个答案) bootstrap 3 to bootstrap 4 cols no
我想从两个表中获取数据。 表一 deviceadd 具有以下列 DeviceID (primary key), DeviceName, SerialNumber, ModelNumber, Make
我正在使用 bootstrap,在某些 div 中,我使用了宽度为 16.6667% 的 col-sm-2 类。在这个宽度下,我看到我的元素相当大。 我也尝试过使用 col-sm-1,但这次元素太小了
如果类中没有指定col-lg和col-md,那么col-sm是否适用于所有大屏? 最佳答案 是的。 来自 bootstrap , Grid classes apply to devices with
作为this question的回答显示,当一个 SM 包含 8 个 CUDA 核心(计算能力 1.3)时,32 个线程的单个 warp 需要 4 个时钟周期来执行整个 warp 的单个指令。 即在
我正在运行一个 ols 模型,我需要知道所有系数,以便在我的分析中使用它们。如何以不同于科学记数法的格式显示/保存系数? model = sm.ols(formula="sales ~ product
我是一个刚刚接触CUDA编程的人。 好像有SP SM和CUDA架构的概念。 我曾尝试运行示例源的 deviceQuery.cpp 我认为有效的是他们环境的 SP SM 开发, 不知SP是不是SM中的任
有什么方法可以明确限制在我的程序运行期间使用的 GPU 多处理器的数量?我想计算我的算法如何随着多处理器数量的增加而扩展。 如果有帮助:我正在使用 CUDA 4.0 和计算能力为 2.0 的设备。 最
我有以下 div,它在导航栏上显示了一个登录按钮,但如果屏幕很小,我想隐藏这个按钮。出于某种原因,当我添加 fxHide.gt-sm=true 时,当我缩小屏幕时它不会隐藏。我该如何解决这个问题?
我正在尝试在我的新 Android 设备上制作我的 SD 卡内部存储。 我已经成功地安装了 ADB 和 Fastboot,虽然它不像我希望的那么简单,并且必须将它们安装在 usr/local/bin
我试图了解 GPU 的基本架构。我已经浏览了很多 Material ,包括这个very good SO answer .但我仍然很困惑,无法得到一张好的照片。 我的理解: 一个 GPU 包含两个或多个
我有两个 block 使用 Bootstrap 3: A B 当我处于移动模式时, block 被放置在彼此之下。 如何将它们内联放置直到有可用空间? 最佳答案 仅供引用,
我正在尝试创建一个简单的侧边栏,它将隐藏在小型设备上.. 但不能让它工作.. #sidebar 要么被隐藏,要么 #main 上的 padding-left 设置为 0 sidebar test @m
我是一名优秀的程序员,十分优秀!