Results 1 to 4 of 4

Thread: NVIDIA's CUDA/OpenCL PTX Back-End In LLVM 3.2

  1. #1
    Join Date
    Jan 2007
    Posts
    15,613

    Default NVIDIA's CUDA/OpenCL PTX Back-End In LLVM 3.2

    Phoronix: NVIDIA's CUDA/OpenCL PTX Back-End In LLVM 3.2

    In preparing for the imminent release of LLVM 3.2, another worthwhile feature to go over is the NVPTX back-end that's been merged for this forthcoming open-source compiler infrastructure release. The NVPTX LLVM back-end is what's used by NVIDIA's closed-source driver for its CUDA and OpenCL compiler...

    http://www.phoronix.com/vr.php?view=MTI1NDU

  2. #2
    Join Date
    Dec 2012
    Posts
    1

    Default

    can someone please explain exactly what this means? I found an explanation on Wikipedia which says:

    "Parallel Thread Execution (PTX) is a pseudo-assembly language used in Nvidia's CUDA programming environment. The nvcc compiler translates code written in CUDA, a C-like language, into PTX, and the graphics driver contains a compiler which translates the PTX into a binary code which can be run on the processing cores."

    but then I went to the LLVM site, to the Wikipedia entry for LLVM, and found nothing related to CUDA or even NVIDIA for that matter. it seems there is a missing piece I do not have in understanding what LLVM is for CUDA/OpenCL and how this new version has any impact on them.

  3. #3
    Join Date
    Sep 2007
    Posts
    365

    Default

    Your missing piece of the puzzle is that nvcc is based upon llvm.

    I'm wondering... now that this cuda frontend is merged into llvm, shouldn't it be possible to compile cuda into something ATI cards can use?

  4. #4
    Join Date
    Feb 2012
    Posts
    15

    Default

    Well, nVidia needs to develop and maintain a complete compiler infrastructure (nvcc) to produce PTX code from CUDA or OpenCL. Theoretically, by hiding more technical aspects of the GPU by a well defined ABI and API, opening their PTX would "move" all effords in maintaining a compiler like nvcc more towards an open source project. PTX is the last stage of code abstraction which is "open and free", the binary code, executable by the GPU itself, is then performed by the driver itself.

    The question is how "open" this code and execution pathway really is. If LLVM is capable of producing high quality PTX code executable by the nVidia driver, then open libraries like POCL (portable OpenCL) with the proper backend can be used to drive the GPGPU use on any platform which can handle POCL.

    But such a conclusion is only possible if all the details are known - and so the pitfalls.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •