CUDA编译(一)---使用nvcc编译cuda
CUDA编译(一)—使用nvcc编译cuda
- nvcc介绍
- 示例
nvcc介绍
nvcc是编译cuda程序的编译器,CDUA C是在C语言上的扩展,所以它依赖C编译器(C编译器在window下是cl.exe,在Linux下是gcc)。因此我们编译CUDA程序必须依靠编译器nvcc。
其实,nvcc编译cuda程序和g++编译c++程序是差不多的。在我的其它博客中也写了有关g++编译c++程序的内容:g++ 命令的使用 ,可以作为参考。
示例
示例中创建了一个main.cu作为主程序入口,foo.cuh和foo.cu定义了一个函数实现。注意到文件数的后缀都是cuda程序可识别的后缀。
main.cu:
#include <stdio.h>
#include <iostream>
//#include <cuda_runtime.h>
#include "foo.cuh"int main()
{std::cout<<"Hello NVCC"<<std::endl;useCUDA();return 0;}
foo.cuh:
其中使用enxtern "C"是为了让支持C语言的nvcc调用。
#ifndef FOO_CUH
#define FOO_CUH#include <stdio.h>__global__ void foo();extern "C"
void useCUDA();#endif
foo.cu:
#include "foo.cuh"#define CHECK(res) { if(res != cudaSuccess){printf("Error :%s:%d , ", __FILE__,__LINE__); \
printf("code : %d , reason : %s \n", res,cudaGetErrorString(res));exit(-1);}}__global__ void foo()
{printf("CUDA!\n");
}void useCUDA()
{foo<<<1,5>>>();CHECK(cudaDeviceSynchronize());}
这时,定位到三个文件所在目录。
命令行输入:
nvcc -o main.out main.cu foo.cu
即可完成cuda程序的编译。
运行:./main.out
可得:
Hello NVCC
CUDA!
CUDA!
CUDA!
CUDA!
CUDA!
关于混合编译C++与cuda的问题可见:CUDA编译(二)—用CMake混合编译C++与cuda
CUDA编译(一)---使用nvcc编译cuda相关推荐
- 理清 NVIDIA,CUDA,cuDNN,nvcc 关系 CUDA 环境安装
文章目录 概念介绍 CUDA 环境安装 服务器基础环境安装 基础软件 SSH 和 SFTP Anaconda 替换 apt 源 Git freeglut NVIDIA 驱动安装 CUDA-toolki ...
- 编译DCNv2网络:error: command ‘C:\\Program Files\\NVIDIAGPUComputingToolkit\\CUDA\\v10.0\\bin\\nvcc.exe‘
在复现FairMOT时编译DCNv2出现了一个错误 error: command 'C:\\Program Files\\NVIDIAGPUComputingToolkit\\CUDA\\v10.0\ ...
- c++ nvcc编译CUDA程序入门示例
nvcc nvcc是NVIDIA CUDA Compiler,用来编译host和device程序. 这里的术语: host:指CPU及其内存 device:指GPU及其内存 使用nvcc,就可以编译C ...
- CUDA以及NVCC编译流程
文章转载自: http://chenrudan.github.io/ 在安装CUDA的时候,会安装三个大的组件[1],分别是NVIDIA驱动.toolkit和samples.驱动用来控制gpu硬件,t ...
- CUDA C++编程接口:编译
CUDA C++编程接口:编译 一.概述 CUDA C++为熟悉C++编程语言的用户提供了一个简单的路径,以方便地编写程序以执行该设备. 它由一组最小的扩展到C++语言和运行库. 在编程模型中引入了核 ...
- windows11编译OpenCV4.5.0 with CUDA(附注意事项)
windows11编译OpenCV4.5.0 with CUDA 从OpenCV4.2.0 版本开始允许使用 Nvidia GPU 来加速推理.本文介绍最近使用windows11系统编译带CUDA的O ...
- Pytorch 使用不同版本的 cuda,跟使用不同版本的cuda进行编译扩展库,其实TensorFlow也是一样
在使用 Pytorch 时,由于 Pytorch 和 cuda 版本的更新,可能出现程序运行时需要特定版本的 cuda 进行运行环境支持的情况,如使用特定版本的 cuda 编译 CUDAExtensi ...
- 【Windows】怎么查看CUDA版本?Conda命令安装和NVIDIA官网安装包安装的CUDA有何区别?nvcc -V和nvidia-smi获得的CUDA版本有何区别?如何指定CUDA版本?
一.如何查看CUDA版本? 1.1 查看runtime版本的CUDA (1)nvcc -V或nvcc --version (2)在CUDA的include文件夹中找到cuda.h文件 打开后搜索ver ...
- nvcc编译器之GPU代码编译(chapter 5)
目录 5. GPU编译 5.1 GPU多代架构 5.2 GPU特性列表 5.3 应用兼容性 5.4 虚拟架构 5.5 虚拟架构特性列表 5.6 兼容性补全机制 5.7 nvcc示例 5. GPU编译 ...
最新文章
- pythonslice_shift_3. 数据模型
- Apache 配置 Basic 认证
- java8 遍历目录_使用java8API遍历过滤文件目录及子目录及隐藏文件
- time模块 random模块
- python定时下载链接_python定时下载FTP指定文件
- java判断优先级代码_java运算符的优先级
- 新手必看,老鸟绕道–LAMP简易安装
- 基于SSM实现的演唱会网上订票系统-JAVA【数据库设计、源码、开题报告】
- MySQL5.7导出数据表
- 【多任务CTR】阿里ESMM:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conve
- 多台服务器集群部署方案
- JAVA整合Milvus矢量数据库及数据
- apachecn归档下载
- isAssignableFrom方法的功能简介说明
- 相机选型与远心镜头选型
- 海盗王GM工具箱 - 物品编辑器
- 这就是我的研究生生活
- 各大协作机器人厂商人机安全协作方式(HRC)简介
- Winodows XP做服务器,突破10人限制
- FFMPEG SDK 开发介绍 -- Filter 篇