Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stablehlo.sort Ops #374

Merged
merged 8 commits into from
Dec 28, 2024
Merged

stablehlo.sort Ops #374

merged 8 commits into from
Dec 28, 2024

Conversation

glou-nes
Copy link
Contributor

@mofeing I keep the initial signature, do we need the generalized version of the specification?

src/Ops.jl Outdated
comparator = MLIR.IR.Region()
MLIR.API.mlirRegionTakeBody(comparator, MLIR.IR.region(func, 1))
MLIR.IR.rmfromparent!(func)
global leaked = comparator
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mmm why a global?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank! leaked debug variable...

src/Ops.jl Outdated
# end
function sort(
x::TracedRArray{T,N};
comparator::Function,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

forcing this to be a Function can give us problems if we want to use a functor

i think it's better to remove the condition maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure I will relax it, do you have a example of functor?

Copy link
Collaborator

@mofeing mofeing Dec 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a functor is just any object that can behave as a function. like a struct which you can call:

struct Functor
    x::Int
end

(functor::Functor)(y) = functor.x + y

as an example in Julia, closures are functors

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this means that you can't put a type param there to select functors

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright Closure <: Function so that can work. The pattern with struct cannot work that way. I remove the bound.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exactly

src/Ops.jl Outdated Show resolved Hide resolved
@assert MLIR.IR.nregions(func) == 1
ftype_attr = MLIR.IR.attr(func, "function_type")
ftype = MLIR.IR.Type(ftype_attr)
@assert MLIR.IR.result(ftype) == MLIR.IR.TensorType((), MLIR.IR.Type(Bool)) error(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wait, calling result on a Type works?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and what are the semantics? like what is the result of a Type??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the MLIR type system grammar, function-type ::= (type | type-list-parens) -> (type | type-list-parens). On a function type, it returns the type result of the function.

src/Ops.jl Outdated
@assert size(method, 1) == 1 error("$comparator ambiguous candidates")
#TODO: move to @trace
(a, b) = (ConcreteRNumber(T(0)), ConcreteRNumber(T(0)))
func = Reactant.make_mlir_fn(comparator, (a, b), (), "main"; no_args_in_result=true)[2]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we can do sth simpler like in hlo_call or such? @Pangoraw @jumerckx this pattern of tracing over a function to latter inject it into a Ops is starting to repeat (and will need it for if and while). is there an abstraction for it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need the no_args_in_result here. Probably waiting interpreter and functions caching PRs.

@mofeing
Copy link
Collaborator

mofeing commented Dec 13, 2024

thanks @glou-nes

i left some comments that i think also needs revision from some other people

src/Ops.jl Outdated Show resolved Hide resolved
src/Ops.jl Outdated Show resolved Hide resolved
@wsmoses
Copy link
Member

wsmoses commented Dec 18, 2024

tests presently fail per

  UndefVarError: `ConcreteRNumber` not defined
  Stacktrace:
    [1] sort(x::Reactant.TracedRArray{Float64, 3}; comparator::Function, dimension::Int64, is_stable::Bool, location::Reactant.MLIR.IR.Location)
      @ Reactant.Ops ~/work/Reactant.jl/Reactant.jl/src/Ops.jl:964
    [2] sort
      @ ~/work/Reactant.jl/Reactant.jl/src/Ops.jl:953 [inlined]
    [3] basic_sort
      @ ~/work/Reactant.jl/Reactant.jl/test/ops.jl:650 [inlined]
    [4] (::Main.var"##Shortcuts to MLIR ops#235".var"#basic_sort#24")(x::Reactant.TracedRArray{Float64, 3}, dimension::Int64)
      @ Reactant ./<missing>:0
    [5] basic_sort

Probably needs a rebase and an import perhaps?

@wsmoses
Copy link
Member

wsmoses commented Dec 20, 2024

gpu CI breaks, presumably due to not having an override for ConcreteRArray

Can you either mark it as allowscalar, or ideally add a permutedims override for ConcreteRArray


sort: Error During Test at /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:698
--
  | Test threw exception
  | Expression: if i == 1
  | sort(x)
  | else
  | sort(x; dims = j)
  | end == #= /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:698 =# @jit(basic_sort(x, j))
  | Scalar indexing is disallowed.
  | Invocation of getindex(::ConcreteRArray, ::Vararg{Int, N}) resulted in scalar indexing of a GPU array.
  | This is typically caused by calling an iterating implementation of a method.
  | Such implementations *do not* execute on the GPU, but very slowly on the CPU,
  | and therefore should be avoided.
  |  
  | If you want to allow scalar iteration, use `allowscalar` or `@allowscalar`
  | to enable scalar iteration globally or for the operations in question.
  | Stacktrace:
  | [1] error(s::String)
  | @ Base ./error.jl:35
  | [2] errorscalar(op::String)
  | @ GPUArraysCore ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUArraysCore/GMsgk/src/GPUArraysCore.jl:155
  | [3] _assertscalar(op::String, behavior::GPUArraysCore.ScalarIndexing)
  | @ GPUArraysCore ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUArraysCore/GMsgk/src/GPUArraysCore.jl:128
  | [4] assertscalar(op::String)
  | @ GPUArraysCore ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUArraysCore/GMsgk/src/GPUArraysCore.jl:116
  | [5] getindex(::ConcreteRArray{Float64, 3}, ::Int64, ::Int64, ::Int64)
  | @ Reactant /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/src/ConcreteRArray.jl:241
  | [6] _getindex
  | @ ./abstractarray.jl:1340 [inlined]
  | [7] getindex
  | @ ./abstractarray.jl:1290 [inlined]
  | [8] _permutedims!(P::PermutedDimsArray{Float64, 3, (2, 1, 3), (2, 1, 3), ConcreteRArray{Float64, 3}}, src::ConcreteRArray{Float64, 3}, R1::CartesianIndices{0, Tuple{}}, R2::CartesianIndices{0, Tuple{}}, R3::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, ds::Int64, dp::Int64)
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:261
  | [9] _copy!(P::PermutedDimsArray{Float64, 3, (2, 1, 3), (2, 1, 3), ConcreteRArray{Float64, 3}}, src::ConcreteRArray{Float64, 3})
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:250
  | [10] permutedims!(dest::ConcreteRArray{Float64, 3}, src::ConcreteRArray{Float64, 3}, perm::Tuple{Int64, Int64, Int64})
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:226
  | [11] permutedims(A::ConcreteRArray{Float64, 3}, perm::Tuple{Int64, Int64, Int64})
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:145
  | [12] sort(A::ConcreteRArray{Float64, 3}; dims::Int64, alg::Base.Sort.MissingOptimization{Base.Sort.BoolOptimization{Base.Sort.Small{10, Base.Sort.InsertionSortAlg, Base.Sort.IEEEFloatOptimization{Base.Sort.IsUIntMappable{Base.Sort.Small{40, Base.Sort.InsertionSortAlg, Base.Sort.CheckSorted{Base.Sort.ComputeExtrema{Base.Sort.ConsiderCountingSort{Base.Sort.CountingSort, Base.Sort.ConsiderRadixSort{Base.Sort.RadixSort, Base.Sort.Small{80, Base.Sort.InsertionSortAlg, Base.Sort.ScratchQuickSort{Missing, Missing, Base.Sort.InsertionSortAlg}}}}}}}, Base.Sort.StableCheckSorted{Base.Sort.ScratchQuickSort{Missing, Missing, Base.Sort.InsertionSortAlg}}}}}}}, lt::Function, by::Function, rev::Nothing, order::Base.Order.ForwardOrdering, scratch::Nothing)
  | @ Base.Sort ./sort.jl:1796
  | [13] macro expansion
  | @ ~/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.10/julia-1.10-latest-linux-x86_64/share/julia/stdlib/v1.10/Test/src/Test.jl:669 [inlined]
  | [14] macro expansion
  | @ /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:698 [inlined]
  | [15] macro expansion
  | @ ~/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.10/julia-1.10-latest-linux-x86_64/share/julia/stdlib/v1.10/Test/src/Test.jl:1577 [inlined]
  | [16] top-level scope
  | @ /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:692
  | sort: Error During Test at /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:698
  | Test threw exception
  | Expression: if i == 1
  | sort(x)
  | else
  | sort(x; dims = j)
  | end == #= /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:698 =# @jit(basic_sort(x, j))
  | Scalar indexing is disallowed.
  | Invocation of getindex(::ConcreteRArray, ::Vararg{Int, N}) resulted in scalar indexing of a GPU array.
  | This is typically caused by calling an iterating implementation of a method.
  | Such implementations *do not* execute on the GPU, but very slowly on the CPU,
  | and therefore should be avoided.
  |  
  | If you want to allow scalar iteration, use `allowscalar` or `@allowscalar`
  | to enable scalar iteration globally or for the operations in question.
  | Stacktrace:
  | [1] error(s::String)
  | @ Base ./error.jl:35
  | [2] errorscalar(op::String)
  | @ GPUArraysCore ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUArraysCore/GMsgk/src/GPUArraysCore.jl:155
  | [3] _assertscalar(op::String, behavior::GPUArraysCore.ScalarIndexing)
  | @ GPUArraysCore ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUArraysCore/GMsgk/src/GPUArraysCore.jl:128
  | [4] assertscalar(op::String)
  | @ GPUArraysCore ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUArraysCore/GMsgk/src/GPUArraysCore.jl:116
  | [5] getindex(::ConcreteRArray{Float64, 3}, ::Int64, ::Int64, ::Int64)
  | @ Reactant /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/src/ConcreteRArray.jl:241
  | [6] _getindex
  | @ ./abstractarray.jl:1340 [inlined]
  | [7] getindex
  | @ ./abstractarray.jl:1290 [inlined]
  | [8] _permutedims!(P::PermutedDimsArray{Float64, 3, (2, 3, 1), (3, 1, 2), ConcreteRArray{Float64, 3}}, src::ConcreteRArray{Float64, 3}, R1::CartesianIndices{0, Tuple{}}, R2::CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, R3::CartesianIndices{0, Tuple{}}, ds::Int64, dp::Int64)
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:261
  | [9] _copy!(P::PermutedDimsArray{Float64, 3, (2, 3, 1), (3, 1, 2), ConcreteRArray{Float64, 3}}, src::ConcreteRArray{Float64, 3})
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:250
  | [10] permutedims!(dest::ConcreteRArray{Float64, 3}, src::ConcreteRArray{Float64, 3}, perm::Tuple{Int64, Int64, Int64})
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:226
  | [11] permutedims(A::ConcreteRArray{Float64, 3}, perm::Tuple{Int64, Int64, Int64})
  | @ Base.PermutedDimsArrays ./permuteddimsarray.jl:145
  | [12] sort(A::ConcreteRArray{Float64, 3}; dims::Int64, alg::Base.Sort.MissingOptimization{Base.Sort.BoolOptimization{Base.Sort.Small{10, Base.Sort.InsertionSortAlg, Base.Sort.IEEEFloatOptimization{Base.Sort.IsUIntMappable{Base.Sort.Small{40, Base.Sort.InsertionSortAlg, Base.Sort.CheckSorted{Base.Sort.ComputeExtrema{Base.Sort.ConsiderCountingSort{Base.Sort.CountingSort, Base.Sort.ConsiderRadixSort{Base.Sort.RadixSort, Base.Sort.Small{80, Base.Sort.InsertionSortAlg, Base.Sort.ScratchQuickSort{Missing, Missing, Base.Sort.InsertionSortAlg}}}}}}}, Base.Sort.StableCheckSorted{Base.Sort.ScratchQuickSort{Missing, Missing, Base.Sort.InsertionSortAlg}}}}}}}, lt::Function, by::Function, rev::Nothing, order::Base.Order.ForwardOrdering, scratch::Nothing)
  | @ Base.Sort ./sort.jl:1796
  | [13] macro expansion
  | @ ~/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.10/julia-1.10-latest-linux-x86_64/share/julia/stdlib/v1.10/Test/src/Test.jl:669 [inlined]
  | [14] macro expansion
  | @ /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:698 [inlined]
  | [15] macro expansion
  | @ ~/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.10/julia-1.10-latest-linux-x86_64/share/julia/stdlib/v1.10/Test/src/Test.jl:1577 [inlined]
  | [16] top-level scope
  | @ /var/lib/buildkite-agent/builds/gpuci-15/julialang/reactant-dot-jl/test/ops.jl:692

@wsmoses wsmoses merged commit eeaf86c into EnzymeAD:main Dec 28, 2024
33 of 38 checks passed
jumerckx added a commit to jumerckx/Reactant.jl that referenced this pull request Jan 1, 2025
commit 6556944
Author: Avik Pal <[email protected]>
Date:   Tue Dec 31 08:53:39 2024 -0500

    feat: support Base.stack (EnzymeAD#433)

    * refactor: use scatter for generating diagm

    * refactor: directly generate the region for simple_scatter_op

    * feat: generalize diagm

    * feat: support Base.stack

    * fix: incorrect rebase

    * test: stack tests

commit 9375f57
Author: Sergio Sánchez Ramírez <[email protected]>
Date:   Mon Dec 30 22:56:14 2024 +0100

    Modularize Bazel build (EnzymeAD#421)

    * organize platforms and toolchains

    * hardcode libcxxwrap_julia path

    * format code

    * remove outdated hardcoded symbolic links

    * add third party bazel wrapper to libcxxwrap_julia

    * readd platforms

    * some small fixes

    * first step on moving externals to modular organization

    * refactor libcxxwrap_julia on top of `cc_import`

    * use modular workspaces

    * add `libcxxwrap_julia` as dependency

    * hardcode julia dep

    * export `reactant_*` functions

    * downgrade libcxxwrap_julia to v0.13.3

    * fix major version when linking to libcxxwrap_julia

    * remove legacy export

    * move `API.cpp` to new `src/` folder to start modularizing code

    * export `register_julia_module` from libcxxwrap_julia

    * fix symbol visibility

    * clean code

    remove libcxxwrap and julia deps

    * format code

    * import hedron compile commands from Enzyme-JAX

    * move deps commits to `workspace.bzl`

commit 3244204
Author: Avik Pal <[email protected]>
Date:   Mon Dec 30 16:33:52 2024 -0500

    chore: bump jll (EnzymeAD#437)

commit 25abfe4
Author: Avik Pal <[email protected]>
Date:   Mon Dec 30 12:03:20 2024 -0500

    fix: try building with cudnn 9.4 (EnzymeAD#436)

commit 241fd14
Author: Avik Pal <[email protected]>
Date:   Mon Dec 30 04:54:50 2024 -0500

    feat: indexing using traced values (EnzymeAD#434)

    * feat: indexing using traced values

    * feat: implement repeat inner

    * feat: support scalar linear indexing + tests

    * fix: regression in cartesian index support

    * Update src/TracedRArray.jl

commit 7d2b898
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sun Dec 29 20:28:23 2024 -0500

    Regenerate MLIR Bindings (EnzymeAD#435)

    Co-authored-by: mofeing <[email protected]>

commit 8e4c095
Author: Avik Pal <[email protected]>
Date:   Sun Dec 29 13:48:27 2024 -0500

    feat: add support for the remaining wrapper types (EnzymeAD#369)

    * feat: add materialize_traced_array for all other wrappers

    * refactor: use scatter for generating diagm

    * refactor: directly generate the region for simple_scatter_op

    * feat: generalize diagm

    * feat: efficient non-contiguous setindex

    * fix: non-contiguous indexing is now supported

    * feat: implement set_mlir_data for the remaining types

    * refactor: use `Ops.gather_getindex` to implement diag

    * fix: noinline ops

    * fix: incorrect rebase

    * fix: dispatches

    * fix: diagm for repeated indices and initial tests

    * fix: higher dimensional indexing + tests

    * fix: matrix multiplication of wrapper types

    * fix: de-specialize 3 arg mul!

commit d4e7c76
Author: William Moses <[email protected]>
Date:   Sat Dec 28 23:05:51 2024 -0500

    CUDA kernels take 3 (EnzymeAD#427)

    * CUDA take 3

    * conditional run cuda

    * Update test/integration/cuda.jl

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * bump enzymexla

    * fix

    * fix gpu reg

    * Update BUILD

    * Update BUILD

    * Update Project.toml

    * Update ReactantCUDAExt.jl

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix reactant method blocker

    * Update ReactantCUDAExt.jl

    * only do compile

    * use names in cache

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * cleanup further gc issues

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * fix

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit b0a58bd
Author: Avik Pal <[email protected]>
Date:   Sat Dec 28 21:53:29 2024 -0500

    fix: make eltype of Traced/Concrete Arrays to be respective RNumbers (EnzymeAD#426)

    * feat: overlay eltype conversion

    * fix: overload the main methods

    * fix: make eltype of Traced/Concrete Arrays to be respective RNumbers

    * fix: handle more cases

    * fix: tracing of wrapped types

    * fix: arrayinterface overload

    * fix: python call

commit f079a9d
Author: mofeing <[email protected]>
Date:   Sun Dec 29 00:15:51 2024 +0000

    Format code

commit eeaf86c
Author: glounes <[email protected]>
Date:   Sat Dec 28 04:24:38 2024 +0100

    `stablehlo.sort` Ops (EnzymeAD#374)

    * `stablehlo.sort` Ops

    * review

    * use `return_dialect`

    * feedback

    * fix test GPU

commit 925544f
Author: William Moses <[email protected]>
Date:   Tue Dec 24 15:34:52 2024 -0500

    Cuv2 (EnzymeAD#423)

    * Kernel-supporting jll

    * fix rulescc

    * adapt to hedron dep

    * init target

    * fixup

    * additional fixups

    * fixup

    * fix

    * registry utils

    * callname

    * reg

    * fix

    * fix bld

    * cleanup

    * no pip

    * fix

    * force rules python to older version before bug

    * fixup jll

    * with proto

    * fix

    * fix

    * Update WORKSPACE

    * more deps for apple

    * bump

    * fix

    * workspace bump

    * workspace

    * Update Compiler.jl

    * Update ReactantCUDAExt.jl

    * Update ReactantCUDAExt.jl

    * Update ReactantCUDAExt.jl

    * Update ReactantCUDAExt.jl

    * Update ReactantCUDAExt.jl

    * Update Project.toml

    * Update ReactantCUDAExt.jl

    * Update Project.toml

    * Update Project.toml

    * fix

    * Update ReactantCUDAExt.jl

    * Update ReactantCUDAExt.jl

    * Update ReactantCUDAExt.jl

    * Update cuda.jl

    * Update cuda.jl

    * Update cuda.jl

    * Cuda kernel v2

    * Update Project.toml

    * Update API.cpp

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    ---------

    Co-authored-by: William Moses <[email protected]>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit 057e6b8
Author: Avik Pal <[email protected]>
Date:   Tue Dec 24 21:46:23 2024 +0530

    fix: handle traced array returns inside objects (EnzymeAD#417)

    * fix: handle traced array returns inside objects

    * test: add EnzymeAD#416 as a test

    * fix: propagate track_numbers correctly

    * fix: aliasing and add a test

    * test: use updated API for the tests

    * feat: cache new arrays

    * fix: traced_getfield

commit 0b6dafc
Author: Sergio Sánchez Ramírez <[email protected]>
Date:   Tue Dec 24 10:43:18 2024 +0100

    Bump Reactant_jll to v0.0.32

commit a02fd5b
Author: William Moses <[email protected]>
Date:   Mon Dec 23 21:58:40 2024 -0500

    Update WORKSPACE

commit 6e1710d
Author: William Moses <[email protected]>
Date:   Mon Dec 23 19:48:12 2024 -0500

    disable absint of absint (EnzymeAD#424)

    * disable absint of absint

    * no typeinf ext

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit 228732f
Author: William Moses <[email protected]>
Date:   Mon Dec 23 18:50:34 2024 -0500

    Fix error on global (EnzymeAD#422)

commit 695cc80
Author: William Moses <[email protected]>
Date:   Mon Dec 23 13:59:31 2024 -0500

    Update Project.toml

commit 38916f5
Author: Avik Pal <[email protected]>
Date:   Mon Dec 23 21:46:22 2024 +0530

    feat: add zero and fill! for ConcreteRArray (EnzymeAD#420)

    * feat: add zero and fill! for ConcreteRArray

    * test: add tests

commit 6571d54
Author: William S. Moses <[email protected]>
Date:   Sun Dec 22 23:49:03 2024 -0500

    bump enzymexla commit

commit 5b89b56
Author: William Moses <[email protected]>
Date:   Sun Dec 22 21:23:33 2024 -0500

    Fix ReactantPythonCallExt.jl (EnzymeAD#419)

    * Fix ReactantPythonCallExt.jl

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit 4cc000c
Author: William Moses <[email protected]>
Date:   Sun Dec 22 19:55:58 2024 -0500

    Improve reactant error messages (EnzymeAD#418)

    * Improve reactant error messages

    * More exported symbols

    * Update XLA.jl

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * Apply suggestions from code review

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

commit 2759c3c
Author: jumerckx <[email protected]>
Date:   Mon Dec 23 01:35:17 2024 +0100

    Inference cache (EnzymeAD#405)

    * add inference cache

    * start from `typeinf_ircode`

    * julia 1.10

    * Apply formatting suggestions

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

    * remove debug logging

    * vendor in type inference code for v1.10

    To avoid having to build a MethodInstance twice (performance hazard)

    ---------

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Jules Merckx <[email protected]>

commit f9c43ad
Author: William S. Moses <[email protected]>
Date:   Sun Dec 22 19:33:25 2024 -0500

    Bump enzymexla
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants