首页/新闻资讯/正文详情

CUDA 第一课:

发布时间:2026/9/24 17:32:57 来源:云帆数科 栏目:资讯中心
CUDA 第一课:
CUDA 第一课在C语言中 文本编辑器 —— 预处理 —— hello.i —— 编译 —— hello.s —— 汇编 —— hello.o —— 链接 —— hello预处理解决 # C语言的库。 拼接成完整C代码。还是C代码只是告诉编译器 那些库函数是怎么用C写好的就是给编译器看这些函数的原始定义但是没有这些函数的机器代码。编译 compile 把 C 代码翻译为 汇编代码。汇编 把汇编指令变成机器吗。 但是是不同的C文件各自自己变成机器码hello.c ↓ gcc-E hello.i 这里能看到 stdio.h 展开后的 printf 声明 ↓ gcc-S hello.s 这里能看到 call printf ↓ gcc-c hello.o nm 可以看到 U printf T当前.o 里已经定义了 UUndefined当前.o 里没定义 ↓ gcc hello.o-o hello 链接器去 C 标准库找 printf 的实现 ↓ hello.exe 或者 其他环境下的可执行文件。CUDA 中的 Hello World 程序CUDA程序的编译器驱动 nvcc 支持编译纯粹的 C 代码。 一个标准的 CUDA 程序其既有纯粹C 代码又有 不属于C的真正 CUDA 代码。 CUDA程序的编译器驱动 nvcc 去编译 CUDA会将纯C的代码交给C编译器其自己则负责编译剩下的部分。CUDA程序 源文件为 .cu。GPU只是主机的一个设备所以使用GPU的话一个程序既要有主机代码又要有设备代码。主机对设备的调用是通过核函数来实现的。Host 主机端也就是运行普通程序的 CPU 主存这一侧。Device 设备端也就是 GPU 操作系统 系统内存等等这一侧。Host主机端CPU系统内存 RAM普通 C/C 代码││ 启动 kernel▼Device设备端GPU显存 VRAMCUDA kernel什么是核函数 Kernel FunctionKernel 可以理解成CPU 发给 GPU 执行的一段并行计算任务。Host 端负责发起 kernel launchGPU 端真正执行 kernel。intmain(void){主机代码 核函数的调用 主机代码return0;}CUDA中 核函数 与 C 中 函数类似但其必须被限定词__global__修饰。核函数返回类型必须是空类型即 void一般情况下普通的函数其实相当于__host__限定符是 NVIDIA 在设计 CUDA编程模型的时候引入的语言扩展。 并不属于 C/C 的关键字。限定符谁调用在哪执行__host__CPUCPU__device__GPUGPU__global__CPUGPU__global__voidhello_from_gpu(){printf(Hello World from the GPU! \n);}限定符 __global__和 void 的次序可以随意void__global__hello_from_gpu(){printf(Hello World from the GPU! \n);}核函数必须经过调用才可以被发挥作用。#includestdio.h__global__voidhello_from_gpu()printf(Hello World from the GPU!\n);intmain(void)hello_from_gpu1,1();cudaDeviceSynchronize();return0; 这三对括号调用核函数时需要这对三括号里面的信息一块GPU有很多 计算核心。如 Tesla V100 有 5120个计算核心。 其可以支持多线程。主机在调用一个核函数的时候必须指明需要在设备中指派多少个线程否则设备不知道如何工作。 用于指明 核函数 中的 线程数目 及 排列情况。核函数中的线程通常会组织为若干线程块

相关推荐

【Qt】《Qt 5.9 C++开发指南》笔记-Chapter16-应用程序设计辅助功能
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter16-应用程序设计辅助功能

第16章 应用程序设计辅助功能 本章介绍Qt应用程序设计的一些辅助功能,包括设计多语言界面、使用样式表定制界面和组件的外观、使用QStyle设置界面外观,以及应用程序发布等。这些辅助功能不一定在每个应用程序设计里都会用到,但也是非常有用的… · 2026/9/24 17:32:57

Linux系统篇38——线程(三) 线程的优缺点、数量取舍、切换成本和私有资源
Linux系统篇38——线程(三) 线程的优缺点、数量取舍、切换成本和私有资源

📚 本文收录于「流浪」的系列专栏 🐧 Linux系统⚙️ C📊 数据结构与算法🐍 Python🔗 LangChain & LangGraph🗄️ MySQL 数据库🌿 Git 工具🌐 计算机网络🤖 AI&#… · 2026/9/24 17:32:57

【赵渝强老师】高斯数据库(openGauss)的物理存储结构
【赵渝强老师】高斯数据库(openGauss)的物理存储结构

在openGauss数据库集群初始化的时候会创建一个目录,通常都会使用系统配置相关的环境变量$PGDATA来表示。当数据库初始化完成后,会在这个目录生成相关的子目录以及一些文件。下图就是openGauss数据库的物理结构: openGauss数据库的物理存储结… · 2026/9/24 17:32:57

电流注入型牛拉法:配电网潮流计算的统一建模与实现
电流注入型牛拉法:配电网潮流计算的统一建模与实现

这段时间我在做一套配电网潮流计算程序。一开始按教材老路走的是功率注入型牛拉法,程序写了大半,突然发现要面对一堆恒电流负荷、电流源型分布式电源的时候,代码越改越别扭:一会儿要把恒阻抗负荷折算进导纳矩阵,一会儿… · 2026/9/24 20:55:53

大模型落地的五大认知断层与工程实践指南
大模型落地的五大认知断层与工程实践指南

1. 这不是“大模型科普”,而是我三年来在真实业务里摔出来的认知断层“大模型的一些思考”——这个标题看起来像篇随笔,甚至有点敷衍。但如果你真把它当随便写写,那大概率会错过一个关键信号:所有关于大模型的“正确废话”&#x… · 2026/9/24 20:55:53

基于Matlab粒子群算法的家庭微网储能优化调度模型
基于Matlab粒子群算法的家庭微网储能优化调度模型

做家庭微网优化模型这件事,最早其实是帮一个朋友做光伏加储能的方案评估。当时他家里装了光伏、配了一块锂电池,但每个月的电费并没有想象中省得多。问题出在哪?出在"怎么用"上——电池什么时候充、什么时候放、要不要和电网交互&a… · 2026/9/24 20:55:53

ASP.NET + WPF酒店管理系统开发实践:从架构设计到源码解析
ASP.NET + WPF酒店管理系统开发实践:从架构设计到源码解析

我最早接到这个需求,是想给一家中小型酒店做一套内部管理系统。当时团队里有人建议直接用纯Web前端,也有人说WinForms就够用,最后我们确定了ASP.NET做后端、WPF做桌面客户端的组合方案。这个选型后来被证明是值得的:WPF在房态图、… · 2026/9/24 20:55:53

基于粒子群算法的家庭微网优化模型Matlab实现
基于粒子群算法的家庭微网优化模型Matlab实现

最近在整理家庭微网优化方面的案例时,发现一个很有意思的现象:很多人一提到微网优化,本能地就想用商业求解器或者复杂数学工具,但真正落地时却往往被模型规模、非线性约束、参数耦合这些现实问题卡住。我自己在Matlab里搭了一版基… · 2026/9/24 20:55:53

DHCP服务器设计与实战:从IP分配到网络智能中枢
DHCP服务器设计与实战:从IP分配到网络智能中枢

1. 什么是DHCP服务器:它不是“配IP的工具”,而是网络的呼吸中枢很多人第一次听说DHCP服务器,脑子里浮现的是“自动给电脑发IP地址的那个东西”。这没错,但太轻描淡写了——就像说心脏只是“泵血的肌肉”,忽略了它每分钟… · 2026/9/24 20:55:41

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码