Accéder au contenu.
Menu Sympa

starpu-devel - [Starpu-devel] Performance issues when specifying const and __attribute__ ((output))

Objet : Developers list for StarPU

Archives de la liste

[Starpu-devel] Performance issues when specifying const and __attribute__ ((output))


Chronologique Discussions 
  • From: Mehdi AMINI <mehdi.amini@silkan.com>
  • To: starpu-devel@lists.gforge.inria.fr
  • Subject: [Starpu-devel] Performance issues when specifying const and __attribute__ ((output))
  • Date: Mon, 02 Jul 2012 12:10:08 +0200
  • List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel>
  • List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>

Hi,

I'm still playing with the GCC plugin.

I have a quite simple code :

/* Start timer. */
timer_start();

p4a_launcher_main(s, ny);
p4a_launcher_main_1((double *)A, p, q, nx, ny);
for(i = 0; i <= nx-1; i += 1) {
double r_0 = r[i];
p4a_launcher_main_2((double *)A, s, i, ny, r_0);
}
/* Stop and print timer. */
#pragma starpu unregister s
#pragma starpu unregister q
timer_stop_display();

A,r,s,p,q are arrays registered to StarPU. The p4a_launcher_xxxx functions are tasks that launch very simple CUDA kernel. A CPU implementation is also given but is avoided at runtime using STARPU_NCPUS environment variable.



I tried to make use of "const" qualifier and "__attribute__((output))" on task parameter to hint StarPU about the data transfer.

However it seems to impact badly the runtime since using only one GPU I get the following execution time:


$ STARPU_NCUDA=1 STARPU_NCPUS=0 ./bicg_starpu_naive
192.2
$ STARPU_NCUDA=1 STARPU_NCPUS=0 ./bicg_starpu
746.5

Nearly four times slower !
Using CUDA_PROFILE=1 environment variable I confirmed that the GPU time is very close for both execution, and that the only difference is the few more data transfers for the fastest naive version.

Is it a known issue or do you have hints to explain this behavior?

Thanks,

Mehdi





Archives gérées par MHonArc 2.6.19+.

Haut de le page