会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
anluo8
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
2024年12月3日
高性能计算-NEON-intrinsic函数(17)
摘要: 1. 对寄存器数据重排 /* 两个向量,每两个通道一组,第一个向量每组的后一个元素与第二个向量每组的第一个元素一次彼此交换 */ #include <stdio.h> #include <arm_neon.h> void main() { int arrc[8]={0}; int arrd[4]={
阅读全文
posted @ 2024-12-03 16:02 安洛8
阅读(54)
评论(0)
推荐(0)
2024年12月1日
高性能计算-gemv-向量化优化(16)
摘要: 1. 目标:矩阵向量乘法 y = A * x (列向量 = 矩阵 *列向量),进行串行,循环展开+simd, simd+omp的效率对比。 2. 源码 #include <iostream> #include <ctime> #include <arm_neon.h> #include <omp.h
阅读全文
posted @ 2024-12-01 18:30 安洛8
阅读(413)
评论(0)
推荐(0)
2024年11月30日
高性能计算-bgra2rgb转换-向量化优化(15)
摘要: 1. 这是一个对图像通道 bgra 转换为 rgb的示例程序。转换方式有普通写法、openmp-simd编译指导语句、neon intrinsic函数三种实现方式 2. 源码 #include <stdio.h> #include <stdlib.h> #include <iostream> #in
阅读全文
posted @ 2024-11-30 16:13 安洛8
阅读(194)
评论(0)
推荐(0)
2024年11月25日
高性能计算-向量化优化和循环展开效率对比(14)
摘要: 1. 目标 对数组求和,对比ARM(neon)向量化优化(SIMD)和循环展开,还有 O0 O1优化的效率对比。 2. 测试代码 #include <arm_neon.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #defin
阅读全文
posted @ 2024-11-25 22:28 安洛8
阅读(164)
评论(0)
推荐(0)
2024年11月24日
高性能计算-探究循环分块优化cache miss(13)(接2-1)
摘要: 1. 目标:分析循环分块优化技术,并分析cache 命中情况 假设每个cacheline可以存储b个数据元素。 2. 源代码分析 for( int i=0;i<N;i++) { for(int j=0;j<M;j++) { A[i] += B[j]; } } cache miss分析: 对A总访问次
阅读全文
posted @ 2024-11-24 16:06 安洛8
阅读(137)
评论(0)
推荐(0)
2024年11月23日
高性能计算-openmp-图像卷积滤波算法(12)
摘要: 1. 目标:使用openmp实现图像滤波算法 给定一个输入图像,你的任务是将其划分为多个块,并使用多个进程对每个块进行滤波操作。 要求: 1、使用分段并行结构和指令section来并行执行不同的计算步骤。 2、使用单线程指令single或master确保某些代码段只在单个线程中执行。 3、使用线程同
阅读全文
posted @ 2024-11-23 10:24 安洛8
阅读(87)
评论(0)
推荐(0)
2024年11月16日
高性能计算-openmp编程-(探究 for/collapse)(11)
摘要: 1. 目标:探究嵌套循环 for 和 collapse 编程 2. 内容 (1). for 并行区默认对最近外层的循环控制变量私有,并对其划分并行,不必指明 private,内层循环体入口的循环控制变量声明及或定义[ for (int i=0;)]默认私有;如果在并行区外声明或定义的内层循环控制变量
阅读全文
posted @ 2024-11-16 10:12 安洛8
阅读(195)
评论(0)
推荐(0)
2024年11月14日
高性能计算-gemm-openmp效率测试(10)
摘要: 1. 目标 设计一个程序,使用OpenMP并行化实现矩阵乘法。给定两个矩阵 A 和 B,矩阵大小均为1024*1024,你的任务是计算它们的乘积 C。 要求: (1)、使用循环结构体的知识点,包括for循环体并行化、变量规约属性与子句reduction、循环调度策略与子句schedule以及嵌套循环
阅读全文
posted @ 2024-11-14 23:28 安洛8
阅读(224)
评论(0)
推荐(0)
2024年11月11日
高性能计算-openmp-多线程缓存一致性(9)
摘要: 1. 背景介绍 L1 L2 cache是单核独享,L3是多核共享。如果多线程访问共享一维数组的连续元素,先读入第一个线程的L1 缓存中,其他线程访问缓存不命中需要加载,并且数据的更改后,标记为脏数据,其他线程访问cacheline中相邻地址需要先写回内存,再读入目标L1 cache,效率低。使用三份
阅读全文
posted @ 2024-11-11 23:30 安洛8
阅读(173)
评论(0)
推荐(0)
2024年11月3日
高性能计算-gemm-mpi并行计算优化(8)
摘要: 1. 目标: 矩阵A(MK) 矩阵B(KN)相乘,计算结果 C(M*N);本测试将使用不同的数据分块方式、MPI通信接口、数据循环模型,测试通信及计算效率,计算耗时为程序用户态和核心态的占用cpu时间之和。 问题1: 如何对数据分块,初始化本进程数据。有以下两种模型 模型一. 一维分块,对A行分块,
阅读全文
posted @ 2024-11-03 23:49 安洛8
阅读(241)
评论(0)
推荐(0)
2024年10月27日
高性能计算-雅可比算法-MPI重复非阻塞优化(7)
摘要: #include <stdio.h> #include <mpi.h> #include <unistd.h> #include <stdlib.h> #define S 4 //分块方阵的大小 #define RB 8 //行方向分块维数 #define B RB*RB //并行进程数 #defi
阅读全文
posted @ 2024-10-27 23:00 安洛8
阅读(58)
评论(0)
推荐(0)
2024年10月26日
高性能计算-蒙特卡洛估计圆周率(6)
摘要: 源代码 /* 问题:用蒙特卡洛算法估计π的值。在边长为r的正方形中画内切圆, 随机N个点,用圆内的点占正方形内所有点数量的比例估计圆的面积, 计算估计的π的值。 */ #include <stdio.h> #include <time.h> #include <math.h> #include <m
阅读全文
posted @ 2024-10-26 14:40 安洛8
阅读(33)
评论(0)
推荐(0)
2024年10月22日
高性能计算-雅可比算法MPI通信优化(5)
摘要: 雅可比算法原理:如下图对方阵非边界元素求上下左右元素的均值,全部计算元素的数值计算完成后更新矩阵,进行下一次迭代。 测试目标:用MPI实现对8*8方阵雅可比算法迭代并行计算,用重复非阻塞的通信方式 #include <stdio.h> #include <mpi.h> #include <unist
阅读全文
posted @ 2024-10-22 15:51 安洛8
阅读(58)
评论(0)
推荐(0)
2024年10月15日
高性能计算-优化-循环展开性能测试(4)
摘要: 测试目标:测试for循环展开优化的提升效率 #include <cstdio> #include <ctime> #include <cstdlib> /* 测试一维和二维循环展开效率区别 */ #include <cstdio> #include <ctime> #include <cstdlib
阅读全文
posted @ 2024-10-15 23:43 安洛8
阅读(71)
评论(0)
推荐(0)
高性能计算-gemm串行计算优化(3)
摘要: 目标:Darknet 源码cpu矩阵乘法函数 gemm_nn 优化。参数说明:lda A的列数; ldb B的列数; ldc C的列数; M C的行数; K A的列数 测试方法:Darknet源码,makefile文件添加编译选项 -pg,编译后得到可执行程序 darknet,运行可执行程序: ./
阅读全文
posted @ 2024-10-15 12:29 安洛8
阅读(113)
评论(0)
推荐(0)
2024年10月13日
高性能计算-循环优化(2)
摘要: 一、Loop循环优化有以下几种 循环合并:两个循环合并到一个循环中 循环展开:循环内的并行技术 循环交换:改变多维数组的空间访问顺序,改善空间局部性,提高cache命中率 循环分布:将一个循环拆分为多个循环,使编译器可以进行向量化优化 循环不变:循环中不发生变化的量提到循环外面,避免重复计算 循环分
阅读全文
posted @ 2024-10-13 17:58 安洛8
阅读(121)
评论(0)
推荐(1)
2024年10月6日
高性能计算(1)
摘要: 一、程序优化 CPU程序优化 1.1 体系结构:CPU流水线技术、高速缓指令集、CPU超标量设计 1.2 并行技术:MPI、OpenMP、SIMD、汇编 1.3 算法:算法优化 GPU程序优化 1.1 GPU的体系结构(计算核心、高带宽、多级存储) 1.2 GPU并行框架:CUDA、OpenCL、O
阅读全文
posted @ 2024-10-06 23:24 安洛8
阅读(92)
评论(0)
推荐(1)
上一页
1
2
公告