Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3F64B200CB8 for ; Sat, 17 Jun 2017 06:35:45 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3DEEA160BEB; Sat, 17 Jun 2017 04:35:45 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 832AB160BDD for ; Sat, 17 Jun 2017 06:35:44 +0200 (CEST) Received: (qmail 24294 invoked by uid 500); 17 Jun 2017 04:35:43 -0000 Mailing-List: contact dev-help@systemml.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@systemml.apache.org Delivered-To: mailing list dev@systemml.apache.org Received: (qmail 24282 invoked by uid 99); 17 Jun 2017 04:35:42 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 17 Jun 2017 04:35:42 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 7DDA4180715 for ; Sat, 17 Jun 2017 04:35:42 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.129 X-Spam-Level: ** X-Spam-Status: No, score=2.129 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=googlemail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id cqgEHivllmUA for ; Sat, 17 Jun 2017 04:35:40 +0000 (UTC) Received: from mail-vk0-f41.google.com (mail-vk0-f41.google.com [209.85.213.41]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 0B30B5F341 for ; Sat, 17 Jun 2017 04:35:40 +0000 (UTC) Received: by mail-vk0-f41.google.com with SMTP id 191so31037027vko.2 for ; Fri, 16 Jun 2017 21:35:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=jW4ySgkz3sx6VKF2csftj6WgGB5ZKXBoyShZauKBXnA=; b=J18TdO9U3O729ve/Q4n486TpJCI75JkUAfU3Pf6UccscRQX2SRlVADimek4XUmR3ng cKKzPbeS/pvUhWIFFa9UGUN6nQXE2Yq6FPX/TOPq7Vxx1hxzRs7y2ltw5bVJWcWvF+nN 0T9lkJ58sBNpVE64eD+xMREh1MsU69oNaMoYFqgQeLW10eAqkVeaWZyOYJoF0WXwBBIR AzEMwFCkf6pf4Hvn5O9P5Er1kpkQixXTugiHuxkga/gtrQDy2GfkKwqSzwEdVymUYd1Y uHYT5x7tSduQnYL0ehtCI3HOgi4qISzZwhkhnlKJhxGUqBJD/fE7iRag/HzDs6LoSzKp UfFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=jW4ySgkz3sx6VKF2csftj6WgGB5ZKXBoyShZauKBXnA=; b=VaXU575IfEW7WMrsR61TozH1oJx/KjsAt47Cdpy/rhGBOBIG83y3VhYk/mX9MNugEw DPqTKX5QNkezmvC/GC/S0evJMSOUQSdlfQ4t9a1DtWOfFviwbgyMRljuqSAcWhM6nkGF bT5mkUv1zXXs275SKlMLIQl0G1RTzgWsfQjMEaOiowVMBSnrKf2QnVagTTiOoiRSeAX/ Zf9cWd5AEd356prID5/NMzVrW1UxUphJanfvtb14gQOlrMkfLyfbCtOTOPOy0JaXuqyZ zGud6mq48l5XMZrvJ0dUftrhd82LJZbjMMwTVRfX7x+kTVdYXI2SxJEkjD6rusrXMH1r 45vw== X-Gm-Message-State: AKS2vOzgSzmbuJTPezYr+2Ku01SZP/EiX4aTmKDMWyWjrxD2jw6RshY1 Rtb+hoPTZt2esWMHTfVXbGA19vz+9A== X-Received: by 10.31.106.3 with SMTP id f3mr7870343vkc.101.1497674139481; Fri, 16 Jun 2017 21:35:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.32.166 with HTTP; Fri, 16 Jun 2017 21:35:39 -0700 (PDT) From: Matthias Boehm Date: Fri, 16 Jun 2017 21:35:39 -0700 Message-ID: Subject: Re: Parfor loop interdependencies To: dev@systemml.apache.org Content-Type: multipart/alternative; boundary="001a114db3aa12bb060552206f23" archived-at: Sat, 17 Jun 2017 04:35:45 -0000 --001a114db3aa12bb060552206f23 Content-Type: text/plain; charset="UTF-8" ok thanks for catching this Mike - I just gave it a try and the new IPA propagated scalars into this function, which allowed for constant folding of the indexing expressions, and effectively hid the underlying issue. With disabled IPA, I'm able to reproduce this issue. Interestingly, it only shows up in spark but not hadoop execution modes. Regards, Matthias On Fri, Jun 16, 2017 at 5:35 PM, wrote: > On the latest master, versus the one from a few days ago, this issue > appears to be "fixed". The code is in PR 542, and the for-loop in the > `nn/layers/conv2d_depthwise.dml::forward` function was the one that was > previously resulting in null pointer exceptions when forced as a parfor > loop. The `check=0` is still needed, but the null pointer is no longer > being thrown. > > -- > > Mike Dusenberry > GitHub: github.com/dusenberrymw > LinkedIn: linkedin.com/in/mikedusenberry > > Sent from my iPhone. > > > > On Jun 14, 2017, at 9:08 PM, Matthias Boehm > wrote: > > > > Generally, the parfor dependency analysis applies a series of tests > > including traditional techniques from high-performance compilers combined > > with additional rules for common cases. This dependency analysis tries to > > proof that there are no loop-carried dependencies - so yes, false > positives > > can happen, in which case a user needs to take responsibility by > disabling > > the dependency analysis. > > > > Regarding your concrete problem - any null pointer exception is of course > > bug and needs fixing. Could you please create a minimal scenario that > > reproduces this issues and create a JIRA for it. I'm happy to help > > resolving this. > > > > Regards, > > Matthias > > > >> On Wed, Jun 14, 2017 at 4:24 PM, wrote: > >> > >> While working on depthwise convolution, I wanted to make use of a parfor > >> loop to run multiple convolutions at once (there is a vectorized > approach > >> as well, but that is out of scope for this question), but I'm running > into > >> issues with false flags for loop interdependencies. Within the parfor > >> body, I am performing left-indexing over unique ranges to store results > in > >> a variable `out`, and the engine currently expresses concerns regarding > >> this variable. The range bounds are short expressions, and I have > printed > >> out the ranges to be absolutely sure that they are unique. If I use > >> `check=0`, then the engine dies with a null pointer exception. > >> > >> What is the current strategy used for determining inter-loop > dependencies > >> for parfor statements? How can we improve this? > >> > >> -Mike > >> > >> -- > >> > >> Mike Dusenberry > >> GitHub: github.com/dusenberrymw > >> LinkedIn: linkedin.com/in/mikedusenberry > >> > >> Sent from my iPhone. > >> > >> > --001a114db3aa12bb060552206f23--