Accéder au contenu.
Menu Sympa

starpu-devel - [Starpu-devel] Device OpenCL monopolisant 1 cœur CPU + usage CPU

Objet : Developers list for StarPU

Archives de la liste

[Starpu-devel] Device OpenCL monopolisant 1 cœur CPU + usage CPU


Chronologique Discussions 
  • From: Paul Godard <paul.godard@caldera.com>
  • To: starpu-devel@lists.gforge.inria.fr
  • Subject: [Starpu-devel] Device OpenCL monopolisant 1 cœur CPU + usage CPU
  • Date: Wed, 21 Dec 2016 16:41:05 +0100
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=paul.godard@caldera.com; spf=Pass smtp.mailfrom=paul.godard@caldera.com; spf=None smtp.helo=postmaster@mail-wj0-f180.google.com
  • Ironport-phdr: 9a23:/squBB8Aj1mK6v9uRHKM819IXTAuvvDOBiVQ1KB+2uocTK2v8tzYMVDF4r011RmSDN6du6gP1bSe8/i5HzdfsdDZ6DFKWacPfiFGoP1epxYnDs+BBB+zB9/RRAt+Iv5/UkR49WqwK0lfFZW2TVTTpnqv8WxaQU2nZkImbtjyT5XOht6vyqW+9oPeZy1MhSGhevV9IhKsogiXt88MgIIkJLxi5AHOpy5wcvlSjUxvKVuJk16o/s6t+Nhs9ChZof4J/MdEXajgduIzSrkOX2duCHw8+MC+7UqLdgCI/HZJCmg=
  • 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>

Bonjour,

Je fais fasse à un comportement étrange de StarPU auquel je n'ai trouvé aucune mention dans la documentation.

Il semblerait que StarPU attribue 1 cœur CPU pour chaque device OpenCL présent sur ma machine. Et retire ainsi ces cœurs CPU des workers utilisables.
Voir la pièce jointe shell.sh dans laquelle je compare l'exécution du même programme selon que l'ICD OpenCL de Nvidia soit présent ou non désactivant ainsi la détection des devices OpenCL.

Le code d'exemple est également en pièce jointe et la version de StarPU utilisée est la dernière, 1.2.0 .
Ma machine dispose d'un Intel i5-3470 (4 cœurs physiques non-hyperthreadés), et de 2 GPU Nvidia.

Ce comportement est-il normal ?


D'autre part, lorsque je désactive l'implémentation OpenCL du codlet (mise en commentaire de la ligne 18 de main.c), je n'ai toujours que 2 workers d'identifié par StarPU, mais pendant l'exécution j'ai 2 cœurs de mon CPU qui atteigne 100% d'utilisation (d'après la commande htop), hors les codlets CPU n'ont pour mission que de faire un sleep(2). Il semblerait d'ailleurs que les 2 cœurs à 100% soit ceux non listés comme worker par StarPU.

Là aussi, cette charge CPU est-elle normale ?


Cordialement,
Paul Godard
Doctorant équipe ICPS, ICube, Strasbourg

Attachment: starpu-test-worker.tar.bz2
Description: application/bzip

starpu-test-worker$ ./bug
[starpu][starpu_initialize] Warning: StarPU was configured with --with-fxt,
which slows down a bit
[starpu][initialize_eager_center_policy] Warning: you are running the default
eager scheduler, which is not a very smart scheduler. Make sure to read the
StarPU documentation about adding performance models in order to be able to
use the dmda or dmdas scheduler instead.
-> 'STARPU_OPENCL_WORKER' 'OpenCL 0 (Quadro K600 0.9 GiB)'
-> 'STARPU_OPENCL_WORKER' 'OpenCL 1 (Quadro 600 0.9 GiB)'
-> 'STARPU_CPU_WORKER' 'CPU 0'
-> 'STARPU_CPU_WORKER' 'CPU 1'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'OpenCL 1 (Quadro 600 0.9 GiB)'
Hello World depuis le CPU 'OpenCL 0 (Quadro K600 0.9 GiB)'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'OpenCL 1 (Quadro 600 0.9 GiB)'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'OpenCL 0 (Quadro K600 0.9 GiB)'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'OpenCL 1 (Quadro 600 0.9 GiB)'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'OpenCL 0 (Quadro K600 0.9 GiB)'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'OpenCL 1 (Quadro 600 0.9 GiB)'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'OpenCL 0 (Quadro K600 0.9 GiB)'
Hello World depuis le CPU 'CPU 1'
^C
starpu-test-worker$ sudo mv /etc/OpenCL/vendors/nvidia.icd /tmp/
starpu-test-worker$ ./bug
[starpu][starpu_initialize] Warning: StarPU was configured with --with-fxt,
which slows down a bit
[starpu][check_bus_config_file] Current configuration does not match the bus
performance model (OpenCL: (stored) 2 != (current) 0), recalibrating...
[starpu][check_bus_config_file] ... done
[starpu][initialize_eager_center_policy] Warning: you are running the default
eager scheduler, which is not a very smart scheduler. Make sure to read the
StarPU documentation about adding performance models in order to be able to
use the dmda or dmdas scheduler instead.
-> 'STARPU_CPU_WORKER' 'CPU 0'
-> 'STARPU_CPU_WORKER' 'CPU 1'
-> 'STARPU_CPU_WORKER' 'CPU 2'
-> 'STARPU_CPU_WORKER' 'CPU 3'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'CPU 2'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'CPU 3'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'CPU 2'
Hello World depuis le CPU 'CPU 3'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'CPU 2'
Hello World depuis le CPU 'CPU 3'
Hello World depuis le CPU 'CPU 1'
Hello World depuis le CPU 'CPU 0'
Hello World depuis le CPU 'CPU 2'
Hello World depuis le CPU 'CPU 3'
^C
starpu-test-worker$


  • [Starpu-devel] Device OpenCL monopolisant 1 cœur CPU + usage CPU, Paul Godard, 21/12/2016

Archives gérées par MHonArc 2.6.19+.

Haut de le page