Skip to content

Copy of master_CG branch to test changes#69

Open
simsurace wants to merge 156 commits intomasterfrom
master_CG_test
Open

Copy of master_CG branch to test changes#69
simsurace wants to merge 156 commits intomasterfrom
master_CG_test

Conversation

@simsurace
Copy link
Copy Markdown
Member

No description provided.

@simsurace
Copy link
Copy Markdown
Member Author

The new penalty field of Myopic and MyopicFast breaks existing code. Need to provide fallbacks.
Also the docstrings are not up to date.

@simsurace
Copy link
Copy Markdown
Member Author

simsurace commented Apr 27, 2022

The @timed macro in propagate(sim, dt) violates the expected return signature.
Need to add a fix for this.
In the future, this should be addressed with loggers.
EDIT: this will be tracked in #70

@simsurace
Copy link
Copy Markdown
Member Author

There is one remaining failing test, which is expected, because _entropy now computes the differential entropy.
I would propose to restore the previous implementation and call the new one _differentialentropy.

@simsurace
Copy link
Copy Markdown
Member Author

TODO: I will also test this branch on my GPU.

simsurace and others added 4 commits April 28, 2022 00:03
When doing a = @timed xxx, a is going to be a structure containing (value = 2, time = 1.0e-7, bytes = 0, gctime = 0.0, gcstats = Base.GC_Diff(0, 0, 0, 0, 0, 0, 0, 0, 0)). Here, we are only interested in the object time.
@simsurace
Copy link
Copy Markdown
Member Author

simsurace commented May 2, 2022

Tested on my GPU machine:

Test Summary:                 |   Pass  Error   Total
BinomialSynapses.jl           | 153095      8  153103
  models.jl                   |                No tests
  propagate.jl                |    456            456
  timestep.jl                 |     10             10
  emission.jl                 |      3              3
  likelihood.jl               |   2082           2082
  jitter.jl                   |   2000           2000
  resample.jl                 | 147576         147576
  filter.jl                   |                No tests
  statistics.jl               |     10             10
  simulate.jl                 |     96             96
  record.jl                   |      7              7
  myopic.jl                   |    845      3     848
    _repeat                   |    840            840
    _entropy: Myopic          |             2       2
      CPU                     |             1       1
      GPU                     |             1       1
    _entropy: MyopicFast      |      1      1       2
      CPU                     |      1              1
      GPU                     |             1       1
    _tauentropy: Myopic       |      2              2
    _tauentropy: MyopicFast   |      2              2
  integration tests           |     10      4      14
    Device = cpu              |                No tests
    Device = gpu              |     10      4      14
      benchmark of filter     |                No tests
      benchmark of OED        |             2       2
        OEDPolicy: Uniform    |                No tests
        OEDPolicy: Myopic     |             1       1
        OEDPolicy: MyopicFast |             1       1
      convergence of filter   |      5              5
      convergence of OED      |      5      2       7
        OEDPolicy: Uniform    |      5              5
        OEDPolicy: Myopic     |             1       1
        OEDPolicy: MyopicFast |             1       1
  Saving Recording using JLD  |             1       1
ERROR: LoadError: Some tests did not pass: 153095 passed, 0 failed, 8 errored, 0 broken.
in expression starting at /home/simone/.julia/dev/BinomialSynapses/test/runtests.jl:29
ERROR: Package BinomialSynapses errored during testing
Full test output

(BinomialSynapses) pkg> test
┌ Warning: The active manifest file is an older format with no julia version entry. Dependencies may have been resolved with a different julia version.
└ @ ~/.julia/dev/BinomialSynapses/Manifest.toml:0
     Testing BinomialSynapses
      Status `/tmp/jl_FvaZ0v/Project.toml`
  [6e4b80f9] BenchmarkTools v1.3.1
  [8a0f34ba] BinomialSynapses v0.4.2 `~/.julia/dev/BinomialSynapses`
  [052768ef] CUDA v3.9.0
  [31c24e10] Distributions v0.25.56
  [4138dd39] JLD v0.13.1
  [2913bbd2] StatsBase v0.33.16
  [8dfed614] Test `@stdlib/Test`
      Status `/tmp/jl_FvaZ0v/Manifest.toml`
  [621f4979] AbstractFFTs v1.1.0
  [79e6a3ab] Adapt v3.3.3
  [ab4f0b2a] BFloat16s v0.2.0
  [6e4b80f9] BenchmarkTools v1.3.1
  [c5bbfde1] BinomialGPU v0.4.4
  [8a0f34ba] BinomialSynapses v0.4.2 `~/.julia/dev/BinomialSynapses`
  [a74b3585] Blosc v0.7.3
  [fa961155] CEnum v0.4.2
  [052768ef] CUDA v3.9.0
  [d360d2e6] ChainRulesCore v1.14.0
  [9e997f8a] ChangesOfVariables v0.1.2
  [35d6a980] ColorSchemes v3.17.1
  [3da002f7] ColorTypes v0.11.0
  [5ae59095] Colors v0.12.8
  [34da2185] Compat v3.43.0
  [d38c429a] Contour v0.5.7
  [587fd27a] CovarianceEstimation v0.2.7
  [9a962f9c] DataAPI v1.10.0
  [864edb3b] DataStructures v0.18.11
  [e2d170a0] DataValueInterfaces v1.0.0
  [b429d917] DensityInterface v0.4.0
  [31c24e10] Distributions v0.25.56
  [ffbed154] DocStringExtensions v0.8.6
  [e2ba6199] ExprTools v0.1.8
  [c87230d0] FFMPEG v0.4.1
  [5789e2e9] FileIO v1.13.0
  [1a297f60] FillArrays v0.13.2
  [53c48c17] FixedPointNumbers v0.8.4
  [59287772] Formatting v0.4.2
  [0c68f7d7] GPUArrays v8.3.2
  [61eb1bfa] GPUCompiler v0.14.1
  [28b8d3ca] GR v0.64.2
  [5c1252a2] GeometryBasics v0.4.2
  [42e2da0e] Grisu v1.0.2
  [c8ec2601] H5Zblosc v0.1.0
  [f67ccb44] HDF5 v0.16.7
  [cd3eb016] HTTP v0.9.17
  [83e8ac13] IniFile v0.5.1
  [3587e190] InverseFunctions v0.1.3
  [92d709cd] IrrationalConstants v0.1.1
  [c8e1da08] IterTools v1.4.0
  [82899510] IteratorInterfaceExtensions v1.0.0
  [4138dd39] JLD v0.13.1
  [692b3bcd] JLLWrappers v1.4.1
  [682c06a0] JSON v0.21.3
  [929cbde3] LLVM v4.9.1
  [b964fa9f] LaTeXStrings v1.3.0
  [23fbe1c1] Latexify v0.15.15
  [2ab3a3ac] LogExpFunctions v0.3.14
  [1914dd2f] MacroTools v0.5.9
  [739be429] MbedTLS v1.0.3
  [442fdcdd] Measures v0.3.1
  [e1d29d7a] Missings v1.0.2
  [77ba4419] NaNMath v1.0.0
  [bac558e1] OrderedCollections v1.4.1
  [90014a1f] PDMats v0.11.8
  [69de0a69] Parsers v2.3.1
  [ccf2f8ad] PlotThemes v3.0.0
  [995b91a9] PlotUtils v1.2.0
  [91a5bcdd] Plots v1.28.1
  [21216c6a] Preferences v1.3.0
  [1fd47b50] QuadGK v2.4.2
  [74087812] Random123 v1.5.0
  [e6cf234a] RandomNumbers v1.5.3
  [3cdcf5f2] RecipesBase v1.2.1
  [01d81517] RecipesPipeline v0.5.2
  [189a3867] Reexport v1.2.2
  [05181044] RelocatableFolders v0.1.3
  [ae029012] Requires v1.3.0
  [79098fc4] Rmath v0.7.0
  [6c6a2e73] Scratch v1.1.0
  [992d4aef] Showoff v1.0.3
  [a2af1166] SortingAlgorithms v1.0.1
  [276daf66] SpecialFunctions v2.1.4
  [90137ffa] StaticArrays v1.4.4
  [82ae8749] StatsAPI v1.3.0
  [2913bbd2] StatsBase v0.33.16
  [4c63d2b9] StatsFuns v0.9.18
  [09ab397b] StructArrays v0.6.6
  [3783bdb8] TableTraits v1.0.1
  [bd369af6] Tables v1.7.0
  [a759f4b9] TimerOutputs v0.5.17
  [5c2747f8] URIs v1.3.0
  [1cfade01] UnicodeFun v0.4.1
  [41fe7b60] Unzip v0.1.2
  [0b7ba130] Blosc_jll v1.21.1+0
  [6e34b625] Bzip2_jll v1.0.8+0
  [83423d85] Cairo_jll v1.16.1+1
  [5ae413db] EarCut_jll v2.2.3+0
  [2e619515] Expat_jll v2.4.8+0
  [b22a6f82] FFMPEG_jll v4.4.0+0
  [a3f928ae] Fontconfig_jll v2.13.93+0
  [d7e528f0] FreeType2_jll v2.10.4+0
  [559328eb] FriBidi_jll v1.0.10+0
  [0656b61e] GLFW_jll v3.3.6+0
  [d2c73de3] GR_jll v0.64.2+0
  [78b55507] Gettext_jll v0.21.0+0
  [7746bdde] Glib_jll v2.68.3+2
  [3b182d85] Graphite2_jll v1.3.14+0
  [0234f1f7] HDF5_jll v1.12.1+0
  [2e76f6c2] HarfBuzz_jll v2.8.1+1
  [aacddb02] JpegTurbo_jll v2.1.2+0
  [c1c5ebd0] LAME_jll v3.100.1+0
  [88015f11] LERC_jll v3.0.0+1
  [dad2f222] LLVMExtra_jll v0.0.14+2
  [dd4b983a] LZO_jll v2.10.1+0
  [e9f186c6] Libffi_jll v3.2.2+1
  [d4300ac3] Libgcrypt_jll v1.8.7+0
  [7e76a0d4] Libglvnd_jll v1.3.0+3
  [7add5ba3] Libgpg_error_jll v1.42.0+0
  [94ce4f54] Libiconv_jll v1.16.1+1
  [4b2f31a3] Libmount_jll v2.35.0+0
  [89763e89] Libtiff_jll v4.3.0+1
  [38a345b3] Libuuid_jll v2.36.0+0
  [5ced341a] Lz4_jll v1.9.3+0
  [e7412a2a] Ogg_jll v1.3.5+1
  [458c3c95] OpenSSL_jll v1.1.14+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [91d4177d] Opus_jll v1.3.2+0
  [2f80f16e] PCRE_jll v8.44.0+0
  [30392449] Pixman_jll v0.40.1+0
  [ea2cea3b] Qt5Base_jll v5.15.3+1
  [f50d1b31] Rmath_jll v0.3.0+0
  [a2964d1f] Wayland_jll v1.19.0+0
  [2381bf8a] Wayland_protocols_jll v1.25.0+0
  [02c8fc9c] XML2_jll v2.9.12+0
  [aed1982a] XSLT_jll v1.1.34+0
  [4f6342f7] Xorg_libX11_jll v1.6.9+4
  [0c0b7dd1] Xorg_libXau_jll v1.0.9+4
  [935fb764] Xorg_libXcursor_jll v1.2.0+4
  [a3789734] Xorg_libXdmcp_jll v1.1.3+4
  [1082639a] Xorg_libXext_jll v1.3.4+4
  [d091e8ba] Xorg_libXfixes_jll v5.0.3+4
  [a51aa0fd] Xorg_libXi_jll v1.7.10+4
  [d1454406] Xorg_libXinerama_jll v1.1.4+4
  [ec84b674] Xorg_libXrandr_jll v1.5.2+4
  [ea2f1a96] Xorg_libXrender_jll v0.9.10+4
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.0+3
  [c7cfdc94] Xorg_libxcb_jll v1.13.0+3
  [cc61e674] Xorg_libxkbfile_jll v1.1.0+4
  [12413925] Xorg_xcb_util_image_jll v0.4.0+1
  [2def613f] Xorg_xcb_util_jll v0.4.0+1
  [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1
  [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1
  [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1
  [35661453] Xorg_xkbcomp_jll v1.4.2+4
  [33bec58e] Xorg_xkeyboard_config_jll v2.27.0+4
  [c5fb5394] Xorg_xtrans_jll v1.4.0+3
  [3161d3a3] Zstd_jll v1.5.2+0
  [0ac62f75] libass_jll v0.15.1+0
  [f638f0a6] libfdk_aac_jll v2.0.2+0
  [b53b4c65] libpng_jll v1.6.38+0
  [f27f6e37] libvorbis_jll v1.3.7+1
  [1270edf5] x264_jll v2021.5.5+0
  [dfaa095f] x265_jll v3.5.0+0
  [d8fb68d0] xkbcommon_jll v0.9.1+5
  [0dad84c5] ArgTools `@stdlib/ArgTools`
  [56f22d72] Artifacts `@stdlib/Artifacts`
  [2a0f44e3] Base64 `@stdlib/Base64`
  [ade2ca70] Dates `@stdlib/Dates`
  [8bb1440f] DelimitedFiles `@stdlib/DelimitedFiles`
  [8ba89e20] Distributed `@stdlib/Distributed`
  [f43a241f] Downloads `@stdlib/Downloads`
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [4af54fe1] LazyArtifacts `@stdlib/LazyArtifacts`
  [b27032c2] LibCURL `@stdlib/LibCURL`
  [76f85450] LibGit2 `@stdlib/LibGit2`
  [8f399da3] Libdl `@stdlib/Libdl`
  [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
  [56ddb016] Logging `@stdlib/Logging`
  [d6f4376e] Markdown `@stdlib/Markdown`
  [a63ad114] Mmap `@stdlib/Mmap`
  [ca575930] NetworkOptions `@stdlib/NetworkOptions`
  [44cfe95a] Pkg `@stdlib/Pkg`
  [de0858da] Printf `@stdlib/Printf`
  [9abbd945] Profile `@stdlib/Profile`
  [3fa0cd96] REPL `@stdlib/REPL`
  [9a3f8284] Random `@stdlib/Random`
  [ea8e919c] SHA `@stdlib/SHA`
  [9e88b42a] Serialization `@stdlib/Serialization`
  [1a1011a3] SharedArrays `@stdlib/SharedArrays`
  [6462fe0b] Sockets `@stdlib/Sockets`
  [2f01184e] SparseArrays `@stdlib/SparseArrays`
  [10745b16] Statistics `@stdlib/Statistics`
  [4607b0f0] SuiteSparse `@stdlib/SuiteSparse`
  [fa267f1f] TOML `@stdlib/TOML`
  [a4e569a6] Tar `@stdlib/Tar`
  [8dfed614] Test `@stdlib/Test`
  [cf7118a7] UUIDs `@stdlib/UUIDs`
  [4ec0a83e] Unicode `@stdlib/Unicode`
  [e66e0078] CompilerSupportLibraries_jll `@stdlib/CompilerSupportLibraries_jll`
  [deac9b47] LibCURL_jll `@stdlib/LibCURL_jll`
  [29816b5a] LibSSH2_jll `@stdlib/LibSSH2_jll`
  [c8ffd9c3] MbedTLS_jll `@stdlib/MbedTLS_jll`
  [14a3606d] MozillaCACerts_jll `@stdlib/MozillaCACerts_jll`
  [4536629a] OpenBLAS_jll `@stdlib/OpenBLAS_jll`
  [05823500] OpenLibm_jll `@stdlib/OpenLibm_jll`
  [83775a58] Zlib_jll `@stdlib/Zlib_jll`
  [8e850b90] libblastrampoline_jll `@stdlib/libblastrampoline_jll`
  [8e850ede] nghttp2_jll `@stdlib/nghttp2_jll`
  [3f19e933] p7zip_jll `@stdlib/p7zip_jll`
     Testing Running tests...
[ Info: Functional CUDA device detected.
CUDA toolkit 11.6, artifact installation
NVIDIA driver 510.47.3, for CUDA 11.6
CUDA driver 11.6

Libraries: 
- CUBLAS: 11.8.1
- CURAND: 10.2.9
- CUFFT: 10.7.0
- CUSOLVER: 11.3.2
- CUSPARSE: 11.7.1
- CUPTI: 16.0.0
- NVML: 11.0.0+510.47.3
- CUDNN: 8.30.2 (for CUDA 11.5.0)
- CUTENSOR: 1.4.0 (for CUDA 11.5.0)

Toolchain:
- Julia: 1.7.2
- LLVM: 12.0.1
- PTX ISA support: 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 6.0, 6.1, 6.3, 6.4, 6.5, 7.0
- Device capability support: sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80

1 device:
  0: NVIDIA GeForce RTX 2070 (sm_75, 7.263 GiB / 8.000 GiB available)
[ Info: Skipping intermediate benchmarks.
[ Info: Testing models.jl
[ Info: Testing propagate.jl
[ Info: Testing timestep.jl
[ Info: Testing emission.jl
[ Info: Testing likelihood.jl
[ Info: Testing jitter.jl
[ Info: Testing resample.jl
[ Info: Testing filter.jl

[ Info: Benchmarking one filter update step: should take less than 10ms.
BenchmarkTools.Trial: 876 samples with 1 evaluation.
 Range (min  max):  4.806 ms  83.997 ms  ┊ GC (min  max): 0.00%  0.00%
 Time  (median):     5.173 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   5.706 ms ±  3.680 ms  ┊ GC (mean ± σ):  0.41% ± 2.35%

  ▅█▅                                                         
  █████▇▅▄▄▄▁▁▄▄▁▁▄▁▄▄▁▄▁▁▁▁▁▁▁▁▁▁▁▁▅▄▅▁▅▁▁▁▁▁▁▄▁▁▁▄▁▄▄▁▁▁▄▄ ▇
  4.81 ms      Histogram: log(frequency) by time     18.6 ms <

 Memory estimate: 48.84 KiB, allocs estimate: 567.

[ Info: Testing statistics.jl
[ Info: Testing simulate.jl
┌ Warning: Simulation ended prematurely due to `get_step` returning `nothing`.
└ @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:163
┌ Warning: Simulation ended prematurely due to `get_step` returning `nothing`.
└ @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:163
[ Info: Testing record.jl
[ Info: Testing myopic.jl
CPU: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/myopic.jl:55
  Test threw exception
  Expression: _entropy(model, obs, policy)  0.3
  PosDefException: matrix is not positive definite; Cholesky factorization failed.
  Stacktrace:
    [1] checkpositivedefinite
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/factorization.jl:18 [inlined]
    [2] cholesky!(A::LinearAlgebra.Symmetric{Float64, Matrix{Float64}}, ::Val{false}; check::Bool)
      @ LinearAlgebra ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:266
    [3] #cholesky#143
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:394 [inlined]
    [4] cholesky (repeats 2 times)
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:394 [inlined]
    [5] PDMats.PDMat(mat::LinearAlgebra.Symmetric{Float64, Matrix{Float64}})
      @ PDMats ~/.julia/packages/PDMats/ovlmf/src/pdmat.jl:19
    [6] MvNormal
      @ ~/.julia/packages/Distributions/0h6GE/src/multivariate/mvnormal.jl:201 [inlined]
    [7] MvNormal
      @ ~/.julia/packages/Distributions/0h6GE/src/multivariate/mvnormal.jl:218 [inlined]
    [8] _entropy(model::BinomialGridModel{Matrix{Int64}, UnitRange{Int64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, Matrix{Int64}, Matrix{Float64}}, obs::BinomialObservation{Vector{Float64}, Vector{Float64}}, policy::Myopic{Vector{Float64}, typeof(_entropy), Int64})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:224
    [9] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:445 [inlined]
   [10] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:55 [inlined]
   [11] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [12] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:38 [inlined]
   [13] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [14] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:29 [inlined]
   [15] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [16] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:2
GPU: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/myopic.jl:81
  Test threw exception
  Expression: _entropy(model, obs, policy)  0.2
  PosDefException: matrix is not positive definite; Cholesky factorization failed.
  Stacktrace:
    [1] checkpositivedefinite
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/factorization.jl:18 [inlined]
    [2] cholesky!(A::LinearAlgebra.Symmetric{Float64, Matrix{Float64}}, ::Val{false}; check::Bool)
      @ LinearAlgebra ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:266
    [3] #cholesky#143
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:394 [inlined]
    [4] cholesky (repeats 2 times)
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:394 [inlined]
    [5] PDMats.PDMat(mat::LinearAlgebra.Symmetric{Float64, Matrix{Float64}})
      @ PDMats ~/.julia/packages/PDMats/ovlmf/src/pdmat.jl:19
    [6] MvNormal
      @ ~/.julia/packages/Distributions/0h6GE/src/multivariate/mvnormal.jl:201 [inlined]
    [7] MvNormal
      @ ~/.julia/packages/Distributions/0h6GE/src/multivariate/mvnormal.jl:218 [inlined]
    [8] _entropy(model::BinomialGridModel{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}}, obs::BinomialObservation{Vector{Float64}, Vector{Float64}}, policy::Myopic{Vector{Float64}, typeof(_entropy), Int64})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:224
    [9] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:445 [inlined]
   [10] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:81 [inlined]
   [11] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [12] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:59 [inlined]
   [13] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [14] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:29 [inlined]
   [15] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [16] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:2
GPU: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/myopic.jl:127
  Test threw exception
  Expression: _entropy(model, obs, policy)  0.1
  PosDefException: matrix is not positive definite; Cholesky factorization failed.
  Stacktrace:
    [1] checkpositivedefinite
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/factorization.jl:18 [inlined]
    [2] cholesky!(A::LinearAlgebra.Symmetric{Float64, Matrix{Float64}}, ::Val{false}; check::Bool)
      @ LinearAlgebra ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:266
    [3] #cholesky#143
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:394 [inlined]
    [4] cholesky (repeats 2 times)
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/LinearAlgebra/src/cholesky.jl:394 [inlined]
    [5] PDMats.PDMat(mat::LinearAlgebra.Symmetric{Float64, Matrix{Float64}})
      @ PDMats ~/.julia/packages/PDMats/ovlmf/src/pdmat.jl:19
    [6] MvNormal
      @ ~/.julia/packages/Distributions/0h6GE/src/multivariate/mvnormal.jl:201 [inlined]
    [7] MvNormal
      @ ~/.julia/packages/Distributions/0h6GE/src/multivariate/mvnormal.jl:218 [inlined]
    [8] _entropy(model::BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, obs::BinomialObservation{Vector{Float64}, Vector{Float64}}, policy::Myopic{Vector{Float64}, typeof(_entropy), Int64})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:224
    [9] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:445 [inlined]
   [10] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:127 [inlined]
   [11] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [12] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:110 [inlined]
   [13] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [14] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:86 [inlined]
   [15] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [16] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/myopic.jl:2
[ Info: Performing INTEGRATION TESTS

[ Info: Benchmarking single iteration with timestep = RandomTimestep{Exponential{Float64}}(Exponential{Float64}=0.121)) on device = cpu
BenchmarkTools.Trial: 28 samples with 1 evaluation.
 Range (min  max):  142.920 ms  204.624 ms  ┊ GC (min  max): 0.00%  1.62%
 Time  (median):     183.524 ms               ┊ GC (median):    0.89%
 Time  (mean ± σ):   179.666 ms ±  13.878 ms  ┊ GC (mean ± σ):  0.93% ± 0.95%

                           ▃ █            ▃▃▃    █               
  ▇▁▁▁▇▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▇▁█▁█▇▇▇▁▁▁▇▁▇▁▁▁███▇▁▁▇█▁▇▇▁▁▁▇▁▁▁▁▁▇ ▁
  143 ms           Histogram: frequency by time          205 ms <

 Memory estimate: 56.21 MiB, allocs estimate: 28.


[ Info: Benchmarking single iteration with timestep = Uniform{LinRange{Float64, Int64}}(range(0.005, stop=2.0, length=8)) on device = cpu
BenchmarkTools.Trial: 33 samples with 1 evaluation.
 Range (min  max):  135.742 ms  177.511 ms  ┊ GC (min  max): 0.00%  0.00%
 Time  (median):     152.818 ms               ┊ GC (median):    0.00%
 Time  (mean ± σ):   153.329 ms ±   9.243 ms  ┊ GC (mean ± σ):  1.06% ± 1.12%

        ▁▁          ▁ ▁█  ▁  ▁▁ ▄                                
  ▆▁▁▁▁▁██▁▁▁▁▁▆▁▁▁▁█▁██▁▆█▆▆██▁█▆▁▁▁▆▁▆▁▁▁▁▁▁▁▆▁▁▁▆▁▁▁▁▆▁▁▁▁▁▆ ▁
  136 ms           Histogram: frequency by time          178 ms <

 Memory estimate: 56.21 MiB, allocs estimate: 28.


[ Info: Benchmarking single iteration with timestep = Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}(range(0.005, stop=2.0, length=8), BinomialSynapses._entropy, 0) on device = cpu
BenchmarkTools.Trial: 3 samples with 1 evaluation.
 Range (min  max):  2.304 s     2.552 s  ┊ GC (min  max): 7.05%  8.19%
 Time  (median):     2.360 s               ┊ GC (median):    6.88%
 Time  (mean ± σ):   2.405 s ± 130.359 ms  ┊ GC (mean ± σ):  5.34% ± 4.09%

  █            █                                           █  
  █▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
  2.3 s          Histogram: frequency by time         2.55 s <

 Memory estimate: 639.78 MiB, allocs estimate: 11793.


[ Info: Benchmarking single iteration with timestep = MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}(range(0.005, stop=2.0, length=8), BinomialSynapses._entropy, 0) on device = cpu
BenchmarkTools.Trial: 15 samples with 1 evaluation.
 Range (min  max):  325.105 ms  348.060 ms  ┊ GC (min  max): 1.05%  1.01%
 Time  (median):     336.728 ms               ┊ GC (median):    1.02%
 Time  (mean ± σ):   335.828 ms ±   7.526 ms  ┊ GC (mean ± σ):  1.30% ± 0.49%

  █  █   █ █  █      ██         ██ █    █        █     █  █   █  
  █▁▁█▁▁▁█▁█▁▁█▁▁▁▁▁▁██▁▁▁▁▁▁▁▁▁██▁█▁▁▁▁█▁▁▁▁▁▁▁▁█▁▁▁▁▁█▁▁█▁▁▁█ ▁
  325 ms           Histogram: frequency by time          348 ms <

 Memory estimate: 129.66 MiB, allocs estimate: 8385.


[ Info: Benchmarking single iteration with timestep = RandomTimestep{Exponential{Float64}}(Exponential{Float64}=0.121)) on device = gpu
BenchmarkTools.Trial: 1145 samples with 1 evaluation.
 Range (min  max):  2.962 ms  27.462 ms  ┊ GC (min  max): 0.00%  17.12%
 Time  (median):     4.131 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   4.363 ms ±  1.364 ms  ┊ GC (mean ± σ):  0.67% ±  2.54%

     ▁▂███▅▂▁▁                                                
  ▂▃▅██████████▇▅▂▂▁▂▂▂▁▂▁▁▁▁▂▁▂▁▁▂▁▂▁▁▁▁▁▁▂▁▂▁▁▂▁▁▂▁▁▁▁▁▁▁▂ ▃
  2.96 ms        Histogram: frequency by time          12 ms <

 Memory estimate: 85.39 KiB, allocs estimate: 578.


[ Info: Benchmarking single iteration with timestep = Uniform{LinRange{Float64, Int64}}(range(0.005, stop=2.0, length=8)) on device = gpu
BenchmarkTools.Trial: 1035 samples with 1 evaluation.
 Range (min  max):  3.047 ms  60.520 ms  ┊ GC (min  max): 0.00%  0.00%
 Time  (median):     4.091 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   4.834 ms ±  3.352 ms  ┊ GC (mean ± σ):  0.67% ± 2.81%

   ▃█▇▆▆▅▄▂▂                                                  
  ▇█████████▇▅▆▄▄▄▅▄▁▄▄▁▄▅▄▅▄▅▄▁▄▅▄▄▁▄▄▁▄▅▅▅▁▁▅▁▁▅▄▄▄▄▁▄▁▁▄▅ █
  3.05 ms      Histogram: log(frequency) by time     18.4 ms <

 Memory estimate: 85.36 KiB, allocs estimate: 577.


[ Info: Benchmarking single iteration with timestep = Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}(range(0.005, stop=2.0, length=8), BinomialSynapses._entropy, 0) on device = gpu
OEDPolicy: Myopic: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/_integration.jl:76
  Got exception outside of a @test
  GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64) failed
  KernelError: passing and using non-bitstype argument
  
  Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, which is not isbits:
    .args is of type Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}} which is not isbits.
      .1 is of type Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}} which is not isbits.
        .x is of type Vector{Float32} which is not isbits.
  
  
  Stacktrace:
    [1] check_invocation(job::GPUCompiler.CompilerJob)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/validation.jl:71
    [2] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:385 [inlined]
    [3] macro expansion
      @ ~/.julia/packages/TimerOutputs/2IJ7m/src/TimerOutput.jl:252 [inlined]
    [4] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:384 [inlined]
    [5] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module; strip::Bool, validate::Bool, format::LLVM.API.LLVMCodeGenFileType)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/utils.jl:64
    [6] cufunction_compile(job::GPUCompiler.CompilerJob, ctx::LLVM.Context)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:332
    [7] #260
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:325 [inlined]
    [8] JuliaContext(f::CUDA.var"#260#261"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams, GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#17", Tuple{CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}}}})
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:74
    [9] cufunction_compile(job::GPUCompiler.CompilerJob)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:324
   [10] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/cache.jl:90
   [11] cufunction(f::GPUArrays.var"#broadcast_kernel#17", tt::Type{Tuple{CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}}; name::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:297
   [12] cufunction(f::GPUArrays.var"#broadcast_kernel#17", tt::Type{Tuple{CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}})
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:291
   [13] macro expansion
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:102 [inlined]
   [14] #launch_heuristic#284
      @ ~/.julia/packages/CUDA/Uurn4/src/gpuarrays.jl:17 [inlined]
   [15] _copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:73 [inlined]
   [16] copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:56 [inlined]
   [17] copy
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:47 [inlined]
   [18] materialize
      @ ./broadcast.jl:860 [inlined]
   [19] likelihood_indices(k::PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuArray{Int64, 3, CUDA.Mem.DeviceBuffer}}, model::BinomialGridModel{PermutedDimsArray{Int64, 2, (2, 1), (2, 1), CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}}, obs::Vector{Float32})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/likelihood.jl:25
   [20] likelihood_resample!
      @ ~/.julia/dev/BinomialSynapses/src/likelihood.jl:41 [inlined]
   [21] update!(filterstate::NestedParticleState{BinomialState{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuArray{Int64, 3, CUDA.Mem.DeviceBuffer}}}, BinomialGridModel{PermutedDimsArray{Int64, 2, (2, 1), (2, 1), CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}}}, observation::BinomialObservation{Vector{Float32}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, filter::NestedParticleFilter)
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/filter.jl:57
   [22] (::Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64})(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:76
   [23] macro expansion
      @ ./timing.jl:380 [inlined]
   [24] propagate!(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:113
   [25] macro expansion
      @ ~/.julia/packages/CUDA/Uurn4/src/utilities.jl:25 [inlined]
   [26] var"##core#2269"(sim#2248::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ Main ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:489
   [27] var"##sample#2270"(::Tuple{NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}}}, __params::BenchmarkTools.Parameters)
      @ Main ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:495
   [28] _run(b::BenchmarkTools.Benchmark, p::BenchmarkTools.Parameters; verbose::Bool, pad::String, kwargs::Base.Pairs{Symbol, Integer, NTuple{4, Symbol}, NamedTuple{(:samples, :evals, :gctrial, :gcsample), Tuple{Int64, Int64, Bool, Bool}}})
      @ BenchmarkTools ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:99
   [29] #invokelatest#2
      @ ./essentials.jl:718 [inlined]
   [30] #run_result#45
      @ ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:34 [inlined]
   [31] run(b::BenchmarkTools.Benchmark, p::BenchmarkTools.Parameters; progressid::Nothing, nleaves::Float64, ndone::Float64, kwargs::Base.Pairs{Symbol, Integer, NTuple{5, Symbol}, NamedTuple{(:verbose, :samples, :evals, :gctrial, :gcsample), Tuple{Bool, Int64, Int64, Bool, Bool}}})
      @ BenchmarkTools ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:117
   [32] #warmup#54
      @ ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:169 [inlined]
   [33] warmup(item::BenchmarkTools.Benchmark)
      @ BenchmarkTools ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:169
   [34] macro expansion
      @ ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:393 [inlined]
   [35] (::var"#benchmark#5")(timestep::Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, device::Symbol)
      @ Main ~/.julia/dev/BinomialSynapses/test/_integration.jl:24
   [36] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:77 [inlined]
   [37] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
  --- the last 2 lines are repeated 1 more time ---
   [40] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:72 [inlined]
   [41] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1359 [inlined]
   [42] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:64 [inlined]
   [43] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [44] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:2
   [45] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [46] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:43 [inlined]
   [47] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [48] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:30
   [49] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [50] top-level scope
      @ none:6
   [51] eval
      @ ./boot.jl:373 [inlined]
   [52] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:268

[ Info: Benchmarking single iteration with timestep = MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}(range(0.005, stop=2.0, length=8), BinomialSynapses._entropy, 0) on device = gpu
OEDPolicy: MyopicFast: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/_integration.jl:79
  Got exception outside of a @test
  GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, CuDeviceMatrix{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64) failed
  KernelError: passing and using non-bitstype argument
  
  Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, which is not isbits:
    .args is of type Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}} which is not isbits.
      .1 is of type Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}} which is not isbits.
        .x is of type Vector{Float32} which is not isbits.
  
  
  Stacktrace:
    [1] check_invocation(job::GPUCompiler.CompilerJob)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/validation.jl:71
    [2] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:385 [inlined]
    [3] macro expansion
      @ ~/.julia/packages/TimerOutputs/2IJ7m/src/TimerOutput.jl:252 [inlined]
    [4] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:384 [inlined]
    [5] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module; strip::Bool, validate::Bool, format::LLVM.API.LLVMCodeGenFileType)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/utils.jl:64
    [6] cufunction_compile(job::GPUCompiler.CompilerJob, ctx::LLVM.Context)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:332
    [7] #260
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:325 [inlined]
    [8] JuliaContext(f::CUDA.var"#260#261"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams, GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#17", Tuple{CUDA.CuKernelContext, CuDeviceMatrix{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64}}}})
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:74
    [9] cufunction_compile(job::GPUCompiler.CompilerJob)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:324
   [10] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/cache.jl:90
   [11] cufunction(f::GPUArrays.var"#broadcast_kernel#17", tt::Type{Tuple{CUDA.CuKernelContext, CuDeviceMatrix{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64}}; name::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:297
   [12] cufunction
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:291 [inlined]
   [13] macro expansion
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:102 [inlined]
   [14] #launch_heuristic#284
      @ ~/.julia/packages/CUDA/Uurn4/src/gpuarrays.jl:17 [inlined]
   [15] _copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:73 [inlined]
   [16] copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:56 [inlined]
   [17] copy
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:47 [inlined]
   [18] materialize
      @ ./broadcast.jl:860 [inlined]
   [19] likelihood_indices(k::CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, model::BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, obs::Vector{Float32})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/likelihood.jl:25
   [20] likelihood_resample!
      @ ~/.julia/dev/BinomialSynapses/src/likelihood.jl:41 [inlined]
   [21] update!(filterstate::NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, observation::BinomialObservation{Vector{Float32}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, filter::NestedParticleFilter)
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/filter.jl:57
   [22] (::MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64})(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:76
   [23] macro expansion
      @ ./timing.jl:380 [inlined]
   [24] propagate!(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:113
   [25] macro expansion
      @ ~/.julia/packages/CUDA/Uurn4/src/utilities.jl:25 [inlined]
   [26] var"##core#2458"(sim#2248::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ Main ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:489
   [27] var"##sample#2459"(::Tuple{NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}}}, __params::BenchmarkTools.Parameters)
      @ Main ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:495
   [28] _run(b::BenchmarkTools.Benchmark, p::BenchmarkTools.Parameters; verbose::Bool, pad::String, kwargs::Base.Pairs{Symbol, Integer, NTuple{4, Symbol}, NamedTuple{(:samples, :evals, :gctrial, :gcsample), Tuple{Int64, Int64, Bool, Bool}}})
      @ BenchmarkTools ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:99
   [29] #invokelatest#2
      @ ./essentials.jl:718 [inlined]
   [30] #run_result#45
      @ ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:34 [inlined]
   [31] run(b::BenchmarkTools.Benchmark, p::BenchmarkTools.Parameters; progressid::Nothing, nleaves::Float64, ndone::Float64, kwargs::Base.Pairs{Symbol, Integer, NTuple{5, Symbol}, NamedTuple{(:verbose, :samples, :evals, :gctrial, :gcsample), Tuple{Bool, Int64, Int64, Bool, Bool}}})
      @ BenchmarkTools ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:117
   [32] #warmup#54
      @ ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:169 [inlined]
   [33] warmup(item::BenchmarkTools.Benchmark)
      @ BenchmarkTools ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:169
   [34] macro expansion
      @ ~/.julia/packages/BenchmarkTools/7xSXH/src/execution.jl:393 [inlined]
   [35] (::var"#benchmark#5")(timestep::MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, device::Symbol)
      @ Main ~/.julia/dev/BinomialSynapses/test/_integration.jl:24
   [36] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:80 [inlined]
   [37] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
  --- the last 2 lines are repeated 1 more time ---
   [40] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:72 [inlined]
   [41] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1359 [inlined]
   [42] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:64 [inlined]
   [43] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [44] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:2
   [45] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [46] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:43 [inlined]
   [47] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [48] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:30
   [49] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [50] top-level scope
      @ none:6
   [51] eval
      @ ./boot.jl:373 [inlined]
   [52] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:268
OEDPolicy: Myopic: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/_integration.jl:95
  Got exception outside of a @test
  GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64) failed
  KernelError: passing and using non-bitstype argument
  
  Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, which is not isbits:
    .args is of type Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}} which is not isbits.
      .1 is of type Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}} which is not isbits.
        .x is of type Vector{Float32} which is not isbits.
  
  
  Stacktrace:
    [1] check_invocation(job::GPUCompiler.CompilerJob)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/validation.jl:71
    [2] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:385 [inlined]
    [3] macro expansion
      @ ~/.julia/packages/TimerOutputs/2IJ7m/src/TimerOutput.jl:252 [inlined]
    [4] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:384 [inlined]
    [5] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module; strip::Bool, validate::Bool, format::LLVM.API.LLVMCodeGenFileType)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/utils.jl:64
    [6] cufunction_compile(job::GPUCompiler.CompilerJob, ctx::LLVM.Context)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:332
    [7] #260
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:325 [inlined]
    [8] JuliaContext(f::CUDA.var"#260#261"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams, GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#17", Tuple{CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}}}})
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:74
    [9] cufunction_compile(job::GPUCompiler.CompilerJob)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:324
   [10] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/cache.jl:90
   [11] cufunction(f::GPUArrays.var"#broadcast_kernel#17", tt::Type{Tuple{CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}}; name::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:297
   [12] cufunction(f::GPUArrays.var"#broadcast_kernel#17", tt::Type{Tuple{CUDA.CuKernelContext, CuDeviceArray{Float32, 3, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{3}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}, Base.Broadcast.Extruded{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuDeviceArray{Int64, 3, 1}}, Tuple{Bool, Bool, Bool}, Tuple{Int64, Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceMatrix{Float32, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}})
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:291
   [13] macro expansion
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:102 [inlined]
   [14] #launch_heuristic#284
      @ ~/.julia/packages/CUDA/Uurn4/src/gpuarrays.jl:17 [inlined]
   [15] _copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:73 [inlined]
   [16] copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:56 [inlined]
   [17] copy
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:47 [inlined]
   [18] materialize
      @ ./broadcast.jl:860 [inlined]
   [19] likelihood_indices(k::PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuArray{Int64, 3, CUDA.Mem.DeviceBuffer}}, model::BinomialGridModel{PermutedDimsArray{Int64, 2, (2, 1), (2, 1), CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}}, obs::Vector{Float32})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/likelihood.jl:25
   [20] likelihood_resample!
      @ ~/.julia/dev/BinomialSynapses/src/likelihood.jl:41 [inlined]
   [21] update!(filterstate::NestedParticleState{BinomialState{PermutedDimsArray{Int64, 3, (3, 1, 2), (2, 3, 1), CuArray{Int64, 3, CUDA.Mem.DeviceBuffer}}}, BinomialGridModel{PermutedDimsArray{Int64, 2, (2, 1), (2, 1), CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}}}, observation::BinomialObservation{Vector{Float32}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, filter::NestedParticleFilter)
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/filter.jl:57
   [22] (::Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64})(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:76
   [23] macro expansion
      @ ./timing.jl:380 [inlined]
   [24] propagate!(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:113
   [25] macro expansion
      @ ~/.julia/dev/BinomialSynapses/src/simulate.jl:161 [inlined]
   [26] macro expansion
      @ ./timing.jl:380 [inlined]
   [27] run!(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}}; T::Int64, plot_each_timestep::Bool, recording::Recording{Nothing, Nothing, Nothing})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:160
   [28] (::var"#test_convergence#6")(timestep::Myopic{LinRange{Float64, Int64}, typeof(_entropy), Int64}, T::Int64, device::Symbol)
      @ Main ~/.julia/dev/BinomialSynapses/test/_integration.jl:54
   [29] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:96 [inlined]
   [30] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [31] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:96 [inlined]
   [32] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [33] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:90 [inlined]
   [34] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1359 [inlined]
   [35] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:64 [inlined]
   [36] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [37] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:2
   [38] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [39] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:43 [inlined]
   [40] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [41] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:30
   [42] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [43] top-level scope
      @ none:6
   [44] eval
      @ ./boot.jl:373 [inlined]
   [45] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:268
   [46] _start()
      @ Base ./client.jl:495
OEDPolicy: MyopicFast: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/_integration.jl:98
  Got exception outside of a @test
  GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, CuDeviceMatrix{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64) failed
  KernelError: passing and using non-bitstype argument
  
  Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, which is not isbits:
    .args is of type Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}} which is not isbits.
      .1 is of type Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}} which is not isbits.
        .x is of type Vector{Float32} which is not isbits.
  
  
  Stacktrace:
    [1] check_invocation(job::GPUCompiler.CompilerJob)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/validation.jl:71
    [2] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:385 [inlined]
    [3] macro expansion
      @ ~/.julia/packages/TimerOutputs/2IJ7m/src/TimerOutput.jl:252 [inlined]
    [4] macro expansion
      @ ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:384 [inlined]
    [5] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module; strip::Bool, validate::Bool, format::LLVM.API.LLVMCodeGenFileType)
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/utils.jl:64
    [6] cufunction_compile(job::GPUCompiler.CompilerJob, ctx::LLVM.Context)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:332
    [7] #260
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:325 [inlined]
    [8] JuliaContext(f::CUDA.var"#260#261"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams, GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#17", Tuple{CUDA.CuKernelContext, CuDeviceMatrix{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64}}}})
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/driver.jl:74
    [9] cufunction_compile(job::GPUCompiler.CompilerJob)
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:324
   [10] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
      @ GPUCompiler ~/.julia/packages/GPUCompiler/1FdJy/src/cache.jl:90
   [11] cufunction(f::GPUArrays.var"#broadcast_kernel#17", tt::Type{Tuple{CUDA.CuKernelContext, CuDeviceMatrix{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, typeof(BinomialSynapses.gauss), Tuple{Base.Broadcast.Extruded{Vector{Float32}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2}, Nothing, typeof(*), Tuple{Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Extruded{CuDeviceMatrix{Int64, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Base.Broadcast.Extruded{CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64}}; name::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      @ CUDA ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:297
   [12] cufunction
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:291 [inlined]
   [13] macro expansion
      @ ~/.julia/packages/CUDA/Uurn4/src/compiler/execution.jl:102 [inlined]
   [14] #launch_heuristic#284
      @ ~/.julia/packages/CUDA/Uurn4/src/gpuarrays.jl:17 [inlined]
   [15] _copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:73 [inlined]
   [16] copyto!
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:56 [inlined]
   [17] copy
      @ ~/.julia/packages/GPUArrays/Zecv7/src/host/broadcast.jl:47 [inlined]
   [18] materialize
      @ ./broadcast.jl:860 [inlined]
   [19] likelihood_indices(k::CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}, model::BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, obs::Vector{Float32})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/likelihood.jl:25
   [20] likelihood_resample!
      @ ~/.julia/dev/BinomialSynapses/src/likelihood.jl:41 [inlined]
   [21] update!(filterstate::NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, observation::BinomialObservation{Vector{Float32}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, filter::NestedParticleFilter)
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/filter.jl:57
   [22] (::MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64})(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/myopic.jl:76
   [23] macro expansion
      @ ./timing.jl:380 [inlined]
   [24] propagate!(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:113
   [25] macro expansion
      @ ~/.julia/dev/BinomialSynapses/src/simulate.jl:161 [inlined]
   [26] macro expansion
      @ ./timing.jl:380 [inlined]
   [27] run!(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, Vector{Float64}, Vector{Float64}}; T::Int64, plot_each_timestep::Bool, recording::Recording{Nothing, Nothing, Nothing})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:160
   [28] (::var"#test_convergence#6")(timestep::MyopicFast{LinRange{Float64, Int64}, typeof(_entropy), Int64}, T::Int64, device::Symbol)
      @ Main ~/.julia/dev/BinomialSynapses/test/_integration.jl:54
   [29] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:99 [inlined]
   [30] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [31] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:99 [inlined]
   [32] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [33] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:90 [inlined]
   [34] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1359 [inlined]
   [35] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:64 [inlined]
   [36] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [37] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/_integration.jl:2
   [38] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [39] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:43 [inlined]
   [40] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [41] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:30
   [42] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [43] top-level scope
      @ none:6
   [44] eval
      @ ./boot.jl:373 [inlined]
   [45] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:268
   [46] _start()
      @ Base ./client.jl:495
Saving Recording using JLD: Error During Test at /home/simone/.julia/dev/BinomialSynapses/test/saving.jl:1
  Got exception outside of a @test
  type Float64 has no field time
  Stacktrace:
    [1] getproperty
      @ ./Base.jl:42 [inlined]
    [2] (::var"#f1#12")(sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, FixedTimestep{Float64}, Vector{Float64}, Vector{Float64}}, time::Float64)
      @ Main ~/.julia/dev/BinomialSynapses/test/saving.jl:67
    [3] Recording(f1::var"#f1#12", f2::Function, sim::NestedFilterSimulation{BinomialModel{Vector{Int64}, Vector{Float64}}, NestedParticleFilter, BinomialState{Matrix{Int64}}, NestedParticleState{BinomialState{CuArray{Int64, 2, CUDA.Mem.DeviceBuffer}}, BinomialGridModel{CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Int64, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}, FixedTimestep{Float64}, Vector{Float64}, Vector{Float64}})
      @ BinomialSynapses ~/.julia/dev/BinomialSynapses/src/simulate.jl:333
    [4] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/saving.jl:74 [inlined]
    [5] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
    [6] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/saving.jl:2
    [7] include(fname::String)
      @ Base.MainInclude ./client.jl:451
    [8] macro expansion
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:44 [inlined]
    [9] macro expansion
      @ ~/.julia/juliaup/julia-1.7.2+0~x64/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
   [10] top-level scope
      @ ~/.julia/dev/BinomialSynapses/test/runtests.jl:30
   [11] include(fname::String)
      @ Base.MainInclude ./client.jl:451
   [12] top-level scope
      @ none:6
   [13] eval
      @ ./boot.jl:373 [inlined]
   [14] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:268
   [15] _start()
      @ Base ./client.jl:495
Test Summary:                 |   Pass  Error   Total
BinomialSynapses.jl           | 153095      8  153103
  models.jl                   |                No tests
  propagate.jl                |    456            456
  timestep.jl                 |     10             10
  emission.jl                 |      3              3
  likelihood.jl               |   2082           2082
  jitter.jl                   |   2000           2000
  resample.jl                 | 147576         147576
  filter.jl                   |                No tests
  statistics.jl               |     10             10
  simulate.jl                 |     96             96
  record.jl                   |      7              7
  myopic.jl                   |    845      3     848
    _repeat                   |    840            840
    _entropy: Myopic          |             2       2
      CPU                     |             1       1
      GPU                     |             1       1
    _entropy: MyopicFast      |      1      1       2
      CPU                     |      1              1
      GPU                     |             1       1
    _tauentropy: Myopic       |      2              2
    _tauentropy: MyopicFast   |      2              2
  integration tests           |     10      4      14
    Device = cpu              |                No tests
    Device = gpu              |     10      4      14
      benchmark of filter     |                No tests
      benchmark of OED        |             2       2
        OEDPolicy: Uniform    |                No tests
        OEDPolicy: Myopic     |             1       1
        OEDPolicy: MyopicFast |             1       1
      convergence of filter   |      5              5
      convergence of OED      |      5      2       7
        OEDPolicy: Uniform    |      5              5
        OEDPolicy: Myopic     |             1       1
        OEDPolicy: MyopicFast |             1       1
  Saving Recording using JLD  |             1       1
ERROR: LoadError: Some tests did not pass: 153095 passed, 0 failed, 8 errored, 0 broken.
in expression starting at /home/simone/.julia/dev/BinomialSynapses/test/runtests.jl:29
ERROR: Package BinomialSynapses errored during testing

@simsurace
Copy link
Copy Markdown
Member Author

Re-tested on my GPU machine:

Test Summary:                |   Pass  Error   Total
BinomialSynapses.jl          | 153105      4  153109
  models.jl                  |                No tests
  propagate.jl               |    456            456
  timestep.jl                |     10             10
  emission.jl                |      3              3
  likelihood.jl              |   2082           2082
  jitter.jl                  |   2000           2000
  resample.jl                | 147576         147576
  filter.jl                  |                No tests
  statistics.jl              |     10             10
  simulate.jl                |     96             96
  record.jl                  |      7              7
  myopic.jl                  |    845      3     848
    _repeat                  |    840            840
    _entropy: Myopic         |             2       2
      CPU                    |             1       1
      GPU                    |             1       1
    _entropy: MyopicFast     |      1      1       2
      CPU                    |      1              1
      GPU                    |             1       1
    _tauentropy: Myopic      |      2              2
    _tauentropy: MyopicFast  |      2              2
  integration tests          |     20             20
  Saving Recording using JLD |             1       1
ERROR: LoadError: Some tests did not pass: 153105 passed, 0 failed, 4 errored, 0 broken.
in expression starting at /home/simone/.julia/dev/BinomialSynapses/test/runtests.jl:29
ERROR: Package BinomialSynapses errored during testing

@simsurace
Copy link
Copy Markdown
Member Author

Now the only tests that fail are those that are expected to fail.

1 similar comment
@simsurace
Copy link
Copy Markdown
Member Author

Now the only tests that fail are those that are expected to fail.

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.

2 participants