From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=AWL,DNS_FROM_RFC_POST, SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 90D18BB84 for ; Thu, 11 Dec 2008 11:04:54 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: An4BAJt0QElKfS4eimdsb2JhbACTDz4BAQEKCQwHDwWodoEEjCMBAwEDgnQ X-IronPort-AV: E=Sophos;i="4.33,752,1220220000"; d="scan'208";a="20228860" Received: from yw-out-2324.google.com ([74.125.46.30]) by mail3-smtp-sop.national.inria.fr with ESMTP; 11 Dec 2008 11:04:54 +0100 Received: by yw-out-2324.google.com with SMTP id 5so413266ywb.3 for ; Thu, 11 Dec 2008 02:04:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=tJutkBK0TZGkP0s0A00oVh3Zyf+nwRbTDl+jLuf/bcM=; b=xz18VakBkPk+EFENOELlWbNKjJeNR8asFCcmx+oaOtCzQhnqh5ibVrreK8dkGMO0+F xexANpo8s+dxXM3ndzsSoxXuXEDrTc94Q3Vk/pnueLi13pL2dgXnxHRXS517sUuOceKw wT+SNV6IiRPEGQP8oBKid3tNSDoEuV0WZrTUI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=A1tX0bb5p0mm0ocMir/fYoeKBStg1HepsvNmGrdrf3uopYqJCt926iXDlrlTNpjIv+ 5vCksvQX+VTNzHWMcLEc+dsoE+Lh6mlfi21eqhohSRrd6Wht+Evth87rOyTJz7Qj57Xd TTJCx0aLAduSn3gE27q2MEtTHMiCL7jBe7qZA= Received: by 10.150.121.2 with SMTP id t2mr3323499ybc.63.1228989892828; Thu, 11 Dec 2008 02:04:52 -0800 (PST) Received: by 10.151.128.1 with HTTP; Thu, 11 Dec 2008 02:04:52 -0800 (PST) Message-ID: <23738f080812110204l4dd6ddces99a5f5b35f3bab1e@mail.gmail.com> Date: Thu, 11 Dec 2008 21:04:52 +1100 From: "Sashan Govender" To: caml-list@yquem.inria.fr Subject: daml - a CUDA binding MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam: no; 0.00; ocaml:01 ocaml:01 runtime:01 camlidl:01 gotta:98 integer:01 data:02 data:02 api:02 api:02 kernel:02 binding:02 binding:02 deallocate:03 uploaded:03 Hi I've uploaded some work on a CUDA binding to OCaml that I've been doing in my spare time over here https://forge.ocamlcore.org/projects/daml/. Here's a brief summary of what you can do with it at the moment: - allocate memory on a gpu - deallocate that resource - copy and integer array from OCaml onto the gpu - execute a kernel function to process the data on the gpu - copy the result back into the OCaml array. There are a few example programs in the repository as well. Pretty basic but gotta start somewhere and my time for free software is limited. Things to todo: - Devise a strategy for minimizing copies from the host data structure to the gpu. - Expose more of the CUDA runtime API (this can for the most part be done with camlidl) - Expose the CUDA driver API. - Write some more example progams. - Tidy up the OMakefiles. Any feedback appreciated. There's a mailing list here daml-users@lists.forge.ocamlcore.org for questions. -- sashan http://sashang.orcon.net.nz/