mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-02 00:56:08 +08:00
[nvptx] Enable large vectors
Allow vector_length clauses to accept values larger than warp size. Note that this does not enable setting vector_length to values larger than warp size using -fopenacc-dim. 2019-01-12 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector lengths into account. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect vector length to be 128. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector length 2097152 to be reduced to 1024 instead of 32. From-SVN: r267889
This commit is contained in:
parent
6f7814d08f
commit
2b9d9e3937
@ -1,3 +1,8 @@
|
||||
2019-01-12 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
|
||||
lengths into account.
|
||||
|
||||
2019-01-12 Svante Signell <svante.signell@gmail.com>
|
||||
|
||||
* config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
|
||||
|
@ -96,7 +96,7 @@
|
||||
#define PTX_NUM_PER_WORKER_BARRIERS (PTX_CTA_NUM_BARRIERS - PTX_NUM_PER_CTA_BARRIERS)
|
||||
|
||||
#define PTX_DEFAULT_VECTOR_LENGTH PTX_WARP_SIZE
|
||||
#define PTX_MAX_VECTOR_LENGTH PTX_WARP_SIZE
|
||||
#define PTX_MAX_VECTOR_LENGTH PTX_CTA_SIZE
|
||||
#define PTX_WORKER_LENGTH 32
|
||||
#define PTX_DEFAULT_RUNTIME_DIM 0 /* Defer to runtime. */
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2019-01-12 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect
|
||||
vector length to be 128.
|
||||
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector
|
||||
length 2097152 to be reduced to 1024 instead of 32.
|
||||
|
||||
2019-01-11 Thomas Schwinge <thomas@codesourcery.com>
|
||||
James Norris <jnorris@codesourcery.com>
|
||||
|
||||
|
@ -350,7 +350,7 @@ int main ()
|
||||
int gangs_min, gangs_max, workers_min, workers_max, vectors_min, vectors_max;
|
||||
gangs_min = workers_min = vectors_min = INT_MAX;
|
||||
gangs_max = workers_max = vectors_max = INT_MIN;
|
||||
#pragma acc parallel copy (vectors_actual) /* { dg-warning "using vector_length \\(32\\), ignoring 2097152" "" { target openacc_nvidia_accel_configured } } */ \
|
||||
#pragma acc parallel copy (vectors_actual) /* { dg-warning "using vector_length \\(1024\\), ignoring 2097152" "" { target openacc_nvidia_accel_configured } } */ \
|
||||
vector_length (VECTORS)
|
||||
{
|
||||
if (acc_on_device (acc_device_host))
|
||||
@ -361,7 +361,7 @@ int main ()
|
||||
else if (acc_on_device (acc_device_nvidia))
|
||||
{
|
||||
/* The GCC nvptx back end enforces vector_length (32). */
|
||||
vectors_actual = 32;
|
||||
vectors_actual = 1024;
|
||||
}
|
||||
else
|
||||
__builtin_abort ();
|
||||
|
@ -33,7 +33,6 @@ main (void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* { dg-prune-output "using vector_length \\(32\\), ignoring 128" } */
|
||||
|
||||
/* { dg-final { scan-offload-tree-dump "__attribute__\\(\\(oacc function \\(1, 1, 32\\)" "oaccdevlow" } } */
|
||||
/* { dg-output "nvptx_exec: kernel main\\\$_omp_fn\\\$0: launch gangs=1, workers=1, vectors=32" } */
|
||||
/* { dg-final { scan-offload-tree-dump "__attribute__\\(\\(oacc function \\(1, 1, 128\\)" "oaccdevlow" } } */
|
||||
/* { dg-output "nvptx_exec: kernel main\\\$_omp_fn\\\$0: launch gangs=1, workers=1, vectors=128" } */
|
||||
|
Loading…
Reference in New Issue
Block a user