123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # StarPU --- Runtime system for heterogeneous multicore architectures.
- #
- # Copyright (C) 2020 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
- #
- # StarPU is free software; you can redistribute it and/or modify
- # it under the terms of the GNU Lesser General Public License as published by
- # the Free Software Foundation; either version 2.1 of the License, or (at
- # your option) any later version.
- #
- # StarPU is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- #
- # See the GNU Lesser General Public License in COPYING.LGPL for more details.
- #
- 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
- error("result is incorret")
- end
- end
- display(10)
- starpu_shutdown()
|