KhronosGroup / KhronosGroup/OpenCL-CTS

cl20 cl21 cl22 device_execution/enqueue_flags data race

Open
#40 17 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
232
Forks
235
Avg merge
8d 7h
Merged PRs (30d)
18

Description

At least four of tests' kernels run into data race:
- enqueue_flags_wait_work_group_simple
- enqueue_flags_wait_work_group_event
- enqueue_flags_wait_work_group_local
- enqueue_flags_wait_work_group_event_local

res[gid] is being written by get_num_groups()/get_local_size() threads. And if one of these thread put 2 to the array cell, it still may be overwritten with 1 by another thread. Thus, the test doesn't really test anything.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the four named kernels in device_execution/enqueue_flags and inspect how each writes res[gid]. Confirm the concurrent writes can overwrite a value of 2 with 1, then adjust the tests so their results are not affected by that race. Done means each test reliably detects the intended behavior under concurrent execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.