Python调用SSE2进行高性能计算
介绍
在本文的教程中,我要讨论一下怎样用Python调用外部库来进行高性能计算。Python调用库的计算结果,计算由汇编语言调用的SSE指令集,此速度在极限条件下(不作分支判断,只在一个循环中做加减乘除计算)与纯Python计算相比可以提升2000倍。 在进入教程之前,我们先简单介绍一下本文所讲述调用过程。 Python先调用这个库,这个库的计算由HLA提供,C语言调用HLA函数。然后计算结果通过标准Python接口传给Python。
SSE介绍
SSE指令集也叫单指令多数据流扩展。最早是由英特尔提出,是为了加强浮点运算、图像处理等多媒体应用的能力,能更好的对整个系统进行控制,提高处理性能的指令的集合。 SSE2指令集是Intel公司在SSE指令集的基础上发展起来的.相比于SSE,SSE2 使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能.随MMX技术引进的SIMD整数指令从64位扩展到了 128 位,使SIMD整数类型操作的有效执行率成倍提高.双倍精度浮点SIMD指令允许以 SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速财务、工程和科学应用.除SSE2指令之外,最初的SSE指令也得到增强,通过支持多种数据类型的算术运算,支持灵活并且动态范围更广的计算功能.SSE2指令可让软件开发员极其灵活的实施算法,并在运行诸如MPEG-2、MP3、3D图形等之类的软件时增强性能. 从SSE1到SSE4都是由英特尔所提出,而AMD除了自己的指令集3DNow!,也支持这些SSE指令集。
HLA介绍
HLA(High Level Assemble)是一种高级汇编语言。它提供了一些高级语言的特性,比如一些高级控制结构和过程调用。当然这些高级特性也是有代价的。好在它的自由度也很高,使用者也可以忽略它的这些特性,发挥低级汇编的效率特点。它的源文件还可以编译成FASM,Gas,MASM,TASM。
开始
1. 开始用HLA写程序之前,先确保HLA已经安装。