# CUDAnative question: "recursion not currently supported error" when running reduce.jl example

**URL:** https://discourse.julialang.org/t/cudanative-question-recursion-not-currently-supported-error-when-running-reduce-jl-example/14776
**Category:** GPU
**Created:** [September 10, 2018, 5:55pm UTC](https://discourse.julialang.org/t/cudanative-question-recursion-not-currently-supported-error-when-running-reduce-jl-example/14776 "2018-09-10T17:55:26Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![MeBlueDolphin](https://avatars.discourse-cdn.com/v4/letter/m/a87d85/32.png) [@MeBlueDolphin](https://discourse.julialang.org/u/MeBlueDolphin)
#### Post date: [September 10, 2018, 5:55pm UTC](https://discourse.julialang.org/t/cudanative-question-recursion-not-currently-supported-error-when-running-reduce-jl-example/14776/1 "2018-09-10T17:55:26Z")

</div>

I am trying to run your “reduce.jl” example with julia 0.7.0 on my PC laptop which has the 940MX card. I am getting the following “recursion not supported error:”

julia\> include(“verify\_reduce.jl”)  
ERROR: LoadError: GPU compilation failed, try inspecting generated code with any of the @device\_code\_… macros  
CompilerError: could not compile reduce\_grid(typeof(+), CuDeviceArray{Int32,1,CUDAnative.AS.Global}, CuDeviceArray{Int32,1,CUDAnative.AS.Global}, Int32); recursion is currently not supported  
Stacktrace:  
[1] recurse\_value\_invocation at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\cgutils.jl:233  
[2] shfl\_down at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\device\intrinsics\warp\_shuffle.jl:70  
[3] split\_value\_invocation at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\cgutils.jl:203  
[4] recurse\_value\_invocation at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\cgutils.jl:233  
[5] reduce\_block at C:\Users\ismailb\julia\_code\reduce\_cuda.jl:24  
[6] reduce\_grid at C:\Users\ismailb\julia\_code\reduce\_cuda.jl:59 (repeats 2 times)  
Stacktrace:  
[1] (::getfield(CUDAnative, Symbol(“#hook\_emit\_function#55”)){CUDAnative.CompilerContext,Array{Core.MethodInstance,1}})(::Core.MethodInstance, ::Core.CodeInfo, ::UInt64) at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\compiler.jl:154  
[2] irgen(::CUDAnative.CompilerContext) at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\compiler.jl:189  
[3] #compile\_function#69(::Bool, ::Function, ::CUDAnative.CompilerContext) at .\logging.jl:308  
[4] compile\_function at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\compiler.jl:651 [inlined]  
[5] #cufunction#70(::Base.Iterators.Pairs{Symbol,typeof(reduce\_grid),Tuple{Symbol},NamedTuple{(:inner\_f,),Tuple{typeof(reduce\_grid)}}}, ::Function, ::CuDevice, ::Any, ::Any) at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\compiler.jl:714  
[6] (::getfield(CUDAnative, Symbol(“#kw##cufunction”)))(::NamedTuple{(:inner\_f,),Tuple{typeof(reduce\_grid)}}, ::typeof(cufunction), ::CuDevice, ::Function, ::Type) at .\none:0  
[7] \_cuda(::CUDAnative.KernelWrapper{typeof(reduce\_grid)}, ::typeof(reduce\_grid), ::Tuple{}, ::NamedTuple{(:blocks, :threads),Tuple{Float64,Int64}}, ::typeof(+), ::CuDeviceArray{Int32,1,CUDAnative.AS.Global}, ::CuDeviceArray{Int32,1,CUDAnative.AS.Global}, ::Int32) at C:\Users\ismailb.julia\packages\CUDAnative\FzmMm\src\execution.jl:219  
[8] macro expansion at .\gcutils.jl:87 [inlined]  
[9] gpu\_reduce(::typeof(+), ::CuArray{Int32,1}, ::CuArray{Int32,1}) at C:\Users\ismailb\julia\_code\reduce\_cuda.jl:95  
[10] top-level scope at C:\Users\ismailb\julia\_code\verify\_reduce.jl:18  
[11] include at .\boot.jl:317 [inlined]  
[12] include\_relative(::Module, ::String) at .\loading.jl:1038  
[13] include(::Module, ::String) at .\sysimg.jl:29  
[14] include(::String) at .\client.jl:398  
[15] top-level scope at none:0  
in expression starting at C:\Users\ismailb\julia\_code\verify\_reduce.jl:15

What am I doing wrong?

Regards,  
Ismail

---

<div class="post-metadata">

### Author: ![maleadt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maleadt/32/10097_2.png) [@maleadt](https://discourse.julialang.org/u/maleadt)
#### Post date: [September 11, 2018, 7:57am UTC](https://discourse.julialang.org/t/cudanative-question-recursion-not-currently-supported-error-when-running-reduce-jl-example/14776/2 "2018-09-11T07:57:05Z")

</div>

Please don’t double-post. Continuing at [Question: Getting a "recursion not supported: error when compiling reduce.jl · Issue #247 · JuliaGPU/CUDAnative.jl · GitHub](https://github.com/JuliaGPU/CUDAnative.jl/issues/247)
