Welcome to  Cuterwrite's Blog

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

CUDA 基础:内存模型概述

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

字数统计: 4978 字
Featured image of post CUDA 基础:线程束执行的本质

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

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

字数统计: 7659 字
Featured image of post SSE 与 AVE 向量化编程

SSE 与 AVE 向量化编程

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

字数统计: 10935 字
Featured image of post 程序调试与优化分析工具

程序调试与优化分析工具

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

字数统计: 9464 字
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 的优点和结论。

字数统计: 7891 字
Featured image of post RDMA 技术及其编程方法(二):编程指导

RDMA 技术及其编程方法(二):编程指导

本文是关于 RDMA 技术及其编程方法的指导。文章主要介绍了 libibverbs 的简介和 Verbs API 的详解,包括 Verbs 对象创建层次和两个动态库。此外,还介绍了 Connection Manager 的建立过程和抽象类型 RDMACM。最后,文章通过解析被动方和主动方的 RDMACM 程序,以及基于 RDMA 的 client-server 程序的实战,来帮助读者更好地理解和应用 RDMA 技术。

字数统计: 4527 字
Featured image of post RDMA 技术及其编程方法(一):RDMA 简介与原理

RDMA 技术及其编程方法(一):RDMA 简介与原理

本文介绍了 RDMA(Remote Direct Memory Access)技术的基本概念和工作原理。首先,简要介绍了 RDMA 技术的背景和定义。接着,详细解释了 RDMA 工作原理中的几个重要概念,包括 Infiband 与以太网的对比、QRs/WRs 执行模型、通信语义和传输服务。此外,还介绍了 RDMA 架构的层级结构。然后,介绍了 Verbs 与 OFA Verbs API,包括 Verbs 的简介和 OFA Verbs API 对应用的支持。最后,对本文进行了总结。通过本文的阅读,读者可以了解 RDMA 技术的基本概念和工作原理,以及 Verbs 与 OFA Verbs API 的应用。

字数统计: 4394 字
Featured image of post MPI 与并行计算(五):MPI 扩展

MPI 与并行计算(五):MPI 扩展

MPI 论坛在 1994 年推出的 MPI 基础上,根据 MPI 的发展和要求,于 1997 年推出了 MPI 的最新版本 MPI-2,同时原来的 MPI 更名为 MPI-1。相对于 MPI-1,MPI-2 加入了许多新特性:动态进程管理、I/O、远程存储访问等。本文将对 MPI-2 的新特性进行简要介绍。

字数统计: 4369 字
Featured image of post MPI 与并行计算(四):数据类型

MPI 与并行计算(四):数据类型

数据类型是 MPI 中的一个重要概念,它可以帮助我们更好地管理数据,提高通信效率。在 MPI 中,数据类型的概念与 C 语言中的数据类型有所不同,它是一种抽象的数据结构,可以用来描述数据的组织形式,而不是数据本身。本文将介绍 MPI 中的数据类型,包括基本数据类型、派生数据类型、类型创建函数等。

字数统计: 3417 字
Featured image of post MPI 与并行计算(三):集合通信

MPI 与并行计算(三):集合通信

集合通信是进程集合里的所有进程进行数据交换的同时操作,实现了一对多,多对一,全体对全体的数据交换。本文深入讨论了一对多通信如广播和散播,多对一通信如收集,以及如何聚合所有进程的数据。然后,本文介绍了如何进行同步以确保所有进程在相同的执行点进行数据交换。接着,本文介绍了规约,一种特殊的集合通信操作,它将所有进程的数据聚合并进行运算,得出一个单一结果。总的来说,本文为读者提供了关于 MPI 集合通信的深入解析,包括其定义、功能和几种主要的通信模式。

字数统计: 2637 字
本博客已稳定运行
总访客数: Loading
总访问量: Loading
发表了 78 篇文章 · 总计 365.92k 字
使用 Hugo 构建
主题 Stack 由 Jimmy 设计
基于 Stack v4.0.3 魔改