第一阶段:基础知识准备

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中的示例
  • 实现简单的并行算法(向量加法、矩阵乘法)
相关推荐
续写烂尾7 小时前
SD NAND存储实测:正点原子STM32精英板SDIO读写验证全流程
stm32·单片机·嵌入式硬件
wuyk5559 小时前
1.栈:后进先出的线性数据结构
c语言·数据结构·stm32·单片机
Crkylin9 小时前
Cortex-M SysTick系统滴答定时器详解
单片机·嵌入式硬件
gscsded11 小时前
AUTOSAR CanTp 模块学习笔记
单片机·嵌入式硬件·汽车
Hello_Damon_Nikola11 小时前
扰流筋从原理到应用
人工智能·单片机·嵌入式硬件
hongmai66688812 小时前
ESP32-WROVER-B-N8R8:8MB PSRAM加持的经典双核模组,现在还值得选吗?
单片机·嵌入式硬件·物联网·智能路由器·risc-v
0x3F(小茶)13 小时前
复位异常(Cortex-M处理器)
单片机·mcu
SilicoCode13 小时前
STM32入门教程:BKP备份寄存器 & RTC实时时钟详解
stm32·单片机·嵌入式硬件
lhbweilai14 小时前
STM32 简单认识一下FreeRTOS(纯理论)
stm32·单片机·嵌入式硬件
0x3F(小茶)14 小时前
FreeRTOS 中断配置和临界段
单片机·嵌入式硬件