1、Dragonwell+VectorAPI 助力Java高性能新时代演讲人:金钟晖英特尔数据中心和AI事业部高级应用软件工程师CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava20
2、23CoreJava20231.Java 高性能计算遇到的挑战2.VectorAPI:Java在特定领域进行高性能计算的利器3.如何才能更好利用VectorAPI?4.阿里巴巴和英特尔在Dragonwell上的合作CONTENT目录CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023Core
3、Java2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava20231.Java 高性能计算遇到的挑战 向量化(Vectorization)高性能计算的标配 多媒体,游戏娱乐,大数据处理,机器学习,人工智能都重度依赖于向量化运算;使用向量化计算可以获得数倍的性能提升。向量化运算使用的SIMD(Single Instruction Multiple Data)硬件单元普遍存在于目前主流硬件平台上 Java进行向量化运算限制较多,要么依赖于JVM的自动向量化,要么通过JNI(Java Native Interface)调用本地实现
4、 利用SIMD硬件的途径:自自动动向向量量化化调调用用本本地地语语言言库库直直接接针针对对 SIMD 单单元元编编程程C/C+、汇编等本地语言是是是(Intrinsic/汇编)Java是是(JNI)是(VectorAPI)CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava2
5、023CoreJava2023CoreJava2023CoreJava2023CoreJava2023CoreJava20232.VectorAPI:Java在特定领域进行高性能计算的利器 VectorAPI可以清晰简洁地表达范围广泛的向量计算,并将Java代码在运行时可靠地编译为支持的CPU架构上的最佳向量硬件指令 VectorAPI是架构不可知的,可以在支持向量运算的多个CPU架构上实现运行 优雅降级:如果向量运算在运行时不能完全表示为一系列硬件向量指令,VectorAPI将会优雅降级并且仍然起作用 VectorAPI(Incubator,JEP 338,JEP:JDK Enhanceme
6、nt Proposals)最初于 2018 年 4 月开始创建,在 OpenJDK16 作为孵化器项目(2020年10月)被引入。随着后续 OpenJDK 版本的升级,VectorAPI 也得到了同步升级OpenJDK 17-JEP 414,Second IncubatorOpenJDK 18-JEP 417,Third IncubatorOpenJDK 19-JEP 426,Fourth IncubatorOpenJDK 20-JEP 438,Fifth Incubator 每次 VectorAPI 的升级都会带来性能提升,更多功能和 Bugfix。CoreJava2023CoreJava2