Releases: drhagen/tensora
Releases · drhagen/tensora
Tensora 0.4.3
Tensora v0.4.2
- Fixed bug in LLVM code generation where loops with too many iterations overflowed the stack. All local variables are now hoisted when using the LLVM as the backend compiler.
Tensora 0.4.1
- Added Windows support. This only covers the base package and the
tensora[numpy]extra. Thecffiandtacoextras are still only available on Linux and Mac. - Fixed sum nodes not fusing iterations loops of the same variable when the sum node also had nodes of other iteration variables or terminal expressions. This is an optimization improvement for the LLVM backend and a invalid code fix for the C code generation.
Tensora 0.4.0
Tensora now uses llvmlite as the backend compiler by default. The old method, using cffi to shell out to the system C compiler, is still available.
- Add
llvmliteas a backend compiler- Put the cffi compiler behind the
tensora[cffi]extra- Make setuptools a dependency only when this extra is installed
- Add
backend_compileroption totensor_methodwithBackendCompiler.llvmandBackendCompiler.cffias legal values - Add
evaluate_cffi, which uses Tensora as the tensor compiler and cffi as the backend compiler - Change
evaluateto use LLVM as the backend compiler, while still using Tensora as the tensor compiler - Add CLI option
--languagewith "c" and "llvm" as legal values
- Put the cffi compiler behind the
- Remove
HashOutput, which never actually worked - Add support for Python 3.13
- Add support for Returns 0.23, 0.24, and 0.25
Tensora 0.3.0
This release splits out the TACO binary into a separate package tensora-taco. This package is optional, making the TACO code generator optional. The native Tensora code generator is still included and used by default. TACO can be still be used as an alternative code generator if the tensora[taco] extra is installed.
Also, these other changes:
- The signature of
tensor_methodwas changed so that theoutput_formatandinput_formatswere combined into oneformatsdictionary - Renamed
PureTensorMethodtoTensorMethodto reflect the decision that mutable assignments will never be supported in Tensora - Most of the attributes on
TensorMethodwere made private - Cache on a parsed
Problem, instead of on the string versions of assignments and formats - Raise a nice exception on
TensorMethodwhen trying to broadcast to target indexes because there is no way for the dimensions of those indexes to be known. Generating such kernels via thetensoraCLI is still permitted. - Raise a nice exception when a tensor and and index have the same name in an assignment
- Remove
Tensor.from_scalar; you could always useTensora.from_lol - Do not cast the result of a vector inner product
a @ bto a Python scalar; leave it as a scalarTensor
Tensora 0.2.0
This release removes a lot of partially implemented features, making the remaining behavior more reliable.
- Scalars are no longer supported. Users must use
x()instead ofxin all expressions. - Added option to
tensoraCLI to allow choosing the external TACO binary as the code generator - Better exceptions are raised for many kinds of invalid input
- Appended an underscore in front of many Python files to make is explicit that they are not part of the external API
Tensora 0.1.1
This is a quick release to fix some issues in the previous release.
- Raise a nice exception when no solution is found by the tensor algebra compiler
- Rename
assembletoassembleeverywhere so that the tense is consistent withcomputeandevaluate - Fix bug where compute code was being emitted when assemble code was requested
Tensora 0.1.0
This release includes two major changes:
- A new tensor algebra compiler written in Python specifically for Tensora
- Added
tensora.TensorCompilerenum with valuesTensorCompiler.tensoraandTensorCompiler.taco tensor_methodaccepts an optional argumentcompiler: TensorCompilerthat selects the tensor algebra compiler;tensorais the default- Split
evaluateintoevaluate_tensoraandevaluate_tacoto select the tensor algebra compiler;evaluateis an alias forevaluate_tensora
- Added
- A
tensoraCLI that will emit the code for given tensor algebra problems
And one minor change:
- Dropped support for Python 3.8 and 3.9 (allows for the
matchstatement, which was helpful in writing the new tensora algebra compiler)