problem size, so let's do a reasonable number of single-worker gangs.
64 gangs matches a typical Fiji device. */
- /* NOTE: Until support for middle-end worker partitioning is merged, use 1
- for the default number of workers. */
if (dims[0] == 0) dims[0] = get_cu_count (kernel->agent); /* Gangs. */
- if (dims[1] == 0) dims[1] = 1; /* Workers. */
+ /* NOTE: Until support for middle-end worker partitioning is merged, force 'num_workers (1)'. */
+ if (/*TODO dims[1] == 0*/ true) dims[1] = 1; /* Workers. */
/* The incoming dimensions are expressed in terms of gangs, workers, and
vectors. The HSA dimensions are expressed in terms of "work-items",
if (num_workers < 1)
assert (event_info->launch_event.num_workers >= 1);
/* GCN currently enforces 'num_workers (1)'. */
- else if (acc_device_type == acc_device_radeon
- /*TODO ... just not in the "Parallelism dimensions: variable" case. */
- && /*TODO*/ num_gangs != 22)
+ else if (acc_device_type == acc_device_radeon)
assert (event_info->launch_event.num_workers == 1);
else
{
}
else if (acc_on_device (acc_device_radeon))
{
- /* The GCC GCN back end is limited to num_workers (16). */
- workers_actual = 16;
+ /* The GCC GCN back end is limited to num_workers (16).
+ Temporarily set this to 1 until multiple workers are permitted. */
+ workers_actual = 1; // 16;
}
else
__builtin_abort ();