123456789101112131415161718192021222324252627282930313233343536373839 |
- import Libdl
- using StarPU
- @target STARPU_CPU
- @codelet function variable(val ::Ref{Float32}) :: Nothing
- val[] = val[] + 1
- return
- end
- starpu_init()
- function variable_with_starpu(val ::Ref{Float32}, niter)
- @starpu_block let
- hVal = starpu_data_register(val)
- @starpu_sync_tasks for task in (1 : niter)
- @starpu_async_cl variable(hVal) [STARPU_RW]
- end
- end
- end
- function display(niter)
- foo = Ref(0.0f0)
- variable_with_starpu(foo, niter)
- println("variable -> ", foo[])
- if foo[] == niter
- println("result is correct")
- else
- println("result is incorret")
- end
- end
- display(10)
- starpu_shutdown()
|