• 了解cuda和显卡等基本概念


    1.如何运行
    • make run
    2.显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
    • 关于显卡驱动与cuda驱动的版本匹配

    • 简单了解显卡相关概念
      • 显卡:GPU
      • 显卡驱动:驱动软件,类比声卡驱动,摄像头驱动
      • GPU架构:gpu架构指的是硬件的设计方式,例如是否有L1 or L2缓存
      • CUDA: 其中一种理解是它是一种编程语言(像c++,python等,只不过它是专门用来操控GPU的)
      • cudnn: 这个其实就是一个专门为深度学习计算设计的软件库,里面提供了很多专门的计算函数
      • CUDAToolkit:这是我们真正需要首先安装的工具包,所谓的装cuda首先指的是它
      • 它里面包含了许多库,例如:cudart, cublas等
      • 其他涉及到的知识有nvcc与nvidia-smi, 多个 cuda 版本之间进行切换, cuda的安装等
      • 详细请参考: https://zhuanlan.zhihu.com/p/91334380
    3.cuda-driver-api 与 cuda-runtime-api
    • CUDA Driver与CUDA Runtime相比更偏底层,就意味着Driver API有着更灵活的控制,也伴随着更复杂的编程
    • 因此CUDA driver需要做显式的初始化cuInit(0),否则其他API都会返回CUDA_ERROR_NOT_INITIALIZED
    • 经过初始化后驱动和显卡的信息可以轻松获取:
      • 驱动版本管理 https://docs.nvidia.com/cuda/archive/11.2.0/cuda-driver-api/group__CUDA__VERSION.html#group__CUDA__VERSION
      • 设备信息管理 https://docs.nvidia.com/cuda/archive/11.2.0/cuda-driver-api/group__CUDA__DEVICE.html
    4.写在文末 5.C++基础(供C++小白参考) 5.1 编译基础知识
    • “c++脚本程序写完之后,并不能直接运行,需要进行编译,转成.o文件,再链接才能运行”
    5.1.1 单文件或少文件编译
    • 源文件[.c/cpp] -> Object文件[.o]
    g++ -c [.c/cpp][.c/cpp]... -o [.o][.o]... -I[.h/hpp]
    g++是编译命令 -c,-o,-I是选项 -c接源脚本文件 -o接目标文件 -I接头文件
    (-c c++ /-o object/ -I include)
    
    • 1
    • 2
    • 3
    5.1.2 多文件编译(使用Makefile 和 CMake)
    • cmake比Makefile高级,但是两者的功能都是快速地进行批量的编译(因为当你有很多的c++源文件的时候,一个一个地去用g++去编译是很麻烦的)

    • makefile详情参考资料

  • 相关阅读:
    10.26 来 CNCC 2023 T16 展位,TDengine 精美周边等你来领!
    linux /proc进程文件目录介绍
    [山东科技大学OJ]1215 Problem C: 编写函数:字符串的复制 之一 (Append Code)
    可学习的FrameField优化建筑物提取CVPR2021
    Rust的协程机制:原理与简单示例
    opencv
    24. python 字符串索引取值
    23.09.05内网盲区记录
    Node.js精进(3)——流
    【Java】复制数组的四种方式
  • 原文地址:https://blog.csdn.net/weixin_38346042/article/details/128153725