Skip to content

Understanding Error: Enzyme aligned size and Julia size disagree #999

@MilesCranmer

Description

@MilesCranmer

I've seen this error a few times while writing an Enzyme backend for SymbolicRegression.jl – MilesCranmer/SymbolicRegression.jl#254 – and I was just wondering what sort of issue it could indicate? I can't reproduce it reliably right now, unfortunately. This is on Julia 1.10-beta1, so perhaps it could be some unimplemented functionality for the latest Julia version.

┌ Error: Enzyme aligned size and Julia size disagree
│   AlignedSize = 2192esizeof(TT) = 2136
│   fieldtypes(TT) = (Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, @NamedTuple{1, 2, 3, 4, 5::Bool, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::UInt64, 9::UInt64}, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, @NamedTuple{1, 2, 3, 4, 5, 6::NTuple{4, Float32}, 7::NTuple{4, Float32}, 8::NTuple{4, Float32}, 9::NTuple{4, Float32}, 10, 11::Core.LLVMPtr{UInt8, 0}, 12, 13, 14::UInt64, 15::UInt64, 16::UInt64, 17::UInt64, 18::UInt64, 19::Bool, 20::Float32, 21::UInt64, 22::Core.LLVMPtr{UInt8, 0}}, @NamedTuple{1, 2, 3, 4, 5, 6::NTuple{4, Float32}, 7::NTuple{4, Float32}, 8::NTuple{4, Float32}, 9::NTuple{4, Float32}, 10, 11::Core.LLVMPtr{UInt8, 0}, 12, 13, 14::UInt64, 15::UInt64, 16::UInt64, 17::UInt64, 18::UInt64, 19::Bool, 20::Float32, 21::UInt64, 22::Core.LLVMPtr{UInt8, 0}}, @NamedTuple{1, 2, 3, 4, 5, 6::NTuple{4, Float32}, 7::NTuple{4, Float32}, 8::NTuple{4, Float32}, 9::NTuple{4, Float32}, 10, 11::Core.LLVMPtr{UInt8, 0}, 12, 13, 14::UInt64, 15::UInt64, 16::UInt64, 17::UInt64, 18::UInt64, 19::Bool, 20::Float32, 21::UInt64, 22::Core.LLVMPtr{UInt8, 0}}, @NamedTuple{1, 2, 3, 4, 5, 6::NTuple{4, Float32}, 7::NTuple{4, Float32}, 8::NTuple{4, Float32}, 9::NTuple{4, Float32}, 10, 11::Core.LLVMPtr{UInt8, 0}, 12, 13, 14::UInt64, 15::UInt64, 16::UInt64, 17::UInt64, 18::UInt64, 19::Bool, 20::Float32, 21::UInt64, 22::Core.LLVMPtr{UInt8, 0}}, @NamedTuple{1, 2::UInt64}, Tuple{Core.LLVMPtr{UInt8, 0}, NTuple{4, Float32}, NTuple{4, Float32}, NTuple{4, Float32}, NTuple{4, Float32}, UInt64, Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Vararg{NTuple{4, Float32}, 6}}, Tuple{Core.LLVMPtr{UInt8, 0}, NTuple{4, Float32}, NTuple{4, Float32}, NTuple{4, Float32}, NTuple{4, Float32}, UInt64, Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Core.LLVMPtr{NTuple{4, Float32}, 0}, Vararg{NTuple{4, Float32}, 6}}, Any, Any, Any, Any, Any, Any, Any, @NamedTuple{1, 2::UInt64}, Any, Any, @NamedTuple{1, 2::UInt64}, Any, Any, @NamedTuple{1, 2::UInt64}, Any, @NamedTuple{1, 2::UInt64}, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, @NamedTuple{1, 2, 3, 4, 5, 6, 7::UInt8, 8, 9, 10, 11::Bool}, @NamedTuple{1, 2, 3, 4, 5, 6, 7::UInt8, 8, 9, 10, 11::Bool}, UInt8, Any, UInt8, Any, Any, Any, Bool, Bool, UInt64, UInt64, UInt64, UInt8, UInt8, Any, Bool, UInt8, Any, Any, Bool, Bool, Bool, Any, Bool, UInt8, Bool, Bool, UInt8, Bool, Bool, Bool, Bool)
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/YO8Uj/src/utils.jl:56
Assertion failed: (isa<To>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file /opt/aarch64-apple-darwin20/aarch64-apple-darwin20/sys-root/usr/local/include/llvm/Support/Casting.h, line 578.

I will update this if I can reproduce it reliably.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions