|
3 | 3 |  |
4 | 4 |
|
5 | 5 | This package provides bindings to the Intel MKL [Vector Mathematics Functions](https://software.intel.com/en-us/node/521751). |
6 | | -This is often substantially faster than broadcasting Julia's built-in functions, especially when applying a transcendental function over a large array. |
| 6 | +This is often substantially faster than broadcasting Julia's built-in functions, especially when applying a transcendental function over a large array. |
7 | 7 | Until Julia 0.6 the package was registered as `VML.jl`. |
8 | 8 |
|
9 | 9 | Similar packages are [Yeppp.jl](https://github.com/JuliaMath/Yeppp.jl), which wraps the open source Yeppp library, and [AppleAccelerate.jl](https://github.com/JuliaMath/AppleAccelerate.jl), which provides access to macOS's Accelerate framework. |
@@ -37,8 +37,8 @@ In the event that MKL was not installed properly you will get an error when firs |
37 | 37 |
|
38 | 38 | ## Using IntelVectorMath |
39 | 39 | After loading `IntelVectorMath`, you have the supported function listed below, for example `IntelVectorMath.sin(rand(100))`. These should provide a significant speed-up over broadcasting the Base functions. |
40 | | -Since the package name is quite long, an alias `IVM` is also exported to allow `IVM.sin(rand(100))` after `using` the package. |
41 | | -If you `import` the package, you can add this alias via `const IVM = IntelVectorMath`. Equally, you can replace `IVM` with another alias of your choice. |
| 40 | +Since the package name is quite long, an alias `IVM` is also exported to allow `IVM.sin(rand(100))` after `using` the package. |
| 41 | +If you `import` the package, you can add this alias via `const IVM = IntelVectorMath`. Equally, you can replace `IVM` with another alias of your choice. |
42 | 42 |
|
43 | 43 | #### Example |
44 | 44 | ```julia |
@@ -100,16 +100,87 @@ regarding these options is available on |
100 | 100 | [Intel's website](http://software.intel.com/sites/products/documentation/hpc/mkl/IntelVectorMath/vmldata.htm). |
101 | 101 |
|
102 | 102 | ## Performance |
103 | | -(These results are currently outdated and will be updated in due course) |
104 | | - |
105 | | - |
106 | | - |
107 | | - |
108 | | -Tests were performed on an Intel(R) Core(TM) i7-3930K CPU. Error bars |
109 | | -are 95% confidence intervals based on 25 repetitions of each test with |
110 | | -a 1,000,000 element vector. The dashed line indicates equivalent |
111 | | -performance for IntelVectorMath versus the implementations in Base. Both Base and |
112 | | -IntelVectorMath use only a single core when performing these benchmarks. |
| 103 | +Summary of Results: |
| 104 | + |
| 105 | +Relative speed of IntelVectorMath/Base |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | +Full Results: |
| 112 | + |
| 113 | +<details> |
| 114 | + <summary>Real Functions - Full Benchmark Results</summary> |
| 115 | + |
| 116 | +  |
| 117 | +  |
| 118 | +  |
| 119 | +  |
| 120 | +  |
| 121 | +  |
| 122 | +  |
| 123 | +  |
| 124 | +  |
| 125 | +  |
| 126 | + |
| 127 | +</details> |
| 128 | + |
| 129 | +<details> |
| 130 | + <summary>Complex Functions - Full Benchmark Results</summary> |
| 131 | + |
| 132 | +  |
| 133 | +  |
| 134 | +  |
| 135 | +  |
| 136 | +  |
| 137 | +  |
| 138 | +  |
| 139 | +  |
| 140 | +  |
| 141 | +  |
| 142 | + |
| 143 | +</details> |
| 144 | + |
| 145 | +<details> |
| 146 | + <summary>Real Functions - Performance over dimensions</summary> |
| 147 | + |
| 148 | +  |
| 149 | +  |
| 150 | +  |
| 151 | +  |
| 152 | +  |
| 153 | +  |
| 154 | +  |
| 155 | +  |
| 156 | +  |
| 157 | +  |
| 158 | +  |
| 159 | +  |
| 160 | +  |
| 161 | +  |
| 162 | +  |
| 163 | +  |
| 164 | +  |
| 165 | +  |
| 166 | +  |
| 167 | +  |
| 168 | +  |
| 169 | +  |
| 170 | +  |
| 171 | +  |
| 172 | +  |
| 173 | +  |
| 174 | +  |
| 175 | +  |
| 176 | +  |
| 177 | +  |
| 178 | + |
| 179 | +</details> |
| 180 | + |
| 181 | +<br/> |
| 182 | + |
| 183 | +Tests were performed on an Intel(R) Core(TM) i5-8250U @ 1.6 [GHz] 1800 Mhz. The dashed line indicates equivalent performance for IntelVectorMath versus the implementations in Base. |
113 | 184 |
|
114 | 185 | ## Supported functions |
115 | 186 |
|
|
0 commit comments