variable.jl 663 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import Libdl
  2. using StarPU
  3. @target STARPU_CPU
  4. @codelet function variable(val ::Ref{Float32}) :: Nothing
  5. val[] = val[] + 1
  6. return
  7. end
  8. starpu_init()
  9. function variable_with_starpu(val ::Ref{Float32}, niter)
  10. @starpu_block let
  11. hVal = starpu_data_register(val)
  12. @starpu_sync_tasks for task in (1 : niter)
  13. @starpu_async_cl variable(hVal) [STARPU_RW]
  14. end
  15. end
  16. end
  17. function display(niter)
  18. foo = Ref(0.0f0)
  19. variable_with_starpu(foo, niter)
  20. println("variable -> ", foo[])
  21. if foo[] == niter
  22. println("result is correct")
  23. else
  24. println("result is incorret")
  25. end
  26. end
  27. display(10)
  28. starpu_shutdown()