当前位置: 首页 > news >正文

如何架设内部网站树莓派装wordpress

如何架设内部网站,树莓派装wordpress,建设银行wap网站,建设工程标准 免费下载网站最近#xff08;2024年3月29日#xff09;#xff0c;号称比Python快6.8万倍的Mojo编程语言开源啦#xff01;6.8万倍#xff1f;你敢相信这个数字是真的吗#xff1f;不过#xff0c;就连Mojo官网都把这个结果贴了出来#xff08;见下图#xff09;#xff0c;这就很… 最近2024年3月29日号称比Python快6.8万倍的Mojo编程语言开源啦6.8万倍你敢相信这个数字是真的吗不过就连Mojo官网都把这个结果贴了出来见下图这就很难让你不对这个数字引起好奇。很显然Mojo官方的结果难免有“自卖自夸”的嫌疑但至少说明在某些特殊的场景下确实得到了这个数字官网不会造假。那么究竟是什么原因让Mojo能比Python快这么多呢下面我们就揭开这一神秘的面纱也借此机会让我们进一步了解Mojo这门比较火的编程语言。 Mojo简介 Mojo编程语言是由Modular公司开发的旨在为人工智能领域提供统一的编程框架。它是基于Python语法的超集结合了Python的易用性和C语言的性能支持多核、向量单元和加速器单元等硬件功能。Mojo能够对大量低级AI硬件进行编程模型扩展性更强为开发者提供卓越的性能体验。Mojo的创始人是Chris Lattner他是Swift语言的创始人也参与了LLVM和Clang的开发。他与Google的机器学习产品经理Tim Davis共同创立了Modular公司并在2022年推出了Mojo语言。 特殊的例子 可以猜想这个6.8万倍的结果是在一个特殊的例子上完成具体来说它计算和绘制了Mandelbrot集就是下面的分图案。这是一个非常简单但是又非常耗费计算资源的例子测试者也给出了选择这个作为例子的理由 简单表达只有很少的代码纯计算曼德勃罗集没有内存开销容易并行可向量化 所以6.8万倍的第1个秘密就是这个计算场景非常适合发挥Mojo的所有优势这是经典的以己之长比别人之短。 # 代码示例下面函数中z是复数 MAX_ITERS 1000 def mandelbrot_kernel(c): z cnv 0for i in range(MAX_ITERS):if abs(z) 2:breakz z*z cnv 1return nv 编译语言vs解释语言 众所周知Python是解释型语言性能上天然会有一些劣势。Mojo是虽然语法上兼容Python很多写法上是一样的但却是一个编译语言。除此之外Mojo除了像Python一样支持动态类型在运行的时候才知道变量的类型还支持另一种静态类型的写法见下面代码示例当使用静态类型的时候编译器可以提前对代码做出很多针对性的优化提升性能。6.8万倍的第2个秘密就是这Mojo是一门支持静态类型的编译语言。 fn mandelbrot_2(c: ComplexFloat64) - Int:var z cvar nv 0for i in range(1, MAX_ITERS):if z.squared_norm() 4:breakz z.squared_add(c)nv 1return nv 向量化 前面两个秘密其实还谈不上多神秘很容易理解和想到。我认为接下来谈到的这个才算是Mojo真正厉害的地方。 正如宣传所说Mojo是面向人工智能的语言人工智能计算的特点是什么大量的向量计算。于是Mojo对向量计算进行了针对性的优化并且这种优化深入到了底层硬件。为此Mojo内置了SIMD类型。 单指令多数据SIMD是一种并行处理技术内置于许多现代CPU、GPU和定制加速器中。SIMD允许您一次对多个数据执行单个操作。例如如果您想对数组中的每个元素求平方根可以使用SIMD来并行化工作。 Mojo中的SIMD类型就是专门负责针对不同的CPU/GPU进行这种优化的具体是实现细节在这里就不展开了。在原作者测试的机器上CPU具有512bit长的向量寄存器这意味着CPU可以一次操作512/648个双精度浮点数理论上可以实现8x的加速实测结果是实现了6x以上的加速。此外原作者在SIMD的基础上还进行了进一步针对CPU的指令的优化现代 x86 系统具有多个融合乘加FMA单元使其能够在每个时钟周期执行多个 FMA。这一优化也将速度再原有基础上提升了一倍多不过这一技巧很难适用于所有的计算场景不多讨论。 鉴于Mojo内置了SIMD数据类型所以实现上面的优化并不算复杂这一向量化加速的技术还真是非常适合人工智能计算的场景呢。6.8万倍的第3个秘密就是SIMD向量化加速。 多线程加速 Python实是单线程的如果要利用多核CPU的特性还需要一些特殊的处理很不方便。Mojo是原生支持多线程的可以很方便利用多核CPU的特性。用多核CPU对比Python的单核CPU这不是作弊吗确实不过在这里我们先不谈公平问题先看看在Mojo中是如何实现多线程加速的。 fn compute_row(chunk_idx:Int):let y chunk_size * chunk_idxlet cy min_y y * scale_yparameterfn compute_vector[simd_width:Int](w:Int):let cx min_x iota[DType.float64, simd_width]() * scale_xoutput.simd_store[simd_width](Index(h,w), mandelbrot_kernel(ComplexSIMD[DType.float64, simd_width](cx,cy))vectorize[num_ports * simd_width, compute_vector](width)# !!! 重点代码在这里with Runtime(num_cores()) as rt:parallelize[compute_row](rt, height) 实事求是的说在Mojo中实现并行确实方便的多啊无论如何还是要为这一特性点个赞。所以6.8万倍的第4个秘密就是多线程并行加速。 原作者测试的机器具有88个CPU通过这一“作弊行为”直接将性能在原有的基础上提升了 30 倍效果那是相当明显。但是你可能好奇为什么没有提升到88倍呢 负载均衡和数据倾斜 我相信“负责均衡”和“数据倾斜”这两个概念至少有一个你是比较熟悉的通俗点讲它们都反应了一个问题分工不均活都让少数人干了。这就是上面的例子中为什么88核CPU只实现了30倍加速的原因计算在88个CPU中并不是均匀分布的。那么如何进一步优化呢 方法其实也并不复杂我们可以把任务进一步拆分成更小的单元拆分的越细平均分配给每个cpu之后越不容易产生“分工不均”的现象如果你写过Spark应该听过这个最佳实践任务/Task的数量最好是Executor/Core数量的2-3倍而不是等于。值得庆幸的是Mojo 包含一个高性能并发运行时因此我们不必自己创建线程池或进行循环选择和执行。Mojo 的运行时包含高级功能可以充分利用像这样的多核系统。 # 只需要对原来代码做很少改动 with Runtime(num_cores()) as rt:let partition_factor 16 # Is autotuned.parallelize[compute_row](rt, height, partition_factor * num_cores()) 6.8万倍的第5个秘密就是负载均衡。 总结 以上每一个优化都会使得性能提升几倍到数十倍不等这些数字相乘之后确实就得到了6.8万这一耸人听闻的数字。一路学习了解下来我觉得Mojo确实是一门相当不错的编程语言同时Mojo团队也是很懂营销啊 关注【黑客悟理】不错过任何奇奇怪怪的知识 参考资料 https://www.modular.com/blog/how-mojo-gets-a-35-000x-speedup-over-python-part-1https://www.modular.com/blog/how-mojo-gets-a-35-000x-speedup-over-python-part-2https://www.modular.com/blog/mojo-a-journey-to-68-000x-speedup-over-python-part-3https://mojocn.org/ 如果你喜欢我的文章欢迎到我的个人网站关注我非常感谢
http://www.pierceye.com/news/587531/

相关文章:

  • idc空间商网站源码知名的网站建设
  • 什么叫网站降权建设网站租服务器
  • 网站后台模板怎样使用站长平台
  • 写一个app需要多少钱龙岩seo包年系统排行榜
  • 科技公司企业网站建设手机360网站seo优化
  • 做翻译 英文网站黑色时尚橱柜网站源码
  • wordpress 主机要求珠海百度推广优化
  • 台山网站建设哈尔滨网站建设收费
  • 卖主机 服务器的网站wordpress自动标签内联
  • 28创业商机网seo在线优化技术
  • 建设银行网站查询余额世界杯球队最新排名
  • 网站对联广告做戒指网站的logo照片
  • 网站开发 项目计划书网页设计产品介绍页面的制作
  • 专做正品 网站青岛 网站制作
  • wordpress建站镜像杭州网站开发公司排名
  • 网站都需要什么类别网站首页seo关键词布局
  • 泰安千橙网站建设北京活动策划公司黄页
  • 网页网站模板北京市工商注册网上服务系统
  • 企业网站建设报价明细表免费ppt模板下载哪个网站好
  • 佛山做公司网站全球域名
  • 网站建设陆金手指谷哥7邢台企业做网站找谁
  • h5手机端网站开发优秀高端网站建设
  • 东莞桥头网站建设廊坊开发网站公司
  • sem优化托管公司湖南做网站seo
  • 网站流量下跌免费空间asp网站
  • 有没有可以做app的网站wordpress代码转义
  • 电子商务网站开发的任务书wordpress图片间距
  • 石家庄集团网站建设哪些网站可以做微信
  • 网站文件夹名平台期什么意思
  • 怎么用vps做网站论坛网站建设视频