Graphics processing unit

Home and Applets > FAQ > About Java > About Graphics Processing Unit

  1. CUDA

    CUDA stands for Compute Unified Device Architecture

    CUDA works on NVIDIA cards

    Another limitation of GPU processing is that you cannot execute Java code on the GPU. This code must be created in a C-like language called OpenCL.

    cl.exe is the Microsoft compiler which ships with Visual Studio, which is required to compile CUDA C++ programs

    1. NVIDIA: What is GPU Computing?
    3. NVIDIA: CUDA basic
    4. developer.NVIDIA: CUDA downloads
    5. developer.NVIDIA: CUDA Toolkit 4.0 (MAY 2011)
    6. developer.NVIDIA: NVIDIA CUDA C Programming Guide (Version 4.2)
    7. Jason Sanders: Introduction to CUDA C (San Jose Convention Center | September 20, 2010)
    8. Sarah Tariq, NVIDIA Corporation: An Introduction to GPU Computing and CUDA Architecture
    9. NeuralNetoff: CUDA
    10. stanford-cs193g-sp2010: CUDA Tutorial
    11. wikipedia: CUDA
    12. Klaus Mueller: CUDA Specifics
    13. Barry Wilkinson and Yaohang Li: Basic CUDA programming (PowerPoint file)
    14. Cédric Castagnède and François Rué: GPU for dummies
  2. CUDA setting
    1. SearchSystemsChannel: Setting Windows 7 environment variables
    2. Can not find the "program data" folder
    3. -------------------------------------
    4. Andreas Klöckner's wiki: Windows 7 64-bit with Visual Studio Professional 2008
    5. Byte-Welt Forum: nvcc fatal : Cannot find compiler 'cl.exe' in PATH
    6. CUDAfy: Compilation error: nvcc fatal: Cannot find compiler 'cl.exe' in Path
    7. IXMX: CUDA compiler Problems with 64bit
    8. stackOverflow: CUDA linking error - Visual Express 2008 - nvcc fatal due to (null) configuration file
    9. MathWorks: How do I configure my Windows 64-bit environment for compiling my own CUDA kernels to be used in combination with Parallel Computing Toolbox 5.2 (R2011b)?
    10. rays of hope: Compiling CUDA projects
    11. stackOverflow: Error:identifer “blockIdx” is undefined
    12. NVIDIA: Driver installation hints
    13. -------------------------------------
    14. life of a programmer geek: Using Eclipse for CUDA development
    15. Ferdy Christant: Eclipse for the versatile developer
    16. Ferdy Christant: C/C++ Development Tools downloads
  3. CUDA tutorial
    1. enseignement.polytechnique: Introduction à CUDA
    2. Richard Membarth: CUDA Parallel Programming Tutorial (PDF)
    3. Cyril Zeller, Nvidia: Tutorial CUDA
    4. /// Parallel Panorama ///: CUDA tutorial
    5. The Supercomputing Blog: CUDA tutorial
    6. MultiCoreInfo: Parallel Programming Tutorial Series - Part 8 - CUDA
    7. Chong Ding: CUDA tutorial
  4. jCUDA
    1. Java bindings for CUDA
    2. Think Techie: GPU Computing using jCUDA
    3. Java Code Geeks: CPU vs. GPGPU
    4. Java Code Geeks: General Processing on the Graphics Processing Unit (GPGPU) Java programming
    5. Java Code Geeks: GPGPU with Jcuda the Good, the Bad and … the Ugly
    6. stackoverflow: JCuda: doing parallel arithmetic operations on arrays?
    7. justRIA: JCuda vs. JAVA: 40 times faster linear algebra operations
    8. Yonghong Yan, Max Grossman, and Vivek Sarkar:
      JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA (PDF)
    9. Byte-Welt: New to JCUDA- Windows Installation help needed !!!
    10. CommentCaMarche: dll dans Eclipse java
    11. coderanch: Configuring eclipse to use dll files at runtime
    12. stackoverflow: Error running JCuda
  5. OpenCL
    1. Khronos: OpenCL - The open standard for parallel programming of heterogeneous systems
    2. wikipedia: OpenCL - Open Computing Language
    3. developer.nvidia: OpenCL runs on CUDA-powered GPUs
    4. codeplex: OpenCL Tutorials 1 - Quickstart
    5. The Code Project: Part 1: Programming your Graphics Card (GPU) with Java & OpenCL
    6. Jun Ni: CUDA and OpenCL -- Development interfaces for multicore programming (PDF)
    7. George van Venrooij: Cross-platform GPGPU with OpenCL
    8. accelereyes: ArrayFire GPU computing libraries for CUDA, OpenCL, and OpenGL
  6. JOCL
    1. JOCL: Java bindings for OpenCL
    2. codeproject: Part 1: Programming your Graphics Card (GPU) with Java & OpenCL
    3. byte-welt: Error while launching JOCL
    4. AMD developer central: Aparapi
  7. Ateji-PX
    1. wikipedia: Ateji PX
    2. Ateji PX: Java on GPU with Ateji PX
    3. Patrick Viry: Ateji PX for Java “Parallel programming made simple” (PDF)
    4. Patrick Viry: Matrix Multiplication with Ateji PX for Java Simplicity and Performance for Multicore-Enabling your Data-Intensive Operations (PDF)
    5. Patrick Viry: API
    6. association-aristote: GPU Programming with Ateji PX June 8th 2010 (PDF)
  8. OpenMP
    1. Blaise Barney, Lawrence Livermore National Laboratory: OpenMP
    2. Tim Mattson and Larry Meadows: A "Hands-on" Introduction to OpenMP
    3. Ruud van der Pas (SUN): An Introduction Into OpenMP
    4. Seung-Jai Min: OpenMP Tutorial
    5. wikipedia: OpenMP
    6. OpenMP compilers
    7. computing.llnl: OpenMP Exercise
    8. idris: cours OpenMP
    9. Joe Landman: OpenMP in 30 minutes
    10. Blaise Barney, Lawrence Livermore National Laboratory: POSIX threads programming
    11. Centre de Calcul Recherche et Technologie, CEA: MPC (MultiProcessor Computing) framework
    12. CEA releases MPC 2.0, a new unified parallel framework for HPC
  9. JOMP

    An OpenMP-like set of directives and library routines for shared memory parallel programming in Java

    1. Edinburgh Parallel Computing Centre: JOMP home page
    2. -----------------------------------------------------------
    3. Philippsen, M.; Veldema, R.; Klemm, M.; Dotzler, G.; and Blaß, T.: OpenMP/Java
    4. Veldema, R.; Philippsen, M.; Schneider, T.; Sadeghi, A.; and Blaß, T.: Multi-GPU cluster use for Java/OpenMP
    5. Georg Dotzler, Ronald Veldema, and Michael Klemm: JCudaMP: OpenMP/Java on CUDA
    6. Georg Dotzler, Ronald Veldema, and Michael Klemm: JCudaMP: OpenMP/Java on CUDA
    7. Ronald Veldema, Thorsten Blass, and Michael Philippsen: Enabling multiple accelerator acceleration for Java/OpenMP
  10. HMPP
    1. F. Bodin, CAPS entreprise: Introduction au calcul scientifique sur GPU (PDF file)

      The CAPS HMPP toolkit is a set of compiler directives, tools and software runtime that supports multi-core processor parallel programming in C and Fortran on Unix platforms.

    2. wikipedia: OpenHMPP
    3. IRMA: Expérience de programmation avec HMPP
    4. insideHPC: Video: An overview of the CAPS OpenACC compiler
  11. MPI
    1. wikipedia: Message Passing Interface
    2. supercomputingblog: Getting Started with MPI using Visual Studio 2008 Express
    3. MPJ Express Blog: Nested parallelism using MPJ Express
    4. Bibrak's Experiments: MPJ + CUDA
    5. Open MPI: A high performance Message Passing Library
    6. Advantages of Parallel Programming
    7. idris: Cours MPI
    8. Joe Landman: MPI in 30 minutes
  12. OpenGL
    1. wikipedia: OpenGL (Open Graphics Library)
    2. The Industry's Foundation for High Performance Graphics: OpenGL
    3. glprogramming: The Official Guide to Learning OpenGL, Version 1.1
    4. developer.nvidia: OpenGL developed by Silicon Graphics
  13. CULA tools for zgesvd
    1. a set of GPU-accelerated linear algebra libraries utilizing the NVIDIA CUDA parallel computing architecture
    2. CULA programmer’s guide (PDF file)

      Inside Visual C++ 2010 express, navigate to Project > Properties > Configuration Properties > VC++ Directories. From this dialog you will be able to configure global executable, include, and library paths, which will allow any project that you create to use CULA and CUDA.

      When setting up your environment, prepend the path of your CULA and CUDA installations to the entries of X64 executable files, include files, and library files.
      C:\Program Files\CULA\R15\bin64;

      C:\Program Files\CULA\R15\include; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include;

      C:\Program Files\CULA\R15\lib64; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\lib\x64;

      To use CULA and CUDA, you must instruct Visual C++ to link CULA and CUDA to your application. To do this, right-click on your project and select Properties. From here, navigate to Configuration Properties > Linker > Input. In the Additional Dependencies field, enter
      cula_core.lib; cula_lapack.lib; cudart.lib;

    3. CULA reference manual
    4. ZGESVD example
    5. linux.die: zgesvd(l) - Linux man page
    6. NAG parallel library: Eigenvalues and Eigenvectors
    7. netlib: zgesvd.c
    8. MAGMA 1.2.0: zgesvd.cpp
    9. flexneck: CME for using both ATLAS & CLAPACK (zgesvd) in C++ ?
    10. Andrew Lumsdaine, Jeremy G. Siek, and Lie-Quan Lee:
    11. -------------- GEMM -----------------
    12. wikipedia: General matrix multiply
    13. wikipedia: Basic Linear Algebra Subprograms
    14. mymathlib: Matrix multiplication
    15. Lung-Sheng Chien: Hand-tuned CGEMM on GT200 GPU
    16. -------------------------------------
    17. culaTools: CULA and Java ?
    18. culaTools: Does CULA Dense R14 support CUDA 4.2?
    19. culaTools: Visual Studio 2010 - configuring environment problem
    20. culaTools: Problem with matrix multiplication (in Cula R12)
    21. culaTools: LU decomposition in CULA
    22. -------------------------------------
    23. John R. Humphrey, Daniel K. Price, Kyle E. Spagnoli, Aaron L. Paolini, and Eric J. Kelmelis: CULA: Hybrid GPU accelerated linear algebra routines (PDF file)
    24. Jaya Prakash, Venkittarayan Chandrasekharan, Vishwajith Upendra, and Phaneendra K. Yalavarthy: Accelerating frequency-domain diffuse optical tomographic image reconstruction using graphics processing units
    25. Lung Sheng Chien (簡龍昇) and Yin-Liang Huang (黃印良): 2008 summer C-language
  14. Parallel SVD
    1. Sheetal Lahabar: Exploiting the graphics hardware to solve two compute intensive problems: Singular Value Decomposition and Ray Tracing Parametric Patches:
      thesis and presentation
    2. Sheetal Lahabar and P J Narayanan: Singular Value Decomposition on GPU using CUDA
    3. wolfram: Singular Value Decomposition
    4. -------------------------------------
    5. 赵佳: 在CUDA中实现奇异值分解算法的提速:
    6. Gabriel Okša, Ondrej Sýkora, and Marián Vajteršic: New class of block matrix orderings for the parallel two-sided Jacobi SVD algorithm
    7. -------------------------------------
    8. Gagandeep S. Sachdev, Vishay Vanjani, and Mary W. Hall: Takagi factorization on GPU using CUDA
    9. Gagandeep S. Sachdev, Vishay Vanjani, and Mary W. Hall: Takagi factorization on a GPU using CUDA
    10. -------------------------------------
    11. Nariankadu D. Hemkumar: A systolic VLSI architecture for complex SVD
    12. Yanwei Niu, Ziang Hu, and Guang R. Gao: Parallel reconstruction for parallel imaging SPACERIP on cellular computer architecture
    13. S. Qiao and X. Wang: Computing the singular values of 2X2 complex matrices
    14. Piotr Wendykier: Parallel Colt
    15. Charlotte Kotas and Jacob Barhen: Singular value decomposition utilizing parallel algorithms on graphical processors
    16. Davor Davidovic: Solution of eigenvalue problems on heterogeneous computing architectures
  15. Calling C code from Java
    1. Wikipedia: Java Native Interface
    2. Andrew Downs: Using native code with Java applications and the Sun JDK
    3. Numerical Algorithms Group: Calling C library routines from Java, using the Java Native Interface
    4. jonisalonen: Calling C from Java is easy
    5. Think Techie: The Java Native Interface (JNI)
    6. Samuel Audet: JavaCPP
  16. Java Native Access
    1. Mickael Baron and Frégéric Martini: Exécuter du code natif en Java : JNI VS JNA
    2. fiji: Developing using native libraries
    3. -------------------------------------
    4. Wikipedia: Java Native Access
    5. Java Native Access, Version 3.4.1

      JNA provides Java programs easy access to native shared libraries (DLLs on Windows) without writing anything but Java code—no JNI or native code is required.

    6. JNA API 3.4.1 documentation
    7. jna-users mailing list
    8. Simplify native code access with JNA
    9. Javaworld: Open source Java projects: Java Native Access
    10. Revisiting Java Native Access
    11. Protect your legacy code investment with JNA
    12. Scriptol: JNA, using native code with Java, demo

      Java Native Access is an extension to Java that allows the use of native APIs by including dynamically library files, DLLs under Windows.

    13. Java Native Access (JNA) by example..
    14. Electric Bacon: On writing a DLL and using it with JNA
    15. ka010.wordpress: Java JNA sample: How to wrap your c code
    16. Michał Wróbel: How to call/invoke external DLL library method/function from Java code?
    17. Java interoperation with a Native DLL using JNA
    18. JAVA native access examples
    19. Java Native Access
    20. OpenGamma: JNA, JNI and raw Java performance
    21. Ethan Shayne: JNA examples
    22. Windows API reference
    23. -------------------------------------
    24. Erik D. Demaine: C to Java: converting pointers into references, (PDF file)
    25. Erik D. Demaine: C to Java: converting pointers into references
    26. Baski: Converting pointer parameters in C++ to Java
    27. Web Based Programming Tutorials: Moving C and C++ code to Java
    28. stanford: Pointer basics
    29. JNA equivalent for C code
    30. Returning C array to Java using JNA
    31. JNA arrays and Pointer
    32. Pointer to array of structures as JNA method arguments
    33. java jna - get byte array by reference java.lang.IndexOutOfBoundsException
    34. Passing a Java class into a void* parameter with JNA
    35. msdn MICROSOFT: How to import a .lib and .dll into the project?

      1. You #include the header file (.h) file in your project as necessary.
      2. You list the import library (.lib) in the Linker->Input->Additional Dependencies section of your project settings.
      3. You place the DLL itself (.dll) in the same directory as the executable. so it can be found at run time.

    36. horstmann: Moving from Java to C++
    37. ippon: Java : Accès directs à la mémoire (off-Heap)
    38. ----------------- FloatBuffer --------------------
    39. velocityreviews: Why are Buffers not Serializable in Java?
    40. How to allocate a float buffer in java
    41. Create a float buffer by using wrap method of FloatBuffer class
    42. Java NIO ByteOrdering with JNA and native C code on OSX
    43. oracle: java.nio - Class FloatBuffer
    44. Java DOC(API) by Examples: java.nio.FloatBuffer
    45. Why FloatBuffer instead of float[]?
    46. ----------------- JNA tool --------------------
    47. JNAerator brings native libs to Java
    48. BridJ: Call C, C++, ObjectiveC libraries without compiling native code
    49. Dependency Walker 2.2

      A free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules.

    50. Ché zOlive: JNAerator 0.10 released
  17. Dynamic Link Library
    1. msdn MICROSOFT: DLLs
    2. tenouk: Dynamic Link Library - DLL, Part 1: Story
    3. How to compile a 64-bit DLL using Visual Studio 2010
    4. DLL export viewer (64-bit)
    5. dreamincode: DLLs - Explicit linking loading DLL without import library (.lib)
  18. Visual studio 2010 and CUDA
    1. Steven Mark Ford: Installing Nvidia CUDA with Visual Studio 2010

      Ensure you have Microsoft Visual Studio 2010 installed before you install the CUDA toolkit, if you have already installed the CUDA toolkit and have not yet installed Visual Studio then un-install it before continuing (not doing so will result in Visual Studio integration not functioning!)

    2. chooru::code: Setting up CUDA in Visual Studio 2010
    3. The code project: CUDA 3.2 on VS2010 in 9 steps
    4. Ade Miller: Using CUDA and Thrust with Visual Studio 2010
    5. Ade Miller: Visual Studio 2010 and CUDA
    6. ---------------- Syntax highlighting ---------------------
    7. KK's Space: Adding the Cuda’s Intellisense in Visual Studio 2010
    8. chooru::code: CUDA: Syntax highlighting in Visual Studio
    9. stackoverflow: How can I get syntax highlighting for a .cu file in Visual Studio?
    10. -------------------------------------
    11. coitweb: Configuring Microsoft Visual Studio 2008 for CUDA Tookit version 3.2 Windows XP and Windows 7
    12. digitalerr0r: Parallel Computing using the GPU – Tutorial 3: Integrate CUDA 3.2 into Visual Studio 2008
    13. ProgrammerFish: Easiest Way to Run CUDA on Visual Studio 2008
    14. 3D Game Engine Programming: Introduction to CUDA using Visual Studio 2008
    15. -------------------------------------
    16. Brainlings: “Hello World!” in CUDA
    17. Ingemar Ragnemalm: The real "Hello World!" for CUDA!
  19. Visual studio 2010 and C
    1. wikibooks: C++ Programming/Compiler/Linker/Libraries/Configuring Visual Studio
    2. Travis Gockel: Visual Studio 2010: Property sheets and C++ directories

      Visual Studio 2008 provides a fairly obtuse (but working) system for referencing libraries accessable from the Tools > Options menu. It turns out they had moved -- to the property page of the project (just right-click the project and open properties)in Visual Studio 2010.

    3. msdn MICROSOFT: Property Pages (C++)
    4. -------------------------------------
    5. wikipedia: Dynamic-link library
    6. Where does Visual Studio look for C++ header files?

      The order is
      (1) current source directory
      (2) Additional Include Directories in the project properties. (Under C++ | General)
      (3) Visual Studio C++ Include directories under Tools | Options | Projects and Solutions | VC++ Directories.

      The preprocessor in VS 2010 looks into the current dir only if the quoted include syntax is used (e.g #include "whatever.h"). Using angle brackets (e.g #include <whatever.h>) omits the current dir

    7. #include directive (C/C++)
    8. functionX: Win32 static libraries

      The library file has the lib extension.

    9. Building a DLL with Visual C++ (PDF)
    10. Tutorials ++: C++ tutorial: Create a DLL in VC++ 2010/2008
    11. DLL tutorial for beginners
    12. Manski: Projects in Visual C++ 2010 – Part 1: Creating a DLL project
    13. coderock: How to create a .DLL file in Visual Studio 2010?

      A .DLL(dynamic linking library) file is a library that contains code and data that can be used by more than one program at the same time.

    14. code project: Regular DLL tutor for beginners
    15. flipcode: Creating and using DLLs
    16. msdn MICROSOFT: Walkthrough: Creating and using a Dynamic Link Library (C++)

      Guideline is wrong: replace the step 3 instruction "select Win32 Console Application" with "select Win32 Project"

    17. Can't include iostream in C using MS Visual C++?

      If your source file is ".c", all you have to do is to rename it ".cpp".

    18. FunctionX: Win32 static DLL
    19. -------------------------------------
    20. samlogic: Windows 64-bit: The 'Program Files (x86)' and 'SysWOW64' folders explained
    21. Best practices for WOW64
    22. File system redirector
  20. Visual studio C++ 2010 express
    1. YouTube: Visual C++ 2010 Express tutorial complete: Part 1
    2. forum.celestialmatters: VS2010 express SP1 compiler & Windows SDK 7.1 updates

      The installation order of MS Visual Studio C++ 2010 Express with 64-bit compiler support is:
      (1) Install MS Visual Studio C++ 2010 Express
      (2) Install MS Windows SDK 7.1 and .NET Framework 4
      (3) Install MS Visual Studio 2010 Service Pack 1
      (4) Install MS Visual C++ 2010 Service Pack 1 compiler update for the Windows SDK 7.1

    3. Install Microsoft C compiler and SDK
    4. Microsoft Visual C++ 2010 Express : Téléchargement, installation et configuration
    5. MathWorks: How do I install Microsoft Visual C++ 2010 Express and Microsoft Windows SDK 7.1?
    6. Soft32: Télécharger Microsoft Visual C++ 2010 Express
    7. MSDN Microsoft: Microsoft Windows Software Development Kit
    8. MSDN Microsoft: Chapter 2: Setting up the Hilo development environment
    9. askyb: Configure Visual C++ projects to target 64-bit platforms
    10. unknowncheats: error 2 fatal error lnk1104 cannot open file 'kernel32.lib

      "kernel32.lib" is in C:\Program Files\Microsoft SDKs\Windows\vX.X\Lib

    11. -------------------------------------
    12. kobashicomputing: 64-bit C++ development under Visual Studio 2012 Express
    13. MSDN Microsoft: Using the Windows Software Development Kit (SDK) for Windows 8 Consumer Preview with Visual Studio 2010
    14. MSDN Microsoft: Windows 8.1 desktop samples
[Contact me] - Last updated September 12, 2014
Copyright © 2002- All rights reserved.