![]()
内容推荐 本书首先介绍通用处理器的架构,以及汇编和编译的技术;然后讲解Linux内存管理、Linux进程管理,以及GDB、trace、eBPF、SystemTap等Linux系统开发工具;接着通过视频编解码主流技术和NVIDIA计算平台CUDA等讨论人工智能技术在音视频领域与自然语言处理领域的应用;最后讲解标准计算平台OpenCL的原理、开源硬件soDLA、Intel神经网络异构加速芯片、SystemC框架。 本书适合从事企业系统开发及优化的技术人员阅读,也可供计算机相关专业的师生参考。 作者简介 周文嘉,目前就职于某国产AI GPU芯片公司,曾服务于ARM、阿里巴巴、HTC等公司,拥有10年以上工作经验,主要从事系统软件开发,涵盖系统库开发、指令集优化、Linux内核开发等,为某些开源社贡献过一定数量的补丁,担任Free time team创始人,致力于免费教育事业。 目录 第1章 通用处理器架构简介 1.1 综述 1.2 AArch64寄存器堆 1.2.1 通用寄存器 1.2.2 特殊寄存器 1.2.3 系统控制寄存器 1.2.4 处理器状态 1.2.5 函数调用标准 1.3 流水线 1.3.1 Cortex-A77微架构 1.3.2 微架构与代码优化 1.4 AArch64异常级别 1.5 内存模式 1.5.1 内存对齐 1.5.2 检查内存模式问题的工具 1.6 原子操作 1.6.1 指令介绍 1.6.2 原子指令使用示例 1.7 处理器缓存 1.8 系统安全增强 1.8.1 屏障指令 1.8.2 PAN 1.8.3 MTE 1.9 虚拟化 1.9.1 ARMv7a虚拟化扩展 1.9.2 ARM KVM work 1.9.3 ARM VHE 1.9.4 虚拟化的其他特性 1.10 更多处理器架构特性 1.10.1 获取处理器特性 1.10.2 运行时问题的深入讨论 1.10.3 处理器架构检测 1.10.4 ARMv8架构主要特性 1.11 主流编译器和模拟器对ARMv8架构的支持 1.11.1 GCC对ARMv8架构的支持 1.11.2 QEMU模拟器对ARMv8架构的支持 第2章 汇编与编译技术入门 2.1 通过C/C++学习汇编语言 2.1.1 位运算通用优化技巧 2.1.2 利用ARM的ubfiz等指令优化位操作 2.1.3 指令与数据保序 2.2 ARM64 NEON技术 2.2.1 NEON寄存器 2.2.2 调试环境 2.2.3 NEON编程 2.2.4 不同NEON开发方式的比较 2.2.5 SIMD优化技巧 2.2.6 实际案例 2.3 RISC-V汇编介绍 2.3.1 RISC-V汇编指令说明 2.3.2 RISC-V启动代码的分析 2.4 玩具编译器minic的实现 2.4.1 词法分析 2.4.2 语法分析 2.4.3 mini_c的源代码 2.5 LLVM简介 …… 第3章 Linux内存管理 第4章 Linux进程管理 第5章 Linux系统开发工具 第6章 人工智能技术 第7章 OpenCL的编程技术 第8章 一些开源项目 第9章 硬件架构 |