ITK/Release 4/GPU Acceleration/Tcon-2010-11-22

From KitwarePublic
Jump to navigationJump to search


  • Won Ki - Harvard University
  • Joe Stem - NVIDIA
  • Kimberly Powell - NVIDIA
  • Dennis Sessanna - NVIDIA
  • Luis Ibanez - Kitware Inc.



  • Quick summary of ITKv4 effort (Luis Ibanez)
  • Summary of ITK-GPU approach (Won Ki)


  • Level of abstraction ?
    • Joe suggests to look at OpenCV
      • Expose the interactions with the GPU
      • Most GPU programmers do things synchronously (so they unfortunately do too many data transfers, and don't get full benefit from the GPU).
  • Joe asked for typical Use Cases
    • We listed:
      • Radiology : 100Mb per image (512x512x200)
      • Microscopy : 10Gb
      • Video : 10Mb images, 30~100 frames per second.
  • CUDA vs OpenCL ?
    • Joe answers
    • OpenCL is better for asynchronous multi-GPU programming.
    • Reasons for using CUDA over OpenCL
      • Tedious API in OpenCL
      • Large collection of CUDA existing libraries
      • Performance optimization may be harder in OpenCL
    • Luis asked about vendor's commitment to OpenCL (for next 5 ~ 10 years)
      • Joe answers
        • NVIDIA supports the OpenCL standard (so, what is in OpenCL will be supported in NVidia cards)
        • Some third party vendors are doing CUDA for NVidia platforms and OpenCL for other platforms (splitting the effort)
        • Translation from CUDA to OpenCL is straight forward. (having a dual implementation may be lower than twice the effort)
        • Other options CUDA x86 compiler coming up (commercial product)
        • Translator from CUDA to OpenCL (need to find links to it)
  • Won: OpenCV & CUDA who did it ?
    • Joe : The OpenCV developers (Willow Garage)(code is in current SVN)
  • Won: How distribution happens (NVidia mpp libs)
    • Joe : binary (pre-build) downloads are available, and source code is also available.
  • Won: GPU code Testing ?
    • Joe : existing regression test framework (we - itkv4 devs - should look at it)
      • Nvidia can suggest the sub-set of card families that should be tested. (e.g. major versions of drivers)
        • There will also be families of OS (Windows 7 / Vista / XP ) to test (whild MacOSX / Linux should behave very similar).