87c3fcfa6b
libgomp/ * testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: Adjust to GNU coding style. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-gcn.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: Likewise.
77 lines
2.0 KiB
C
77 lines
2.0 KiB
C
/* Test the `acc_get_property' and '`acc_get_property_string' library
|
|
functions by printing the results of those functions for all devices
|
|
of all device types mentioned in the OpenACC standard.
|
|
|
|
See also acc_get_property.f90. */
|
|
/* { dg-do run } */
|
|
|
|
#include <openacc.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
/* Print the values of the properties of all devices of the given type
|
|
and do basic device independent validation. */
|
|
|
|
void
|
|
print_device_properties (acc_device_t type)
|
|
{
|
|
const char *s;
|
|
size_t v;
|
|
|
|
int dev_count = acc_get_num_devices (type);
|
|
|
|
for (int i = 0; i < dev_count; ++i)
|
|
{
|
|
printf (" Device %d:\n", i+1);
|
|
|
|
s = acc_get_property_string (i, type, acc_property_vendor);
|
|
printf (" Vendor: %s\n", s);
|
|
if (s == NULL || *s == 0)
|
|
{
|
|
fprintf (stderr, "acc_property_vendor should not be null or empty.\n");
|
|
abort ();
|
|
}
|
|
|
|
v = acc_get_property (i, type, acc_property_memory);
|
|
printf (" Total memory: %zu\n", v);
|
|
|
|
v = acc_get_property (i, type, acc_property_free_memory);
|
|
printf (" Free memory: %zu\n", v);
|
|
|
|
s = acc_get_property_string (i, type, acc_property_name);
|
|
printf (" Name: %s\n", s);
|
|
if (s == NULL || *s == 0)
|
|
{
|
|
fprintf (stderr, "acc_property_name should not be null or empty.\n");
|
|
abort ();
|
|
}
|
|
|
|
s = acc_get_property_string (i, type, acc_property_driver);
|
|
printf (" Driver: %s\n", s);
|
|
if (s == NULL || *s == 0)
|
|
{
|
|
fprintf (stderr, "acc_property_string should not be null or empty.\n");
|
|
abort ();
|
|
}
|
|
}
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
printf ("acc_device_none:\n");
|
|
/* For completness; not expected to print anything since there
|
|
should be no devices of this type. */
|
|
print_device_properties (acc_device_none);
|
|
|
|
printf ("acc_device_default:\n");
|
|
print_device_properties (acc_device_default);
|
|
|
|
printf ("acc_device_host:\n");
|
|
print_device_properties (acc_device_host);
|
|
|
|
printf ("acc_device_not_host:\n");
|
|
print_device_properties (acc_device_not_host);
|
|
}
|