小编Alt*_*ame的帖子

了解 Java 17 Vector 使用 pow 运算符的缓慢性和性能

我有一个与 Java 17 新的 Vector API 功能中的 pow() 函数相关的问题。我正在尝试以矢量化方式实现布莱克斯科尔斯公式,但我很难获得与标量实现相同的性能

\n

代码如下:

\n
    \n
  1. 我创建了一个双精度数组(目前只有 5.0)
  2. \n
  3. 我循环该数组的元素(标量和向量的循环语法不同)
  4. \n
  5. 我从其中的双数组创建 DoubleVectors 并进行计算(或只是计算标量)我正在尝试执行 e^(value),我相信这就是问题所在
  6. \n
\n

以下是一些代码片段:

\n
    public static double[] createArray(int arrayLength)\n    {\n        double[] array0 = new double[arrayLength];\n        for(int i=0;i<arrayLength;i++)\n        {\n            array0[i] = 2.0;\n        }\n        return array0;\n    } \n
Run Code Online (Sandbox Code Playgroud)\n
    @Param({"256000"})\n    int arraySize;\n    public static final VectorSpecies<Double> SPECIES = DoubleVector.SPECIES_PREFERRED;\n    DoubleVector vectorTwo =  DoubleVector.broadcast(SPECIES,2);\n    DoubleVector vectorHundred =  DoubleVector.broadcast(SPECIES,100);\n\n    double[] scalarTwo = new double[]{2,2,2,2};\n    double[] scalarHundred  = new double[]{100,100,100,100};\n\n    @Setup\n    public void …
Run Code Online (Sandbox Code Playgroud)

java performance simd vectorization java-17

8
推荐指数
1
解决办法
419
查看次数

标签 统计

java ×1

java-17 ×1

performance ×1

simd ×1

vectorization ×1