Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] [selective access mode setting]

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] [selective access mode setting]


Chronologique Discussions 
  • From: Maxim Abalenkov <maxim.abalenkov@gmail.com>
  • To: Samuel Thibault <samuel.thibault@inria.fr>
  • Cc: starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] [selective access mode setting]
  • Date: Fri, 7 Sep 2018 16:00:32 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=maxim.abalenkov@gmail.com; spf=Pass smtp.mailfrom=maxim.abalenkov@gmail.com; spf=None smtp.helo=postmaster@mail-wr1-f47.google.com
  • Ironport-phdr: 9a23:6boOFxW53nalPRpEA6Ys2bOdh4PV8LGtZVwlr6E/grcLSJyIuqrYbByGt8tkgFKBZ4jH8fUM07OQ7/i/HzRYqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba9wIRmssQndqtQdjJd/JKo21hbHuGZDdf5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2Ao/8LrrgXMTRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VDK/5KpwVhTmlDkIOCI48GHPi8x/kqRboA66pxdix4LYeZyZOOZicq/Ye94RWGhPUdtLVyFZAo2ybJcAAOUcM+hWrYbzuVUOoxylCAa2GO/vzyVFhn/q0aA41ekqDAHI3BYnH9ILqHnaq8/6NagTUeCw0aLF0S7MYOlS2Tjj7ojIcRchoe+RVr93dMre00YuFwLAjlmKs4PqJCma1uATvGid7OpgUvyvhnUoqwF0uDevx8MshpPViYISz1DJ7CN0y5s7K92/TU50e9+kEJ1IuiGVNot2XsciTHtztyogy70Gvpi2dzUJxpQ/3xPTdeCLfoyS7h/gVOudOyl0iGx4dL6liBu/81CsxvDyW8WoylpHrSlInsPSun0CyxDf8MuKR/h780y8wziAzRrT5ftBIU0slarUNZohwrkom5oWq0vDHyv2lFz4ja+Ma0ko4+ao5uvlb7n8qZ+cMIh0ig76MqswgMCwHeM4Mg0WU2ia/+SzyqHj8FXnTLlWivA6iKrUvZDAKcgFuKK1HhVZ34kh5hqnCjepytUYnX0JLFJffxKHipDkO1TUL/H3DPe/hk6gny1wyP/cOr3uHJPNLnvEkLf/Zrt95EtcxxAyzdBb/Z5bFrYBIPfrVk/rqNPYFgM5MxCzw+v/E9V9ypkRWXiXAq+EKa/drEGH5vwxLOmIf4IVvDf9K+M55/71l3M5llEdfa6z3ZsYdn+0BPVmI0ODYXrtmNgNC2kKvhBtBNDt3WaLVCNeYz6OX6M27yw/FMryFo7GW42pxqCB3S2yA5lKTmFAEFGFV3nyIdaqQfAJPQebMs5k2hUOXLysTYwmy1n6sQbqyr8hJ+Dd/iAetpX9/Ndw7uzX0xo18GonXIymz2iRQjQszSszTDgs0fU6+BQlkwbR4e1Dm/VdUOdrybZMWwY+O4TbyrUjWd/3UwPFONyOTQT/G4n0MXQKVts0huQ2TQNlAdz710LM2iOrB/kekLnZXMVpoJKZ5GD4IoNG81iD1KQliAN7EM5GNGnjmbQmsgaPWMjGlEKWk6vsfqMZjnbA
  • 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>

Dear Samuel,

Thank you very much for your help. Can you please verify that I’m using the flag correctly? Please take a look at the below code snippet:

void core_starpu_zgetrf_pnl(plasma_desc_t A, struct starpu_data_descr dSeg,
                            plasma_pivot_t p, int u, int ldau, int ib, int prio)
{
    // Pointer to first tile in panel
    struct starpu_data_descr *dTile = plasma_tile_desc(A, 0, 0);

    // Set access modes for tiles in panel
     dTile->mode         = STARPU_RW;  // first
    (dTile+A.mt-1)->mode = STARPU_RW;  // last

    // middle
    for (int i = 1; i < A.mt-1; i++) {
        (dTile+i)->mode = STARPU_R;

        // @test
        starpu_data_set_sequential_consistency_flag((dTile+i)->handle, 0);
    }

    // Set access mode for pivots segment
    dSeg.mode = STARPU_W;

    int retval = starpu_task_insert(
       &core_starpu_codelet_zgetrf_pnl,
        STARPU_VALUE,               &A,         sizeof(plasma_desc_t),
        STARPU_DATA_MODE_ARRAY,      dTile,     A.mt,
        STARPU_DATA_MODE_ARRAY,     &dSeg,      1,
        STARPU_VALUE,               &p,         sizeof(plasma_pivot_t),
        STARPU_VALUE,               &u,         sizeof(int),
        STARPU_VALUE,               &ldau,      sizeof(int),
        STARPU_VALUE,               &ib,        sizeof(int),
        STARPU_PRIORITY,             prio,
        STARPU_NAME,               "zgetrf_pnl",
        0);

    STARPU_CHECK_RETURN_VALUE(retval,
            "core_starpu_zgetrf_pnl: starpu_task_insert() failed");

    // @test: middle
    for (int i = 1; i < A.mt-1; i++) {
        starpu_data_set_sequential_consistency_flag((dTile+i)->handle, 1);
    }
}

Here I am disabling and re-enabling the sequential data consistency for the intermediate matrix tiles (not the first and the last). What I would like to achieve is to disable dependency tracking for one particular task and then re-enable it. Is that possible? Am I doing it correctly?

Best wishes,
Maxim

Maxim Abalenkov \\ maxim.abalenkov@gmail.com
+44 7 486 486 505 \\ http://mabalenk.gitlab.io

On 6 Sep 2018, at 17:12, Samuel Thibault <samuel.thibault@inria.fr> wrote:

Maxim Abalenkov, le jeu. 06 sept. 2018 17:06:31 +0100, a ecrit:
Pass the first and the last data handles with STARPU_RW access modes and all
the intermediate handles as the normal STARPU_VALUE without any dependence
tracking. Would that work?

My mission is to simplify the DAG. I feel/believe too many (unnecessary)
dependencies slow down my code.

If the goal is to drop dependency tracking, you can simply disable
sequential consistency  for these data with
starpu_data_set_sequential_consistency_flag.

Normally, dependency tracking uses O(1) algorithms so it shouldn't be
too costly, but it's not harm checking if that's the case :)

Samuel




Archives gérées par MHonArc 2.6.19+.

Haut de le page