👋 Welcome to  Cuterwrite 's Blog

Featured image of post CUDA 基础:内存模型概述

CUDA 基础:内存模型概述

必须承认执行模型中内核的配置,决定了程序执行效率,但是程序的执行效率不只由线程束,线程块等执行结构决定,内存也严重地影响了性能。本文将主要介绍 CUDA 的内存模型,CUDA 内存模型结合了主机和设备的内存系统,展现了完整的内存层次结构,使用户能显式地控制数据布局以优化性能。

Featured image of post CUDA 基础:线程束执行的本质

CUDA 基础:线程束执行的本质

对于 SM 来说,CUDA 执行的实质是线程束的执行,因为 SM 根本不知道每个块是什么,也不知道先后顺序,SM 只知道按照按照机器码跑,而给它什么,先后顺序,这个就是硬件功能设计的直接体现了。CUDA 执行所有的线程,并行的,没有先后次序的,但实际上硬件资源是有限的,不可能同时执行百万个线程,所以从硬件角度来看,物理层面上执行的也只是线程的一部分,而每次执行的这一部分,就是线程束。

Featured image of post SSE 与 AVE 向量化编程

SSE 与 AVE 向量化编程

本文深入探讨了 SSE 与 AVX 指令集的向量化编程优化,详述了寄存器的作用、自动向量化的原理、SSE/AVX 在实际应用中的重要性,以及 C++编程框架如何充分发挥这些指令集的优势。此外,还探讨了 Masking 技术及条件加载的技巧,以及数据流控制的优化策略。通过丰富的示例和技术解析,读者将深入理解如何有效利用向量化优化来提升程序性能。

Featured image of post 程序调试与优化分析工具

程序调试与优化分析工具

本文将详细介绍几种常用的程序调试与优化分析工具,如强大的调试器 gdb,可用于跟踪程序执行过程、检测内存错误;Valgrind,能发现内存泄漏等问题;还有性能分析工具 gprof,可测量各函数执行时间,以及 perf 和 Vtune 等,它们都是开发人员的得力助手,能够有效地定位和解决程序中的问题,并极大地优化代码性能,提高软件质量和性能。

Featured image of post 高性能异步 I/O 框架:io_uring

高性能异步 I/O 框架:io_uring

本文介绍了高性能异步 I/O 框架 io_uring 的原理、核心数据结构和使用示例。首先,文章对比了 Linux 原生 aio 接口和 io_uring 接口,并介绍了 liburing 库。接着,详细解释了 io_uring 的核心数据结构和三种工作模式,以及系统调用 API 和高级特性。然后,文章提供了在项目中引入 liburing 的方法,并给出了代码示例和最佳实践。最后,文章总结了 io_uring 的优点和结论。

本博客已稳定运行
总访客数: Loading
总访问量: Loading
发表了 73 篇文章 · 总计 323.73k

使用 Hugo 构建
主题 StackJimmy 设计
基于 v3.27.0 分支版本修改