族谱网 头条 人物百科

并行向量处理机

2017-10-16
出处:族谱网
作者:阿族小谱
浏览:437
转发:0
评论:0
基本特点平行向量处理机最大的特点是系统中的CPU是专门定制的向量处理器(VP)。系统还提供共享存储器以及与VP相连的高速交叉开关。来自现实世界的例子:x86架构中的向量指令应用//改自英文維基stinationarray,2ndparam2.sourcearray,3rdparamnumberoffloatsperarrayvoidmul_asm(float*out,float*in,unsignedintleng){unsignedintcount,rest;/

基本特点

平行向量处理机最大的特点是系统中的CPU是专门定制的向量处理器(VP)。系统还提供共享存储器以及与VP相连的高速交叉开关。

来自现实世界的例子: x86 架构中的向量指令应用

// 改自英文維基 /wiki/Vector_processor//SSE simd function for vectorized multiplication of 2 arrays with single-precision floatingpoint numbers//t param pointer on source/destination array, 2nd param 2. source array, 3rd param number of floats per arrayvoidmul_asm(float*out,float*in,unsignedintleng){unsignedintcount,rest;//compute if array is big enough for vector operationrest=(leng*4)%16;count=(leng*4)-rest;// vectorized part; 4 floats per loop iterationif(count>0){__asm__volatile__(".intel_syntax noprefix\n\t""loop: \n\t""sub ecx,16 \n\t"// decrease address pointer by 4 floats"movups xmm0,[ebx+ecx] \n\t"// loads 4 floats in first register (xmm0)"movups xmm1,[eax+ecx] \n\t"// loads 4 floats in second register (xmm1)"mulps xmm0,xmm1 \n\t"// multiplies both vector registers"movups [eax+ecx],xmm0 \n\t"// write back the result to memory"jnz loop \n\t"".att_syntax prefix \n\t"::"a"(out),"b"(in),"c"(count),"d"(rest):"xmm0","xmm1");}// scalar part; 1 float per loop iterationif(rest!=0){__asm__volatile__(".intel_syntax noprefix\n\t""add eax,ecx \n\t""add ebx,ecx \n\t""rest: \n\t""sub edx,4 \n\t""movss xmm0,[ebx+edx] \n\t"// load 1 float in first register (xmm0)"movss xmm1,[eax+edx] \n\t"// load 1 float in second register (xmm1)"mulss xmm0,xmm1 \n\t"// multiplies both scalar parts of registers"movss [eax+edx],xmm0 \n\t"// write back the result\n\t""jnz rest \n\t"".att_syntax prefix \n\t"::"a"(out),"b"(in),"c"(count),"d"(rest):"xmm0","xmm1");}return;}

参阅

并行计算


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱

更多文章

更多精彩文章
评论 {{commentTotal}} 文明上网理性发言,请遵守《新闻评论服务协议》
游客
发表评论
  • {{item.userName}} 举报

    {{item.content}}

    {{item.time}} {{item.replyListShow ? '收起' : '展开'}}评论 {{curReplyId == item.id ? '取消回复' : '回复'}}

    回复评论
加载更多评论
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回
打赏
私信

推荐阅读

· 向量
表示方法向量由方向和程度(或:长度)两个因素所组成,可以记为a→→-->{\displaystyle{\vec{a}}}。一些书本向量会用粗体字母表示,如v{\displaystyle\mathbf{v}},要区分是否粗体字有时不容易,例如D{\displaystyle\!\mathrm{D}}和D{\displaystyle\!\mathbf{D}}肉眼看易混淆。向量的直观图形表示则一般使用带箭头的线段。而遇到某些特殊情况需要表示与记载纸面垂直的向量,则会使用圆圈中打叉或打点的方式来表示(如右图)。圆圈中带点的记号(⊙)表示由纸下方指向纸上方的向量,而圆圈中带叉的记号(⊗)则表示由纸的上方指向纸下方的向量。由于这种记号不表示向量的大小,所以必须时需要在旁边或其它地方另外注明。在直角坐标系中,定义有若干个特殊的基本向量,其它的向量可以通过这些基本向量来表示。在常见的三维空间直角坐标系...
· 向量势
定理设为二次连续可微的螺线向量场。假设当||x||→∞时,v(x)下降得足够快。定义那么,A是v的一个向量势,也就是说:这个定理的一个推广是亥姆霍兹分解,它表明任何一个向量场都可以分解为一个螺线向量场和一个无旋向量场的和。非唯一性螺线向量场所具有的向量势不是唯一的。如果A是v的一个向量势,那么:也是一个向量势,其中m是任何一个连续可微的标量函数。这可以从梯度的旋度是零的事实推出。参见向量分析基本定理磁矢势螺线管参考文献FundamentalsofEngineeringElectromagneticsbyDavidK.Cheng,Addison-Wesley,1993.
· 向量积
定义在右手坐标系中的向量积两个向量a{\displaystyle\mathbf{a}}和b{\displaystyle\mathbf{b}}的叉积写作a××-->b{\displaystyle\mathbf{a}\times\mathbf{b}}(有时也被写成a∧∧-->b{\displaystyle\mathbf{a}\wedge\mathbf{b}},避免和字母x混淆)。叉积可以定义为:在这里θθ-->{\displaystyle\theta}表示a{\displaystyle\mathbf{a}}和b{\displaystyle\mathbf{b}}之间的角度(0∘∘-->≤≤-->θθ-->≤≤-->180∘∘-->{\displaystyle0^{\circ}\leq\theta\leq180^{\circ}}),它位于这两个向量所...
· 多处理机
外部链接ChipMultiprocessing
· 向量场
定义设X是R里的一个连通开集,一个向量场就是一个向量函数我们称F为一个C向量场,如果F在X上是k次连续可微的。在X内,一个点x被称为固定的,若向量场可以理解为一个n维空间,其中对X内每一个点都有个附着的n维向量。给定两个定义于X上的C-向量场F,G以及一个定义于X上的C-实值函数f,可以定义以下运算如此便可定义在C函数的环上的C向量场的模。

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信