在ARM平台上玩转perl

作者: bzhaoopenstack

在ARM平台上如何愉快的切换perl版本,给自己的项目提供方便,请看过来。

ARM64版本的Ubuntu上安装perf

作者: zhaorenhai

perf是linux下一个很好用的性能分析,性能调优工具。在x86版本的Ubuntu上面,使用perf时,如果默认没有安装,会提示你apt install linux-tools-common,然后再安装apt install linux-tools-x.x.x-generic linux-cloud-tools-x.x.x-generic 一般就可以正常使用了。
但是当前ARM64版本的Ubuntu上面还不支持这么直接安装perf。 接下来我们就介绍下如何在ARM64版本的Ubuntu上安装perf

关于原子操作和弱内存序

作者:赵仁海

什么是原子操作

大家都知道在多核系统上,可以多个CPU核并行执行,即使是在单核系统上,也可以通过中断的方式模拟并行执行。但是内存只有一个,或者确切的说,某一个地址上的数据在内存里只有一个,当有可能出现多个线程对某一个内存地址上的数据同时进行操作的时候,由于这个操作一般会被翻译成CPU的多个指令,当你想实现: 让这多个指令的执行不能被中断,或者同一个内存地址当当前线程在操作的时候其他CPU核不能访问,即使被中断了,或者被其他核访问了,对当前线程也没有任何影响的操作,就可以称之为原子操作。

Aarch64服务器应用软件开发需要添加的编译参数

作者: zhaorenhai

本文简单总结了一下,在aarch64服务器平台进行应用软件开发或者移植工作,编译代码时,编译器应该添加哪些选项。网上类似文章不少,但是由于arm平台涉及了移动开发,嵌入式开发,服务器开发各个领域,编译方式也有交叉编译,本地编译等,而且编译器也有gcc,armcc,armclang,clang等等多种,再加上arm平台历史版本众多,又分了32位,64位,网上这些文档一般都不明确说明文档涉及的开发平台,对应指令集版本,需要的编译器之类的情况,让人看上去比较头疼。

让压缩库ZSTD在aarch64更顺滑

作者: 姜逸坤 曹亚珍

Facebook的ZSTD压缩库从1.0版本发布的那天起,就引起了业界的关注,对比业界常用的压缩库lz4、zilib、xz,ZSTD更注重速度和压缩比的均衡,对比zlib来看,更是在保证压缩比的情况下,较zlib压缩性能提升6倍左右,解压性能提升2倍左右。

我们团队也在2020年年初时,对ZSTD压缩库进行了性能优化,最终优化已推入到Facebook的上游社区中,本文将详细的介绍我们进行的优化。

源于鲲鹏,回归社区:GNU Glibc的ARM优化小记

作者:姜逸坤 张学磊

从2019年10月初开始,我们团队开始着手Glibc在aarch64(64)架构下的优化工作,并且在2019年年底,将我们的全部优化贡献给上游开源社区。本文分享我们在Glibc的版本完成的优化以及性能测试结果,同时我们也尝试着将优化的思路进行总结,希望对其他项目的优化提供一些思路。

让Github Action在你的ARM机器上跑起来

作者:姜逸坤

Github在2019年8月,宣布推出了一项新的功能——Github Action,让成千上万的开源项目可以利用Github提供的计算资源完成构建、测试、部署等CI/CD,并且提供Self Hosted Runners功能,让开发者们可以将自己的机器接入到Github中来。

最近,我们利用这一功能,将搭载着openEuler 20.03 (LTS) 操作系统,跑在Kunpeng 920 处理器的ARM环境接入进来,在近期华为与阿里合作的MPAM项目,也将充分的利用这些资源利用Github Action的能力完成构建与测试。

本篇文章将接入方法分享给大家,希望能够帮助更多同学们把自己的ARM环境也在Github上用起来。

ARM优化和Java Math库有关的那些坑

作者:姜逸坤

1. 起初

最近在进行ARM切换的过程中发现了很多因为Java Math库在不同的平台上的精度不同导致用例失败,我们以Math.log为例,做一下简单的分析。下面是一个简单的计算log(3)的示例:

1
2
3
4
5
6
public class Hello {
public static void main(String[] args) {
System.out.println("Math.log(3): " + Math.log(3));
System.out.println("StrictMath.log(3): " + StrictMath.log(3));
}
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×