Darknet项目性能优化攻略线索攻略合集3

一、高性能算法

1、计算机算法包含:[输入]、计算、输出三部分,可以没有输入

2、计算机算法有五大特征:

• 有穷性:一个算法必须是执行有限步之后结束

• 确切性:每一步都有确切的意义

• 可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行有 限次来实现。

• 输入:一个或零个输入,刻画运行对象的基本信息

• 输出:一个算法有一个或多个输出,没有输出的算法没有意义

3、高性能算法:

• 稠密类问题

GEMM HPL(Linpack) 图像处理、深度学习、人工智能领域

• 稀疏类问题

SPMV HPCG 科学计算领域应用广泛

4、稀疏矩阵压缩存储的常见方法

 COO 方法 Coordinate Matrix 坐标存储格式

 CSR 方法 Compressed Sparse Row Matrix压缩稀疏行格式

 CSC 方法 Compressed Sparse Column Matrix压缩稀疏列矩阵

 BSR 方法 Block Sparse Row Matrix 分块压缩稀疏行格式

 DIA 方法 Diagonal Matrix 对角存储格式

二、基础性能分析

1、分析类别:静态分析,静态分析工具:如 understand;动态分析,动态分析工具:如 gprof

2、HPCG 程序背景简介:

       HPCG -- The High Performance Conjugate Gradients Benchmark 高性能共轭梯度 (HPCG) 基准项目旨在为 HPC 系统排名创建一个新指标,作为高性能 LINPACK (HPL) 基准的补充,目前用于对 TOP500 计算系统进行排名。 HPL 的计算和数据访问模式仍然是一些重要的可扩展应用程序的代表,但不是全部。 HPCG 旨在锻炼 计算和数据访问模式,以更紧密地匹配不同且广泛的重要应用程序集,并激励计算机系统设计人员投资于对这些应用程序的集体性能 产生影响的能力。

三、基础性能优化

1、从体系架构的角度

• 提高计算速度的技术途径:

(1) 提高主频 (2) 高速缓冲存储器 (3) 流水线技术 (4) 并行技术

2、常见循环优化技术

• 循环合并 • 循环展开 • 循环交换 • 循环分布 • 循环不变量外提 • 循环分块 • 循环分裂

四、并行编程模型简介

1、并行与并发:

• 并发:由一个处理器快速交替执行多个任务,只是看起来像在“同时执行多个任务”

• 并行:由多个处理器分别运行多个任务,各任务间严格同时执行

2、进程与线程

什么是进程?

(1). 程序运行的媒介,进程是动态的,程序是静态的;

(2). 进程是操作系统进行资源分配和调度的一个独立单位;

(3). 每个进程拥有独立的地址空间,地址空间包括代码区、数据区和堆栈区,进程之间的地址空间是隔离 的,互不影响。

什么是线程?

(1). 进程在运行过程中派生出的轻量级单元,同一个进程中的多个线程共享进程的资源;

(2). 可避免进程在创建、销毁与切换存在的较大时空开销问题。

3、基本并行编程概念:

分布式并行 - - MPI

共享内存式并行 - - OpenMP

单指令多数据流并行 - SIMD

4、MPI 和 OpenMP:

MPI 从进程层面实现并行,OpenMP 以线程实现并行

5、并行基本概念:

核内并行 数据级并行 --SIMD单指令多数据流--NEON

核间并行 共享存储式并行 - - 线程 --OpenMP

节点间并行 分布式并行 - - 进程--MP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值