第一阶段:基础知识准备

1.1 计算机体系结构基础

核心内容

  • ✅ CPU架构基础
    • 流水线技术
    • 乱序执行
    • 分支预测
    • 多发射技术
  • ✅ GPU架构基础
    • SIMD vs SIMT架构
    • Warp/Thread Block概念
    • GPU内存层次
    • 并行计算模型
  • ✅ 缓存层次结构
    • L1/L2/L3缓存
    • 缓存一致性协议(MESI、MOESI)
    • 缓存替换策略
  • ✅ 内存系统
    • 虚拟内存
    • 内存映射
    • 内存带宽与延迟
  • ✅ 总线与互联网络
    • PCIe总线
    • 片上网络(NoC)
    • 一致性互联

学习资料

  • 📚 必读 :《Computer Architecture: A Quantitative Approach》(第6版)
    • 第1章:Fundamentals of Quantitative Design and Analysis
    • 第2章:Memory Hierarchy Design
    • 第4章:Data-Level Parallelism in Vector, SIMD, and GPU Architectures
  • 📺 视频:YouTube - "Computer Architecture" by David Wentzlaff(普林斯顿大学)
  • 🌐 在线课程https://www.coursera.org/learn/comparch
  • 📖 中文推荐:《深入理解计算机系统》(CSAPP)- 第6章存储器层次结构

实践建议

  • 绘制CPU和GPU架构对比图
  • 实现简单的缓存模拟器
  • 阅读Intel/AMD/NVIDIA架构白皮书

1.2 C++/Python编程基础

核心内容

  • ✅ C++面向对象编程
    • 类与对象
    • 继承与多态
    • 模板与STL
    • 智能指针
  • ✅ Python脚本编写
    • 基础语法
    • 文件操作
    • 正则表达式
    • 数据处理(pandas, numpy)
  • ✅ SCons构建系统
    • SConscript语法
    • 依赖管理
    • 多架构编译
  • ✅ 指针与内存管理
    • 动态内存分配
    • 内存泄漏检测
    • 性能优化

学习资料

  • 📚 C++ :《C++ Primer》(第5版)
    • 第1-10章:基础语法
    • 第12-16章:面向对象
    • 第17-19章:模板与泛型
  • 📚 Python:《Python Crash Course》或官方文档
  • 🌐 SConshttps://docs.scons.org/
  • 📺 视频:YouTube - "Python for Beginners" by freeCodeCamp
1.3 CUDA编程基础

核心内容

  • ✅ CUDA线程层次
    • Grid/Block/Thread组织
    • 线程索引计算
    • 线程同步
  • ✅ CUDA内存层次
    • Global Memory
    • Shared Memory
    • Local Memory
    • Constant/Texture Memory
  • ✅ CUDA编程模型
    • Kernel函数
    • Host/Device数据传输
    • 流(Stream)与事件(Event)
  • ✅ 性能优化
    • 内存合并访问
    • 共享内存使用
    • warp发散避免

学习资料

  • 📚 官方必读 :《CUDA C Programming Guide》
    • 第2章:Programming Model
    • 第3章:Programming Interface
    • 第5章:Performance Guidelines
  • 🌐 官方资源https://developer.nvidia.com/cuda-zone
  • 📺 视频:YouTube - "CUDA Programming" by NVIDIA
  • 📖 实践书籍:《CUDA by Example》by Jason Sanders

代码示例

复制代码
// CUDA Hello World
#include <stdio.h>

__global__ void helloKernel() {
    printf("Hello from GPU thread %d\n", threadIdx.x);
}

int main() {
    helloKernel<<<1, 5>>>();
    cudaDeviceSynchronize();
    return 0;
}

// 矩阵乘法示例
__global__ void matrixMul(float* A, float* B, float* C, int N) {
    int row = blockIdx.y * blockDim.y + threadIdx.y;
    int col = blockIdx.x * blockDim.x + threadIdx.x;
    
    if (row < N && col < N) {
        float sum = 0;
        for (int k = 0; k < N; k++) {
            sum += A[row * N + k] * B[k * N + col];
        }
        C[row * N + col] = sum;
    }
}

实践建议

  • 安装CUDA Toolkit(建议11.x版本)
  • 运行CUDA Samples中的示例
  • 实现简单的并行算法(向量加法、矩阵乘法)
相关推荐
炸膛坦客8 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
GeekArch15 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my16 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯17 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学18 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
萌动的小火苗19 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
振浩微433射频芯片19 小时前
工业遥控器总在关键时刻“掉链子”?——433MHz芯片方案如何破局
网络·单片机·嵌入式硬件·物联网·工业遥控
blevoice20 小时前
抖抖燃脂机单 AC6966B 主控调试踩坑:Type-C 整机供电喇叭无声排障
c语言·开发语言·单片机
三易串口屏21 小时前
三易串口屏开发教程:如何使用键盘控件输入参数并发送给单片机
单片机·嵌入式硬件·串口屏·三易串口屏·键盘控件
2CM_Embed1 天前
F28379D 下载后 VOFA+ 无数据、Reset 后恢复:一次 TZ 中断误触发排查记录
笔记·单片机·sci·c2000·f28379d·vofa·tz