alex cole
11/25/2020, 5:54 PMIaroslav Postovalov
11/29/2020, 1:53 PMSFun
related interfaces?
I suppose this library can either be published to more stable Maven repository or removed from KotlinGrad core module, then extracted to a separate module that does use Princess.altavir
11/30/2020, 8:49 AMIaroslav Postovalov
12/08/2020, 8:41 AMalgebra.binaryOperation("+", 1, 1)
to algebra.binaryOperation("+")(1, 1)
. This feature also affects ASM code generation so generated classes store functional objects returned by *aryOperation("...")
methods instead of storing algebraic structures.Iaroslav Postovalov
12/08/2020, 8:41 AMzain
12/11/2020, 5:04 AMalex cole
12/28/2020, 2:37 AMbreandan
01/05/2021, 1:56 AMalex cole
01/14/2021, 12:05 AMaltavir
01/22/2021, 5:35 AMAndrew
01/23/2021, 4:36 PMaltavir
01/24/2021, 7:37 AMBoxing addition completed in 22157 millis
Specialized addition completed in 1840 millis
Nd4j specialized addition completed in 1309 millis
Viktor addition completed in 1966 millis
Parallel stream addition completed in 1457 millis
Automatic field addition completed in 1773 millis
Lazy addition completed in 14157 millisND4J uses OpenBlas under the hood. And I think @Iaroslav Postovalov told me that is uses parallel execution. I wonder if there is a large overhead on top of BLAS. Because the results are very close.
breandan
01/31/2021, 3:48 PMaltavir
02/03/2021, 4:05 PMbreandan
02/06/2021, 8:27 PMaltavir
02/09/2021, 2:05 PMaltavir
02/17/2021, 1:51 PMaltavir
02/21/2021, 2:44 PMspace.kscience
) and a completely new understanding of library aims. KMath does not want to follow numpy path and provide bindings for a single implementation of nd-arrays and numerics. Instead, we are working on a Kotlin-first API, that allows us to better tap into the kotlin lagnuage potential and allow to create the same or similar API to different existing libraries, so one could easily switch implementations withot a lot of changes in the code. Also we provide simple multiplatform implementations for people, who do not need super-optimized performance. Those basic implementations are thereby referenced as kmath-core to avoid confusion with library bindings like kmath-commons, kmath-ejml, kmath-viktor etc.
The important feature of the new release is the new documenation and stability policy. Ecch module has a Maturity level shown in the documentation:
• PROTOTYPE - both idea an the implementation may change.
• EXPERIMENTAL - we have an idea how it should look like, but implementation could change in minor versions.
• DEVELOPMENT - API compatibility between monitor versions is controlled via https://github.com/Kotlin/binary-compatibility-validator.
• STABLE - no module has reached this stage yet, but we plan to enforce production-ready stability guarantees.
New documentation plugin allows to maintain the list of module features. Here is the list of key feature modules:
• kmath-core Core classes, algebra definitions, basic linear algebra, nd-structures, expressions etc.
• kmath-commons Bindings for Commons-math library.
• kmath-complex Complex numbers and quternions (separated from core in this release.
• kmath-nd4j ND4J bindings for nd-structures implementation.
• kmath-ejml EJML bindings for linear algebra implementatiion.
• kmath-viktor JetBrains Research Viktor bindings for real-valued nd-structures.
• kmath-histograms Univariate and multivariate histograms.
• kmath-ast MST (mathematical syntax tree) definition, JIT expression compilation with ASM on JVM and JS interpreter on JS. Symbolic algebra.
• kmath-kotlingrad Automatic differentiation via MST and kotlingrad library.
The significant part of the release is done by @Iaroslav Postovalov. I would also like to thank a lot of people, including @breandan, @Peter Klimai, @elizarov , @Ролан, @Aleksei Dievskii, @roman.belov, @Pavel Gorgulov and numerous others (I can't remember them all, we need a list), for discussions and contributions.
The project is supported by the JetBrains Research.altavir
03/08/2021, 9:24 AMSpace
which does not have a numeric scaling of its members? We have some problems bringing KMath inheritance model in check and keep it practical so I am thinkgin about different architectural approaches.breandan
03/22/2021, 7:15 PMInside Every Calculus Is A Little Algebra Waiting To Get Out
Because of deep learning, there has been a surge in interest in automatic differentiation, especially from the functional programming community. As a result there are many recent papers that look at AD from a Category Theory perspective. However, Category Theorists have already been looking at differentiation and calculus in general since the late 60’s in the context of Synthetic Differential Geometry, but it seems that this work is largely ignored by those interested in AD. In this talk, we will provide a gentle introduction to the ideas of SDG, by relating them to dual numbers, and show how it provides a simple and purely algebraic approach to (automatic) differentiation.https://mcgill.zoom.us/j/89551971819
altavir
03/25/2021, 5:01 PMIaroslav Postovalov
03/31/2021, 12:41 PMaltavir
04/16/2021, 12:53 PMStructureND
.Zhelenskiy
04/16/2021, 7:19 PMFilipe Duarte
04/17/2021, 1:25 AMaltavir
04/30/2021, 11:38 AMStructureND
meaning it is compatible with any other library which have binings for KMath and one could pass those structures around between different implementations (like Viktor for example).
@Ролан I also would like for your students to make a public seminar (in English) describing what have they done and sharing their experience.Iaroslav Postovalov
05/02/2021, 7:03 PMdev
branch.Iaroslav Postovalov
05/02/2021, 7:21 PMZhelenskiy
05/06/2021, 4:45 PMLongBased
type, it became 10 faster than generic one. The speed was the same with just manual long checking. This is because I used inline types. However, it is still a lot slower than just pure usage of Int
s and `Long`s. But that may be achieved if the code is run under HotSpot and it decides to use intrinsic there. Here is the repo: https://github.com/zhelenskiy/BigInteger/tree/main.Ролан
05/07/2021, 5:51 AMРолан
05/07/2021, 5:51 AMHampus Londögård
05/07/2021, 6:02 AMРолан
05/07/2021, 6:29 AMHampus Londögård
05/07/2021, 6:31 AMРолан
05/07/2021, 6:32 AMDoubleArray
indeedHampus Londögård
05/07/2021, 6:35 AMРолан
05/07/2021, 6:43 AMaltavir
05/07/2021, 7:30 AMHampus Londögård
05/07/2021, 7:37 AMaltavir
05/07/2021, 7:39 AMРолан
05/07/2021, 8:26 AMaltavir
05/07/2021, 8:26 AMIaroslav Postovalov
05/07/2021, 9:51 PMaltavir
05/08/2021, 5:45 AMIaroslav Postovalov
05/08/2021, 9:17 AMРолан
05/08/2021, 8:29 PMaltavir
05/08/2021, 9:18 PMРолан
05/09/2021, 6:06 AMboost_compute
namespace bc = boost::compute;
auto src_code = std::string_view{
"float circle_area_gpu(Circle c) { "
" float pi = 3.14f;
"
" return c.r * c.r * pi;
"
"}
"
};
auto circle_area_gpu = bc::make_function_from_source<float(Circle)> (
"circle_area_gpu", src_code.data()
);
altavir
05/09/2021, 6:16 AMРолан
05/09/2021, 6:17 AMaltavir
05/09/2021, 6:19 AMРолан
05/09/2021, 6:20 AMaltavir
05/09/2021, 6:20 AM