From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 558B380175 for ; Thu, 15 Jun 2017 09:09:48 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=ronan.lehy@gmail.com; spf=Pass smtp.mailfrom=ronan.lehy@gmail.com; spf=None smtp.helo=postmaster@mail-wr0-f172.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of ronan.lehy@gmail.com) identity=pra; client-ip=209.85.128.172; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="ronan.lehy@gmail.com"; x-sender="ronan.lehy@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of ronan.lehy@gmail.com designates 209.85.128.172 as permitted sender) identity=mailfrom; client-ip=209.85.128.172; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="ronan.lehy@gmail.com"; x-sender="ronan.lehy@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-wr0-f172.google.com) identity=helo; client-ip=209.85.128.172; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="ronan.lehy@gmail.com"; x-sender="postmaster@mail-wr0-f172.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AapnC6R80BKhuc/9uRHKM819IXTAuvvDOBiVQ1KB4?= =?us-ascii?q?1OgcTK2v8tzYMVDF4r011RmSDNqds6oMotGVmpioYXYH75eFvSJKW713fDhBt/?= =?us-ascii?q?8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1?= =?us-ascii?q?Ifn+FpLPg8it2e2//5/ebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+?= =?us-ascii?q?RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTF?= =?us-ascii?q?UACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMNboRr4oRzut86ZrSAfpiC?= =?us-ascii?q?gZMT457HrXgdF0gK5CvR6tuwBzz4vSbYqINvRxY7ndcMsYSmpPXshfWS9PDJ6i?= =?us-ascii?q?YYQTAOQMJvpYr5DnqlcSsReyGQuhCeXywTFInH/22qg63vw9HwHB2gwvBdQOu2?= =?us-ascii?q?nSotrrKawcU+C0x7TPwDXZaPNW3y3y6I7SfhAlv/6MXbJxfNHeyUkqDQzFj1GQ?= =?us-ascii?q?pZb5MDOS0+QAqm6W5PdjW+K3k2MrtR19rzy1ysovioTFnJ8Zxk7H+Clj3Yo4J8?= =?us-ascii?q?O0RUhmatC+CpRQrTuVN45uT8MiXW5ovCE6x6UDuZGhfSgKzI0rxhDFa/CbaoSI?= =?us-ascii?q?7A/vWeSPLTtii3Jlf7W/hxm28Ue+0OHzSs600FNSoipElNnDqGwN2gTN5sSbTv?= =?us-ascii?q?Zx5ESs1DaV2wzO9O1JIlo4mbfZJpI/2rIwk4AcsUXHHi/4gkX2i6qWe10++uiv?= =?us-ascii?q?7eToeLPmqoWYN4BqigH/Mr8jmsO6AesiMwgOW3KX9vi71L3m5UH5WqlFjuUqkq?= =?us-ascii?q?nFt5DXPdgUqbS8Aw9Ry4oj7xe/Dyy60NkDhnkGLFdFeAqdgITzOlHOJur4Dfal?= =?us-ascii?q?jFi2njdr3aOOArq0LI/EKHPEkaypV5tHxmhz5TB7mdpS/Z9SBbwbCPjyXVX8u5?= =?us-ascii?q?rbHwIiMxHx3qDuA5N/ztVNd3iIB/qjN6Xbtxes66oPMqHYfogTsTC7L/Ul9tbh?= =?us-ascii?q?iHY4nRkWeqz/jshfU2yxAvkzexbRWnHrmNpUVD5S5gc=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CMAQBgMUJZf6yAVdFdDg8BBQELARgBB?= =?us-ascii?q?QELAYUcB4NvpSqOfoYkAoJPB0IVAQEBAQEBAQEBAQESAQEJCwsIJjGCMyQBgkE?= =?us-ascii?q?DAyMEGQEbDw4BAwwGBQsPAiYCAiIBEQEFARwGE4oTAQMVnmQ/jAiBbBgFARyDC?= =?us-ascii?q?gWDYAoZJw1WgzIBAQEBBgIBHQIGEnmHN4MihGqDEoJhBZ5Jk1SSC5M3FB+BFTW?= =?us-ascii?q?BLHReGYRlRIEOQT42iVIBAQE?= X-IPAS-Result: =?us-ascii?q?A0CMAQBgMUJZf6yAVdFdDg8BBQELARgBBQELAYUcB4NvpSq?= =?us-ascii?q?OfoYkAoJPB0IVAQEBAQEBAQEBAQESAQEJCwsIJjGCMyQBgkEDAyMEGQEbDw4BA?= =?us-ascii?q?wwGBQsPAiYCAiIBEQEFARwGE4oTAQMVnmQ/jAiBbBgFARyDCgWDYAoZJw1WgzI?= =?us-ascii?q?BAQEBBgIBHQIGEnmHN4MihGqDEoJhBZ5Jk1SSC5M3FB+BFTWBLHReGYRlRIEOQ?= =?us-ascii?q?T42iVIBAQE?= X-IronPort-AV: E=Sophos;i="5.39,342,1493676000"; d="scan'208";a="228374553" Received: from mail-wr0-f172.google.com ([209.85.128.172]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 15 Jun 2017 09:09:47 +0200 Received: by mail-wr0-f172.google.com with SMTP id q97so8219307wrb.2 for ; Thu, 15 Jun 2017 00:09:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=RdW1ettlOmXbFkDqsiDg8bzj7YI0MSlfFeNMynL7uLE=; b=QM7+ml55yTJcklA2lyCVdXlRAHaosBvQtx3m3nnFe1jpxs4i+ZRRzOnYZrx4yhLpGS sDXRMoQpjpaHSBkAv4CggCFzD/iIFD+MUZ4EMwscVXAZ3zjMwQfOoqy6mKH5TVGv6aAo T6ucTgmDEYzA8BBpkg0IqzTKdEsyfBt0Fo+XlMwfMFBLnC5/7FLgXEyMuGpgEr5Rcn01 lwB2Po3/sbcQFPpcw0ilBfcdofvlNSz1g2HpjWUF/ZxZEZkveblmTxDgq23ee83lLFND QWy0F/AdcUyAUwGo6W4nrlvAnMSR1pfiZiux5Am1U6lA6j1Nbd0m6zVjKJ8Y8ZmuBKRV JXAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=RdW1ettlOmXbFkDqsiDg8bzj7YI0MSlfFeNMynL7uLE=; b=ppQ7DuCesUzbvdGgYqoBfyb4VUpKndV7KXWnyS+MQUwC0wCUiZ0nPxPJtYeViHmaJM Zw1f8EAScCh90n0AUsmegb078O3lN0LgPDnVWdAxYuwEYMuDVelwCn5yq5lgVh2d4BuL 33LuezPK6cdLMjJItBOYkgTI8ZYzTJQ74fQbMyqaJHiYD20S3L4Xx5F/qork9FZ78GoK 1Tx+ql7/4+Isvxj1US4w282e20fweDeq9S5uLKDMCDZvvgscZrQlk74dtbLlD65bSg3J d5+TCFQ17Wf6hsSTrAUWcdbDHy6XqBw6dspXJgOeKE6hNkkns25SxbE1wVXBPUKqx14m vw7A== X-Gm-Message-State: AKS2vOwbOTVC/wWL8hPYzku0ZuXsXDvMeNj13Jajl4p+Y4xeZsrKnXUS js800JBvgNErpzoWcyPWXbbYMCX/lg== X-Received: by 10.28.138.194 with SMTP id m185mr2471179wmd.86.1497510587172; Thu, 15 Jun 2017 00:09:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.150.82 with HTTP; Thu, 15 Jun 2017 00:09:26 -0700 (PDT) In-Reply-To: <412f58b7-8a8b-2356-2626-e1bd010be683@bioreg.kyushu-u.ac.jp> References: <412f58b7-8a8b-2356-2626-e1bd010be683@bioreg.kyushu-u.ac.jp> From: Ronan Le Hy Date: Thu, 15 Jun 2017 09:09:26 +0200 Message-ID: To: Francois BERENGER Cc: OCaml Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] Can this code be accelerated by porting it to SPOC, SAREK or MetaOCaml ? Hi Fran=C3=A7ois, 2017-06-15 8:28 GMT+02:00 Francois BERENGER : > I am wondering if some high performance OCaml experts out there > can know in advance if some code can go faster by executing it > on a GPU. > I have some clear bottleneck in my program. > Here is how the code looks like: > --- > let f (points: (Vector3.t * float) list) =3D > let acc =3D ref [] in > let ac p1 x (p2, y) =3D > acc :=3D (Vector3.dist p1 p2, x *. y) :: !acc > in > let rec loop =3D function > | [] -> () > | (p1, x) :: xs -> > L.iter (ac p1 x) xs; > loop xs > in > loop points; > !acc As a baseline before attempting anything on the GPU, I'd vectorize this. Put all your vectors in a big matrix. Put all your numbers in a vector. Compute the distances and the products all at once using Lacaml (make sure you use OpenBLAS as a backend). I'd expect it to be much faster than the above loop already. --=20 Ronan