热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cubin文件怎么得到?

请问cubin文件怎么得到?我在visualstudio2005里建立了一个project,但是运行后并没有cubin文件产生。是需要在编译命令行里设置吗?另外,ptx汇编代码在那里看?直接用反汇
请问cubin文件怎么得到?我在visual studio 2005里建立了一个project,但是运行后并没有cubin文件产生。是需要在编译命令行里设置吗?另外,ptx汇编代码在那里看?直接用反汇编看吗?

17 个解决方案

#1


用以下编译命令可生成cubin文件sample.cubin:
"H:\CUDA\bin\nvcc.exe"  -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -I"H:\CUDA\include" -I"H:\CUDA\common\inc" --cubin --ptxas-optiOns=-v -O2 -D_CONSOLE -arch compute_11 -code sm_11 sample.cu

用以下编译命令可生成ptx文件sample.ptx:
"H:\CUDA\bin\nvcc.exe"  -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -I"H:\CUDA\include" -I"H:\CUDA\common\inc" --ptx -O2 -D_CONSOLE -arch compute_11 -code sm_11 sample.cu

要注意sdk安装路径。

#2


谢谢l7331014!
按l7331014的提示作了如下操作:
生成cubin文件idct.cubin:
"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -I"$(CUDA_INC_PATH)" --cubin --ptxas-optiOns=-v -O2 -D_DEBUG -arch compute_11 -code sm_11 idct.cu 
结果如下:
1>idct.cu
1>tmpxft_0000109c_00000000-3_idct.cudafe1.gpu
1>tmpxft_0000109c_00000000-8_idct.cudafe2.gpu
1>ptxas info    : Compiling entry function '__globfunc__Z8FastIdctPiS_S_Pl'
1>ptxas info    : Used 17 registers, 32+32 bytes smem, 16 bytes cmem[1]
1>正在链接...
1>LINK : fatal error LNK1181: 无法打开输入文件“.\Debug\idct.obj”
“无法打开输入文件” 是需要还添加编译选项-c吗?我添加如下:
"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VCInstallDir)bin" -I"$(CUDA_INC_PATH)"   -c -DWIN32 --cubin --ptxas-optiOns=-v -O2 -D_DEBUG -arch compute_11 -code sm_11 idct.cu
结果如下:
1>nvcc fatal   : More than one compilation phase specified
1>正在链接...
1>LINK : fatal error LNK1181: 无法打开输入文件“.\Debug\idct.obj”
请再指点。

#3


生成ptx文件也有同样的问题,都是LINK : fatal error LNK1181: 无法打开输入文件“.\Debug\idct.obj”。
虽然联结不成功,但确实生成了cubin文件和ptx文件。

#4


你又不要连接最后的结果。(我也是)
所以,简单忽略。呵呵。
倒过来想,生成cubin或ptx只是把nvcc编译的"中间结果"拿出来了。
"编译"本身没完成哪,哪来的结果? :)

#5


link的时候需要obj文件,但是生成ptx的时候没有生产obj文件,当然就会连接出错

#6


知道了,谢谢l7331014和OpenHero。

#7


引用 1 楼 l7331014 的回复:
用以下编译命令可生成cubin文件sample.cubin: 
"H:\CUDA\bin\nvcc.exe"  -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -I"H:\CUDA\include" -I"H:\CUDA\common\inc" --cubin --ptxas-optiOns=-v -O2 -D_CONSOLE -arch compute_11 -code sm_11 sample.cu 

用以下编译命令可生成ptx文件sample.ptx: 
"H:\CUDA\bin\nvcc.exe"  -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -I"H:\CUDA\inclu…


请问,这些命令应该放在什么地方?如果要看cubin的话,为什么是sample.cu?

#8


引用 7 楼 zs192001 的回复:
请问,这些命令应该放在什么地方?如果要看cubin的话,为什么是sample.cu?

在dos窗口下直接执行。
sample.cu是源程序的名称,还要注意H:...,C:...等软件安装路径要改为你的。

#9


在dos中生成的cubin的结果是,
9 registers , 2088+ 1064 bytes shared memory , 4 bytes cmem[1]

而cubin文件:
architecture {sm_11}
abiversion {0}
modname {cubin}
code  {
name = __globfunc__Z10muldMatrixPfS_S_iii
lmem = 0
smem = 2088
reg = 9
bar = 1
bincode  {
    ...
}
const  {
segname = const
segnum = 1
offset = 0
bytes = 4
mem  {
0x000003ff 
}
}
}
2088应该是一个线程的smem的大小吧,1064是什么呢?
在我自己的程序中,我只分配了2048大小的smem,多出来的是什么?
谢谢!!!

#10


我上面好像想错了,假设一个block有256个线程,我在一个thread中声明一个shared类型的存储区域,这个区域应该是整个block使用的,如果这个大小是2048bytes,那么,应该整个block的smem大小是2048,而不是2048*256。
这样理解对吗?

#11


引用 10 楼 zs192001 的回复:
我上面好像想错了,假设一个block有256个线程,我在一个thread中声明一个shared类型的存储区域,这个区域应该是整个block使用的,如果这个大小是2048bytes,那么,应该整个block的smem大小是2048,而不是2048*256。 
这样理解对吗? 


对,2048。

#12


我使用vs编译规则得到.cubin文件,可是用写字板打开都是乱码,怎么回事啊?我用的是SDK中的例子,我的显卡是gt240,应该不存在寄存器超出的问题?我现在找不到原因了?求高手指点

#13


引用 12 楼 ajiao05240625 的回复:
我使用vs编译规则得到.cubin文件,可是用写字板打开都是乱码,怎么回事啊?我用的是SDK中的例子,我的显卡是gt240,应该不存在寄存器超出的问题?我现在找不到原因了?求高手指点


sdk 3.x以后文件格式改了,不是可直接可读的文本文件了.

#14


那你有什么推荐的查看软件吗?
引用 13 楼 l7331014 的回复:
引用 12 楼 ajiao05240625 的回复:
我使用vs编译规则得到.cubin文件,可是用写字板打开都是乱码,怎么回事啊?我用的是SDK中的例子,我的显卡是gt240,应该不存在寄存器超出的问题?我现在找不到原因了?求高手指点


sdk 3.x以后文件格式改了,不是可直接可读的文本文件了.

#15


那你有什么推荐的查看软件吗?
引用 13 楼 l7331014 的回复:
引用 12 楼 ajiao05240625 的回复:
我使用vs编译规则得到.cubin文件,可是用写字板打开都是乱码,怎么回事啊?我用的是SDK中的例子,我的显卡是gt240,应该不存在寄存器超出的问题?我现在找不到原因了?求高手指点


sdk 3.x以后文件格式改了,不是可直接可读的文本文件了.

#16


那你有什么推荐的查看软件吗?

#17


刚开始跟老师学CUDA做项目,学习中

推荐阅读
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • 本文介绍了 NOI Open Judge 6049 购书问题的详细解法,代码简洁易懂,并附有详细的注释和解释。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
author-avatar
郭红飞2001
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有