杂集
weijitao
这个作者很懒,什么都没留下…
展开
-
持续集成CI
持续集成(CI)正是针对软件质量问题的一个开发实践。团队开发人员经常集成他们的工作,每次集成都通过自动化的构建(包括编译、部署和测试)来验证,从而能够尽快的发现问题、解决问题。Jenkins是一种开源的持续集成的工具,它具有容易安装、配置,集成RSS/Email实时通知机制,支持分布式构建,丰富的插件支持等特性。CI的目标CI的核心价值在于它的任何一个环节都是自动完成的,无需人工的原创 2015-06-14 10:41:23 · 2496 阅读 · 0 评论 -
持续集成CI之Jenkins使用指南
安装在debian下jenkins的安装方法如下:wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.原创 2015-06-21 23:22:10 · 1888 阅读 · 0 评论 -
NUMA架构下的CPU拓扑
目前多核已经越来越普遍的使用,Linux对NUMA架构的支持也越来越完善。对于内存管理、多处理的负载均衡调度等进行了大量的优化工作。NUMA相关的几个概念有node、socket、core和thread。Socket是一个物理上的概念,指的是主板上的cpu插槽。Node是一个逻辑上的概念,对应于socket。Core就是一个物理cpu,一个独立的硬件执行单元。Thread就是超线程的概原创 2016-10-21 16:16:48 · 12655 阅读 · 2 评论 -
update-grub脚本分析
假如/boot目录下面有多个内核(例如kernel1、kernel2、kernel3等),你现在运行的内核版本是kernel1,运行update-grub命令之后,你会发现grub.cfg文件的默认启动项被更改为启动kernel3了,这样如果你重启系统,系统就会切换到运行内核kernel3上面。我发现这种现象是在修改了/boot/default/grub文件中的选项之后,运行update-原创 2016-10-24 19:36:41 · 13789 阅读 · 1 评论 -
C语言指针和指针的指针的一个问题
关于指针和指针的指针问题,下面结合一个程序来看看。 1 #include 2 int main(void) 3 { 4 5 int i = 5, j = 6, k = 7; 6 int *p1 = &i; 7 int *p2 = &j; 8 int **pp;原创 2016-11-16 20:24:23 · 604 阅读 · 0 评论 -
频繁分配释放内存的性能问题
在调优程序的过程中发现对于分辨率大小不同的两个图库,程序总的运行性能数据(如FPGA kernel利用率及每张图处理的latency)差别很大,使用/usr/bin/time –v分析程序发现测试两个图库时,报的minor falut(次缺页错误)不是一个数量级别的。 linux系统下面缺页异常主要分为四种情况。minor falut属于请求调页的一种。当malloc函数调用时,并未实际分...原创 2018-02-22 17:59:43 · 4757 阅读 · 1 评论 -
solarflare网卡自环测试
对于一块单独的solarflare网卡进行性能测试,如何进行?solarflare x2万兆光网卡上面有两个port,通过光纤直连这两个port进行测试。如果不做任何其他的设置,直接一个port Ip作为client地址,另一个port作为server地址,这样测试的结果是不准确的。你可以尝试把光驱从光模块上拔掉,会发现数据发送接收不受影响。这是如何实现的?环回接口允许在同一台主机上的客户...原创 2019-01-10 18:46:19 · 6803 阅读 · 0 评论 -
基于GPUDirect RDMA的GPU和FPGA通信
FPGA和GPU作为数据处理加速平台,在某些应用方面能够很好的替代CPU的计算工作。传统的CPU、FPGA和GPU之间的通信如下图所示: FPGA和GPU都作为PCIE设备,通过PCIE总线与CPU进行通信。如果FPGA和GPU直接需要有数据的交互,传统的方式就是FPGA通过DMA把数据先传输到主机RAM,然后GPU再通过DMA从主机RAM读取数据。这样一个流...原创 2019-01-29 17:14:53 · 8946 阅读 · 6 评论