- 博客(48)
- 资源 (3)
- 收藏
- 关注
转载 漫谈高性能计算与性能优化:访存
文章分为4个部分,第一个部分聊聊并行算法,第二个部分系统地说一下性能优化的方法论,第三个部分介绍一下性能分析,第四个部分介绍一下小结和感悟。说的东西不一定准确,如果有错误的地方,也麻烦各位批评指正
2024-04-23 15:09:55 11
转载 性能之巅:定位和优化程序CPU、内存、IO瓶颈
性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力。
2024-04-21 22:47:35 27
转载 【高性能计算】程序性能优化理论与方法
性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力。不同程序有不同的性能关注点,比如科学计算关注运算速度,游戏引擎注重渲染效率,而服务程序追求吞吐能力。
2024-04-20 12:22:49 37
转载 OpenBLAS学习一:源码架构解析&GEMM分析-爱代码爱编程
BLAS (basic linear algebra subprogram) 是线性数学的基本计算,包括标量,矢量,矩阵之间的计算,分别称为Level1~3的操作。由于level3的操作复杂度较高,于是产生了针对不同平台做优化的BLAS实现,包括 AMD Core Math Library (ACML), Arm Performance Libraries, ATLAS, Intel Math Kernel Library (MKL), 及我们要介绍的 OpenBLAS。
2024-04-10 10:41:49 125
原创 openblas代码生成
3、利用以上抽取出来的代码,配合自己的cmakelist,可以单独编译一个静态、动态库,做到该库只覆盖部分gemm函数,或者二次开发和定制。cmake ../ -DUSE_OPENMP=1 过程会显示创建的一些源码文件。比如zgemm_thread_nn.c 这些都是中间过程产生的代码. 放在build/openblas 通过一套代码和宏定义来生成各个类型(s,d, c,z)函数。里面,代码中的变量new_source_file。...)操作完成代码生成,参考。OpenBlas代码生成主要在。
2024-04-09 23:48:59 338
原创 OpenBLAS 汇编
1、cmake之后 build目录下,会生成一个build.make 文件,该文件里面有一项。lib/CMakeFiles.../zgemm_kernel_n.c.i 可以通过命令生成。3、 cmake -DCMAKE_BUILD_TYPE=Debug 之后, 用 make。2、接着也有一个命令,可以编译zgemm_kernel_n.c 加。选项,编译后的汇编文件为: zgemm_kernel_n.c.s。之后的文件zgemm_kernel_n.c.i。
2024-03-07 15:55:30 352
原创 汇编代码阅读工具与技巧
(KL, VL) = (8, 256), (16, 512) FOR j := 0 TO KL-1 i := j* 32 n := (j modulo 4) * 32 DEST[i+31:i] := SRC[n+31:n]
2024-02-02 11:20:18 350
原创 gdb 调试
3) macro list macroname 列出所有用macro define -- 这条命令定义宏定义 如:macro list a。1) macro define -- 定义一个新的的宏定义 如:macro define a 3。2) macro expand macroname 展开宏定义 如: macro expand min(a, b)1、内联汇编]扩展asm:格式、占位符、跳转、内联汇编宏函数。
2024-01-25 11:20:36 390
原创 GEMM 参考资料
论文:GEMMFIP: Unifying GEMM in BLIS2302.08417.pdf (arxiv.org) BLISlab: A Sandbox for Optimizing GEMM1609.00076.pdf (arxiv.org) LAFF-On Programming for High Performance:ulaff.net Anatomy of High-Performance Matrix MultiplicationgotoPaper.pdf (utexas.
2024-01-18 15:25:33 351 1
原创 【CUDA】学习记录(4)-线程束的执行
线程模型block:同一个block内共享内存,同一block中的thread可以彼此进行通信。同一个块内的线程可以同步。线程,可以根据blockIdx和threadIdx唯一的指定。作者:不会code的程序猿链接:https://www.jianshu.com/p/0afb1305b1ae来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2023-08-17 19:58:55 296 1
原创 c++返回类型后置
C++11新标准增加的auto不仅可以自动推断变量类型,还能结合decltype来表示函数的返回值。这些新特性可以让我们写出更简洁、更现代的代码。在泛型编程中,可能需要通过参数的运算来得到返回值的类型类型推导:1、auto2、decltype在 C++11 中增加了返回类型后置(trailing-return-type,又称跟踪返回类型)语法,将 decltype 和 auto 结合起来完成返回值类型的推导。template <typename T, typename U
2022-03-14 16:11:32 1320
原创 C++中static变量的初始化
C++中static变量的初始化之前一直停留在c++中,停留的认知:1. c++类中,只初始化一次。2. cpp文件中,只在当前文件有效。经过上面链接的文章,彻底的解决了static的认识。1. 编译时初始化 2. 加载时初始化 3. 运行时初始化 4. static初始化的原理 总结特别是这个总结,特有感触:总结(1)如果是编译时和加载时初始化,是不会存在线程安全这个问题的。因为这两种初始化一定发生在Main函数执行之前,这个时候尚未进入程序运行空间,而这些初
2022-03-14 11:09:15 2246
转载 Caffe 安装配置(CentOS + 无GPU)
ReF: http://ju.outofmemory.cn/entry/69572环境: CentOS 6.4由于我的CentOS服务器上没有Nvidia的显卡,不过 caffe 是可以在CPU模式下进行train和predict的,因此我尝试了在没有GPU的情况下把caffe跑起来。主要参考官网的文档,Installation。安装 Caffe 前需要安装以下库:Prer
2015-09-15 09:45:12 634
转载 centos7装linux翻译软件
centos7装linux翻译软件具体过程如下:[root@localhost Downloads]# wget http://puias.math.ias.edu/data/puias/6/x86_64/os/Addons/stardict-3.0.1-22.puias6.x86_64.rpm[root@localhost Downloads]# yum localinsta
2015-09-11 10:21:32 2365
转载 ATI 驱动教程
ATI 显卡有两种驱动,光盘中自带的开源 raedon 驱动和 ATI 官方发布的专有 fglrx 驱动,openSUSE 安装以后默认使用 readon 驱动。 readon 驱动在加速性能上不如 fglrx 驱动,如果希望开 xgl/beryl/compiz 等3D桌面效果,最好安装 fglrx 驱动。注意:有些老显卡最新版本的 fglrx 驱动已经不再支持,此时你可以选择使用老版本的
2015-09-10 14:42:09 721
转载 AMD Catalyst (简体中文)
Ref: https://wiki.archlinux.org/index.php/AMD_Catalyst_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29AMD的显卡驱动有两种:一是官方私有驱动(catalyst,译为催化剂),二是开源驱动(xf86-video-ati).本文主要介绍私有驱动。AMD曾经将“catalyst”驱动命名为“fgl
2015-09-10 14:41:12 3563
转载 论文类型Journal、magazin、transaction、letter等的区别
论文类型Journal、magazin、transaction、letter等的区别 (2012-11-18 11:03:56)转载▼标签: 期刊类型 transaction journal letter 杂谈分类: 研究学习一、主要分类Journal期刊:刊登关
2014-05-20 15:43:33 1933
转载 git下push失败解决方法
git下push失败解决方法 2012-12-16 10:38:31Ref:http://blog.chinaunix.net/uid-27714502-id-3441001.html分类: LINUX当你辛辛苦苦地在Linux下架设好SSH服务器,给账户分配完权限,以为什么都大功告成的时候。这时你在客户端的Linux机器下登陆$ git
2014-01-18 21:17:44 1368
转载 基于haar特征的Adaboost人脸检测技术
http://www.cnblogs.com/dylantsou/archive/2012/08/11/2633483.html本文主要是对使用haar+Adabbost进行人脸检测的一些原理进行说明,主要是快找工作了,督促自己复习下~~一、AdaBoost算法原理 AdaBoost算法是一种迭代的算法,对于一组训练集,通过改变其中每个样本的分布概率,而得到不同的训练
2013-12-23 17:03:24 904
转载 vimrc配置
#vi .vimrc输入以下配置:syntax on 语法高亮set nocompatible 不使用vi默认键盘布局 (这个比较烦人,如果不这样配置,在编辑模式下按方向键会输入字符)set number 显示行号set autoindent 自动对齐set
2013-11-25 18:07:30 527
转载 linux中单引号、双引号、反引号的作用
linux中单引号、双引号、反引号的作用Ref: http://hi.baidu.com/ssrstt/item/40ff21cac123c105ac092fd3单引号目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出.1. [root@jszwl161 SP49EP9]# echo '$*> $
2013-11-25 16:38:47 819
转载 linux特殊符号大全
Ref:http://www.cnblogs.com/balaamwe/archive/2012/03/15/2397998.htmllinux特殊符号大全在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $?
2013-11-25 16:35:05 609
转载 sed命令详解
http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html3.命令与选项sed命令告诉sed如何处理由地址指定的各输入行,如果没有指定地址则处理所有的输入行。 3.1 sed命令 命令 功能 a\ 在当前行后添加一行或多行。多行
2013-11-14 12:20:13 468
转载 数学有什么用处?看完后恍然大悟!_百度文库
Ref:http://wenku.baidu.com/view/6c0c918671fe910ef12df86c.html
2013-10-25 19:30:28 536
转载 Linux中的.rc文件介绍
在Linux中,最为常用的缩略语也许是“rc”,它是“runcomm”的缩写――即名词“run command”(运行命令)的简写。rc”是任何脚本类文件的后缀,这些脚本通常在程序的启动阶段被调用,通常是Linux系统启动时。如/etc/rs是Linux启动的主脚本,而.bashrc是当Linux的bash shell启动后所运行的脚本。ref:http://blog.csdn.net/hsu
2013-10-24 16:55:04 6975
转载 在ubuntu9.04中打开run 文件《以安装显卡驱动为例
引自:http://forum.ubuntu.org.cn/viewtopic.php?t=198562显卡: nVIDIA GeForce 8400M GS 驱动: NVIDIA-Linux-x86-169.07-pkg1.run 《这是老的。新的是NVIDIA-Linux-x86-185.19-pkg1.run》官方提供的安装流程大概说的如下:1. 下载驱动
2013-08-18 07:41:06 717
转载 翻译《计算机体系结构--量化研究方法》第四版附录F向量化部分
参考:http://www.opengpu.org/forum.php?mod=viewthread&tid=3870 我决定翻译《计算机体系结构--量化研究方法》第四版附录F1. 何出向量处理器?在第2、3章我们看到了如何通过每个时钟周期发射多条指令和利用更深的执行单元流水线来开发指令级并行(ILP)以显著提高性能。(这个附录假定你已经完整阅读了第2、3章和附录G。另外,对向量处
2013-05-07 13:49:41 1681
转载 Intrinsics头文件与SIMD指令集、Visual Studio版本对应表
Intrinsics头文件与SIMD指令集、Visual Studio版本对应表File:Intrinsics头文件描述:指令集描述VS:Visual Studio版本号VisualStudio:Visual Studio版本名File描述VSVisualStudiointrin.hAll Architectures8
2013-05-06 16:57:58 968
转载 并行计算分布式计算网格高性能计算机
并行计算分布式计算网格高性能计算机资料收集 并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 并行计算科学中主要研究的是空间上的并行问题。空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。我
2013-04-28 16:10:34 1231
转载 理解 Linux 配置文件
转载:http://www.ibm.com/developerworks/cn/linux/management/configuration/index.html简介: 本文说明了 Linux 系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、分配磁盘配额、管理电子邮件和新闻组,以及配置内核参数。本文还根据配置文
2013-04-28 09:29:03 451
转载 更换Linux的内核指南
转载:http://os.51cto.com/art/201101/242682.htmLinux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。现在网上许多硬件如声卡,网卡,内置modem等驱动都是针对rh7.3的。而
2013-04-28 09:09:12 728
转载 循环展开技术
循环展开技术转载:http://blog.chinaunix.net/uid-122937-id-2983686.html循环一直令我们头疼,因为循环体内总是隐藏着热点!请读者回顾上一小节中的示例代码。for(i = 0; i temp = temp * (array[i]); } 以上循环体的汇编代码如图9-7所示。观察其汇编代码,我们很容易发现,由于循环体的内容相对简单,以至
2013-04-26 07:14:33 3341
转载 分布式计算、并行计算及集群、网格、云计算的区别
转自:http://blog.csdn.net/cuidiwhere/article/details/7884545并行计算:并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单处理器无法提供的性能(处理器能力或存储器),使用多处理器求解单个问题。
2012-12-17 22:39:39 701
转载 计算机指令级并行
提高桌面级计算机指令级并行度的方法http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=13367作者:未知 厚朴教育来源:转载 点击数:525 更新时间:2011-7-24 并行计算从其并行的粒度来看,分为指令级、循环级、过程级、子程序级、作业级;而从并行计
2012-12-17 22:17:46 4929
转载 sftp使用方法
sftp使用方法2012-06-26 19:49:39| 分类:实验室 | 标签:sftp使用方法 |字号大中小订阅 sftp ipv4地址或者sftp [ipv6地址 ]输入密码:lcdlls等是对当前服务器进行操作cdls等是对远程的服务器进行操作put是将当前服务器文件夹内的某一个文件发送到远程服务器当前的目录下
2012-12-17 15:02:01 1325
原创 OpenCvCL中的运行时段错误2
在OpenCvCL中出现运行时段错误的情况也可能是因为上次对kernel的参数的匹配有问题造成的,第一次写kernel,第一次set kernel arguments就出现了这个问题 例如: cl_mem input_dst ; vector > args; args.push_back( make_pair( sizeof(cl_mem) , (void
2012-12-14 09:41:18 555
原创 OpenCvCL中的运行时段错误1
在OpenCVCL的开发过程中,发现了一个问题:同样的kernel,在test目录下的 ../test/test_moments.cpp调用是没有问题的,但是在perf目录下的 ../perf/perf_moments.cpp是有问题的,build之后,运行时报段错误。这个是什么问题造成的,解决办法:perf目录下的main函数如下: 77 int main(int argc, c
2012-12-14 09:27:00 791
原创 OpenCV OpenCL Gtest 工程框架的问题。
问题假设工程中有个类的名字或者函数的名字和TEST_P(oc_cvMoments,Mat)里面的第一个参数一样的话,就会出现以下问题。 Gtest框架的问题。struct ocl_cvMoments : MomentsTestBase {};TEST_P(ocl_cvMoments, Mat){略。。。} INSTANTIATE_TEST_CASE_P(Mo
2012-12-05 08:36:18 671
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人