From bc75147921b64ccb028d03b1ac0889729f27cbf0 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Sat, 27 Jun 2020 15:34:59 -0400 Subject: [PATCH] minor update --- driver/tests/demo/kernel.bin | Bin 19848 -> 6812 bytes driver/tests/demo/kernel.elf | Bin 25268 -> 9180 bytes runtime/include/vx_spawn.h | 19 ---------- runtime/src/vx_spawn.c | 65 ++++++++--------------------------- 4 files changed, 15 insertions(+), 69 deletions(-) diff --git a/driver/tests/demo/kernel.bin b/driver/tests/demo/kernel.bin index 2b8280da670a88d5123ffa799db29725528d4133..aea7c0615c62b4a6f8e72b230346e4d7ff1681dd 100755 GIT binary patch delta 501 zcmY+Aze^)g5XZkSyXzz1PhR|$LZeUODe4sx0yeiPg0_}|U=di$_#gO|B$r%w;WdIm zv52|$$bqfdOAt%36|BTY*rX7(QRjKZ-4(+y!*}L0->Dq3TI&1MVk;0|+3(f9Q&&4c z2(>m&SvZ}=5J-kN|4cpPp_0{&wJ{af9LQBT(hd}g+o=;ZY4+`@gD_8tuLO8bJ-5I^no{bMerDOCR zyY1=ng{L2^&3UTRlXNXFdLsJGTaCWBW~rR5LToL#IYcAEE_%9VPbAFnU-9LK_+L@8 wX7@AOYWRVU@uP?zG=K3JYi3e!L;6d0pnsb{ZHlEh0W+zCW;d%Wdv6Tt9Wf}Kv;Y7A literal 19848 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 // call user routine - global_function_pointer(global_argument_struct); + g_spawn->function(g_spawn->arguments); // resume single-thread execution on exit int wid = vx_warp_id(); @@ -23,55 +27,16 @@ void spawn_warp_runonce() { vx_tmc(tmask); } -void vx_spawn_warps(int numWarps, int numThreads, func_t func_ptr, void * args) { - global_function_pointer = func_ptr; - global_argument_struct = args; - global_num_threads = numThreads; - if (numWarps > 1) { - vx_wspawn(numWarps, (unsigned)spawn_warp_runonce); +void vx_spawn_warps(int num_warps, int num_threads, func_t func_ptr , void * args) { + spawn_t spawn = { func_ptr, args, num_threads }; + g_spawn = &spawn; + + if (num_warps > 1) { + vx_wspawn(num_warps, (unsigned)spawn_warp_runonce); } spawn_warp_runonce(); } -int pocl_threads; -struct context_t * pocl_ctx; -vx_pocl_workgroup_func pocl_pfn; -const void * pocl_args; - -void pocl_spawn_warp_runonce() { - // active all threads - vx_tmc(pocl_threads); - - int x = vx_thread_id(); - int y = vx_warp_gid(); - - // call kernel routine - (pocl_pfn)(pocl_args, pocl_ctx, x, y, 0); - - // resume single-thread execution on exit - int wid = vx_warp_id(); - unsigned tmask = (0 == wid) ? 0x1 : 0x0; - vx_tmc(tmask); -} - -void pocl_spawn(struct context_t * ctx, vx_pocl_workgroup_func pfn, const void * args) { - if (ctx->num_groups[2] > 1) { - printf("ERROR: pocl_spawn doesn't support Z dimension yet!\n"); - return; - } - - pocl_threads = ctx->num_groups[0]; - pocl_ctx = ctx; - pocl_pfn = pfn; - pocl_args = args; - - if (ctx->num_groups[1] > 1) { - vx_wspawn(ctx->num_groups[1], (unsigned)&pocl_spawn_warp_runonce); - } - - pocl_spawn_warp_runonce(); -} - #ifdef __cplusplus } #endif \ No newline at end of file