Skip to content

Fix isbits type support for GPU device transfer#1587

Merged
avik-pal merged 8 commits intomainfrom
copilot/fix-gpu-support-isbits-types
Dec 8, 2025
Merged

Fix isbits type support for GPU device transfer#1587
avik-pal merged 8 commits intomainfrom
copilot/fix-gpu-support-isbits-types

Conversation

Copy link
Contributor

Copilot AI commented Dec 8, 2025

Plan to fix isbits types movement to GPU

  • Understand the current array_adapt implementation in internal.jl
  • Add fallback methods for isbits types in array_adapt
  • Create tests for isbits types movement
  • Validate changes work with basic CPU testing
  • Run code formatter
  • Run code review and address feedback
  • Run security scan
  • Bump version number following semantic versioning
  • Final validation of all changes
  • Address reviewer feedback: Remove redundant Number/AbstractChar dispatches
  • Fix method ambiguity and maintain backward compatibility
  • Improve code comments for clarity
  • Use backslash continuation instead of string concatenation
Original prompt

This section details on the original issue you should resolve

<issue_title>[MLDataDevices] broken support for isbits types movement</issue_title>
<issue_description>Moving arrays with isbits elements to gpu used to work, but now it doesn't:

julia> using CUDA, cuDNN, MLDataDevices

julia> struct SimpleBits
         field::Int32
       end

julia> dev = gpu_device()
(::CUDADevice{Nothing, Missing}) (generic function with 1 method)

julia> dev([SimpleBits(1)])
The function `array_adapt` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  array_adapt(::F, ::Type{aType}, ::Type{Missing}, ::AbstractArray{<:AbstractFloat}) where {F, aType}
   @ MLDataDevices ~/.julia/packages/MLDataDevices/je4Jo/src/internal.jl:289
  array_adapt(::F, ::Type{aType}, ::Type{Missing}, ::AbstractArray{<:Complex{<:AbstractFloat}}) where {F, aType}
   @ MLDataDevices ~/.julia/packages/MLDataDevices/je4Jo/src/internal.jl:294
  array_adapt(::F, ::Type{aType}, ::Type{Missing}, ::AbstractArray{<:Number}) where {F, aType}
   @ MLDataDevices ~/.julia/packages/MLDataDevices/je4Jo/src/internal.jl:299
  ...

Stacktrace:
  [1] cuda_array_adapt(::Type{Missing}, x::Vector{SimpleBits})
    @ MLDataDevicesCUDAExt ~/.julia/packages/MLDataDevices/je4Jo/ext/MLDataDevicesCUDAExt.jl:61
  [2] adapt_storage(::CUDADevice{Nothing, Missing}, x::Vector{SimpleBits})
    @ MLDataDevicesCUDAExt ~/.julia/packages/MLDataDevices/je4Jo/ext/MLDataDevicesCUDAExt.jl:65
  [3] adapt_structure(to::Function, x::Vector{SimpleBits})
    @ Adapt ~/.julia/packages/Adapt/2UZ81/src/Adapt.jl:57
  [4] adapt(to::Function, x::Vector{SimpleBits})
    @ Adapt ~/.julia/packages/Adapt/2UZ81/src/Adapt.jl:40
  [5] (::Base.Fix1{typeof(Adapt.adapt), CUDADevice{Nothing, Missing}})(arg::Vector{SimpleBits}; kws::@Kwargs{})
    @ Base ./operators.jl:1193
  [6] ExcludeWalk
    @ ~/.julia/packages/Functors/LbNAu/src/walks.jl:126 [inlined]
  [7] (::Functors.CachedWalk{Functors.ExcludeWalk{…}, Functors.NoKeyword, Functors.WalkCache{…}})(::Function, ::Vector{SimpleBits})
    @ Functors ~/.julia/packages/Functors/LbNAu/src/walks.jl:177
  [8] execute
    @ ~/.julia/packages/Functors/LbNAu/src/walks.jl:55 [inlined]
  [9] #fmap#32
    @ ~/.julia/packages/Functors/LbNAu/src/maps.jl:11 [inlined]
 [10] fmap
    @ ~/.julia/packages/Functors/LbNAu/src/maps.jl:3 [inlined]
 [11] (::CUDADevice{Nothing, Missing})(x::Vector{SimpleBits})
    @ MLDataDevices ~/.julia/packages/MLDataDevices/je4Jo/src/public.jl:503
 [12] top-level scope
    @ REPL[7]:1
Some type information was truncated. Use `show(err)` to see complete types.

Related to #1580 </issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 3 commits December 8, 2025 00:27
Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix broken support for isbits types movement to GPU Fix isbits type support for GPU device transfer Dec 8, 2025
Copilot AI requested a review from avik-pal December 8, 2025 00:32
@mergify
Copy link

mergify bot commented Dec 8, 2025

🧪 CI Insights

Here's what we observed from your CI run for 6cd1e8e.

🟢 All jobs passed!

But CI Insights is watching 👀

Comment on lines 353 to 362
function array_adapt(
f::F, ::Type{aType}, ::Type{Missing}, x::AbstractArray{T}
) where {F,aType,T}
isbitstype(T) || error(
"Cannot move array with element type `$(T)` to device. Element type must be an " *
"`isbits` type (e.g., Number, Char, or custom immutable struct with only " *
"`isbits` fields).",
)
return f(x)
end
Copy link
Member

Choose a reason for hiding this comment

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

@copilot Number/AbstractChar are isbitstype, we can remove the old dispatches

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed the redundant dispatches for Number and AbstractChar types. They're now handled by the fallback methods since they're isbits types. Kept only the specialized methods for AbstractFloat and Complex{<:AbstractFloat} for type conversion. (commit 0ae7ae4)

Copilot AI and others added 3 commits December 8, 2025 01:04
Number and AbstractChar are isbits types and are now handled by the
fallback methods. Only AbstractFloat and Complex{<:AbstractFloat} keep
specialized methods for type conversion when a specific type parameter
is provided.

Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Added explicit methods for Missing and Nothing type parameters with
AbstractFloat and Complex arrays to avoid method ambiguity with the
general isbits fallback. This maintains full backward compatibility
including type conversion for any type parameter with float arrays.

Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Clarified that specialized methods for AbstractFloat/Complex are for
avoiding ambiguity and enabling type conversion, and improved fallback
comment to use concrete type examples (Int32) instead of abstract types
(Number) to avoid confusion.

Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 8, 2025

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/FluxML/Functors.jl/tarball/60a0339f28a233601cb74468032b5c302d5067de
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/DataStructures.jl/tarball/4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaCollections/OrderedCollections.jl/tarball/05868e21324cede2207c6f0f466b4bfef6d5e7ee
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaGPU/Adapt.jl/tarball/7e35fca2bdfba44d797c53dfe63a51fabf39bfc0
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/Compat.jl/tarball/9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/PrecompileTools.jl/tarball/07a921781cab75691315adc645096ed5e370cb77
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaLang/Tokenize.jl/tarball/468b4685af4abe0e9fd4d7bf495a6554a6276e75
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaObjects/ConstructionBase.jl/tarball/b4b092499347b18a015186eae3042f72267106cb
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Preferences.jl/tarball/0f27480397253da18fe2c12a4ba4eb9eb208bf3d
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Requires.jl/tarball/62389eeff14780bfe55195b7204c0d8738436d64
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/KristofferC/Crayons.jl/tarball/249fe38abf76d48563e2f4556bebd215aa317e15
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/MichaelHatherly/CommonMark.jl/tarball/5fdf00d1979fd4883b44b754fc3423175c9504b4
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/SciML/SciMLPublic.jl/tarball/ed647f161e8b3f2973f24979ec074e8d084f1bee
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/domluna/JuliaFormatter.jl/tarball/59cf7ad64f1b0708a4fa4369879d33bad3239b56
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/julia-vscode/CSTParser.jl/tarball/0157e592151e39fa570645e2b2debcdfb8a0f112
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/vtjnash/Glob.jl/tarball/97285bbd5230dd766e9ef6749b80fc617126d496
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • pkg.julialang.org
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (dns block)
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from avik-pal December 8, 2025 01:12
Comment on lines 318 to 320
"Cannot move array with element type `$(T)` to device. Element type must be an " *
"`isbits` type (e.g., Number, Char, or custom immutable struct with only " *
"`isbits` fields).",
Copy link
Member

Choose a reason for hiding this comment

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

@copilot don't use * to concat strings. instead use \ in the string itself

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Replaced string concatenation with backslash line continuation in all three error messages. (commit 6cd1e8e)

@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

Benchmark Results (Julia v1.11)

Time benchmarks
main 6cd1e8e... main / 6cd1e8e...
basics/MHA 4.03 ± 0.35 μs 4.19 ± 0.37 μs 0.962 ± 0.12
basics/MHA (first run) 4.4 ± 0.53 μs 4.53 ± 0.55 μs 0.971 ± 0.17
basics/MHA reactant 0.0676 ± 0.0067 ms 0.0631 ± 0.0066 ms 1.07 ± 0.15
basics/MHA reactant (comp + run) 0.148 ± 0.0042 s 0.146 ± 0.0038 s 1.01 ± 0.039
basics/conv 13.4 ± 18 μs 13.1 ± 17 μs 1.02 ± 1.9
basics/conv (first run) 10.4 ± 0.75 μs 10.6 ± 3.5 μs 0.985 ± 0.33
basics/conv reactant 0.054 ± 0.0034 ms 0.0521 ± 0.0026 ms 1.04 ± 0.082
basics/conv reactant (comp + run) 0.109 ± 0.0056 s 0.105 ± 0.0034 s 1.04 ± 0.063
basics/dense 0.181 ± 0.01 μs 0.18 ± 0.001 μs 1.01 ± 0.056
basics/dense (first run) 0.2 ± 0.01 μs 0.2 ± 0.001 μs 1 ± 0.05
basics/dense reactant 0.0507 ± 0.0017 ms 0.049 ± 0.0024 ms 1.03 ± 0.062
basics/dense reactant (comp + run) 0.0886 ± 0.0039 s 0.0889 ± 0.0039 s 0.998 ± 0.062
time_to_load 0.934 ± 0.0044 s 0.917 ± 0.018 s 1.02 ± 0.021
Memory benchmarks
main 6cd1e8e... main / 6cd1e8e...
basics/MHA 0.087 k allocs: 6.05 kB 0.087 k allocs: 6.05 kB 1
basics/MHA (first run) 0.087 k allocs: 6.05 kB 0.087 k allocs: 6.05 kB 1
basics/MHA reactant 19 allocs: 0.578 kB 19 allocs: 0.578 kB 1
basics/MHA reactant (comp + run) 18 k allocs: 1.37 MB 18 k allocs: 1.37 MB 1
basics/conv 0.038 k allocs: 5.12 kB 0.038 k allocs: 5.12 kB 1
basics/conv (first run) 0.038 k allocs: 5.12 kB 0.038 k allocs: 5.12 kB 1
basics/conv reactant 15 allocs: 0.438 kB 15 allocs: 0.438 kB 1
basics/conv reactant (comp + run) 6.14 k allocs: 0.813 MB 6.15 k allocs: 0.813 MB 1
basics/dense 2 allocs: 0.109 kB 2 allocs: 0.109 kB 1
basics/dense (first run) 2 allocs: 0.109 kB 2 allocs: 0.109 kB 1
basics/dense reactant 15 allocs: 0.422 kB 15 allocs: 0.422 kB 1
basics/dense reactant (comp + run) 5.91 k allocs: 0.796 MB 5.9 k allocs: 0.796 MB 1
time_to_load 0.159 k allocs: 11.2 kB 0.159 k allocs: 11.2 kB 1

Replace string concatenation operator (*) with backslash line
continuation (\) in error messages for better Julia style.

Co-authored-by: avik-pal <30564094+avik-pal@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 8, 2025

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/FluxML/Functors.jl/tarball/60a0339f28a233601cb74468032b5c302d5067de
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/DataStructures.jl/tarball/4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaCollections/OrderedCollections.jl/tarball/05868e21324cede2207c6f0f466b4bfef6d5e7ee
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaGPU/Adapt.jl/tarball/7e35fca2bdfba44d797c53dfe63a51fabf39bfc0
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/Compat.jl/tarball/9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/PrecompileTools.jl/tarball/07a921781cab75691315adc645096ed5e370cb77
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaLang/Tokenize.jl/tarball/468b4685af4abe0e9fd4d7bf495a6554a6276e75
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/JuliaObjects/ConstructionBase.jl/tarball/b4b092499347b18a015186eae3042f72267106cb
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Preferences.jl/tarball/0f27480397253da18fe2c12a4ba4eb9eb208bf3d
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Requires.jl/tarball/62389eeff14780bfe55195b7204c0d8738436d64
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/KristofferC/Crayons.jl/tarball/249fe38abf76d48563e2f4556bebd215aa317e15
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/MichaelHatherly/CommonMark.jl/tarball/5fdf00d1979fd4883b44b754fc3423175c9504b4
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/SciML/SciMLPublic.jl/tarball/ed647f161e8b3f2973f24979ec074e8d084f1bee
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (http block)
  • https://api.github.com/repos/domluna/JuliaFormatter.jl/tarball/59cf7ad64f1b0708a4fa4369879d33bad3239b56
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/julia-vscode/CSTParser.jl/tarball/0157e592151e39fa570645e2b2debcdfb8a0f112
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • https://api.github.com/repos/vtjnash/Glob.jl/tarball/97285bbd5230dd766e9ef6749b80fc617126d496
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (http block)
  • pkg.julialang.org
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=. -e using Pkg; Pkg.instantiate() (dns block)
    • Triggering command: /usr/bin/julia julia --startup-file=no --project=@temp -e using Pkg; Pkg.add(Pkg.PackageSpec(name=&#34;JuliaFormatter&#34;, version=&#34;1&#34;)); using JuliaFormatter; format(&#34;.&#34;) (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from avik-pal December 8, 2025 01:29
@avik-pal avik-pal marked this pull request as ready for review December 8, 2025 03:58
@avik-pal avik-pal merged commit 4a170a1 into main Dec 8, 2025
69 of 78 checks passed
@avik-pal avik-pal deleted the copilot/fix-gpu-support-isbits-types branch December 8, 2025 03:58
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.

[MLDataDevices] broken support for isbits types movement

2 participants