pgcc

openACC passing a list of struct

杀马特。学长 韩版系。学妹 提交于 2020-01-05 04:27:09
问题 I have a C program to find whether 2 sets of polygons are overlapped. User input 2 sets of polygon (each set of data has several thousands polygons) and the program see which polygon in set1 overlap with which polygon in set2 I have 2 struct like these: struct gpc_vertex /* Polygon vertex */ { double x; double y; }; struct gpc_vertex_list /* Polygon contour */ { int pid; // polygon id int num_vertices; double *mbr; // minimum bounding rectangle of the polygon, so always 4 elements }; I have

Using OpenACC to parallelize nested loops

五迷三道 提交于 2019-12-30 03:36:08
问题 I am very new to openacc and have just high-level knowledge so any help and explanation of what I am doing wrong would be appreciated. I am trying to accelerate(parallelize) a not so straightforward nested loop that updates a flattened (3D to 1D) array using openacc directives. I have posted a simplified sample code below that when compiled using pgcc -acc -Minfo=accel test.c gives the following error: call to cuStreamSynchronize returned error 700: Illegal address during kernel execution

Using OpenACC to parallelize nested loops

℡╲_俬逩灬. 提交于 2019-11-30 10:33:56
I am very new to openacc and have just high-level knowledge so any help and explanation of what I am doing wrong would be appreciated. I am trying to accelerate(parallelize) a not so straightforward nested loop that updates a flattened (3D to 1D) array using openacc directives. I have posted a simplified sample code below that when compiled using pgcc -acc -Minfo=accel test.c gives the following error: call to cuStreamSynchronize returned error 700: Illegal address during kernel execution Code: #include <stdio.h> #include <stdlib.h> #define min(a,b) (a > b) ? b : a #define max(a,b) (a < b) ? b