-
Notifications
You must be signed in to change notification settings - Fork 14
Remove dot() function #15
Comments
That is very strange. In my tests Yeppp! dot product outperformed MKL. I'll look into into, probably a Windows-specific problem. |
I don't see anything suspicious in the assembly code. Probably, the result is due to passing the same vector |
Hold on, isn't the MKL number multi-threaded? |
@Keno probably. There are separate |
@Maratyszcza , I don't understand your last comment. Since I'm using Windows, I'm using |
@hiccup7 This comment is about MKL, Yeppp! is always single-threaded. |
@Maratyszcza , thanks for the clarification. |
I think we can leave |
When Julia is built without any BLAS library, which library is used for dot products? If Yeppp provides a faster dot product than the existing non-BLAS method, then the base could use the Yeppp function under the hood. My intention is that the base provides the fastest library for dot(), regardless of which or any BLAS library is used. This will make Julia code more portable. If Yeppp's dot() is desired for non-BLAS builds, then we could at least avoid exporting the dot() method from the Yeppp module so that novice users will use the faster base dot() method instead. |
Currently, there is no way to build Julia without a BLAS library. |
for
|
Tests performed on 64-bit Windows Intel Haswell CPU with Julia v0.3.7 using OpenBLAS v0.2.14 extracted from Julia v0.4 nightly:
Test performed on the same PC with MKL BLAS on Python:
Thus, Yeppp is 5% faster than OpenBLAS v0.2.14 and 300% slower than MKL BLAS. I would rather not keep Yeppp's dot() function as a negligible work-around for an OpenBLAS v0.2.14 problem.
I propose that we remove the dot() function. To get Julia to match Python's speed, I propose instead:
a) Ship Julia with MKL, see JuliaLang/julia#10969
b) Work with the OpenBLAS project to correct the dot product performance problems.
The develop branch of OpenBLAS may already work. See the commit from April 24th entitled "bugfixes: replaced int with BLASLONG"
I am concerned that users of Yeppp.dot() will miss the 300% speed improvement coming in the base. Better to remove it before Yeppp becomes popular in Julia.
The text was updated successfully, but these errors were encountered: