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. CUDAfy: Compilation error: nvcc fatal: Cannot find compiler 'cl.exe' in Path
    6. IXMX: CUDA compiler Problems with 64bit
    7. stackOverflow: CUDA linking error - Visual Express 2008 - nvcc fatal due to (null) configuration file
    8. 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)?
    9. rays of hope: Compiling CUDA projects
    10. stackOverflow: Error:identifer “blockIdx” is undefined
    11. NVIDIA: Driver installation hints
    12. -------------------------------------
    13. life of a programmer geek: Using Eclipse for CUDA development
    14. 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
    8. YouTube: Cuda Tutorial 1: Introduction
    9. Une introduction à CUDA

      Un petit parallèle avec le matériel. Un thread est exécuté par un processeur : posons donc l'égalité entre le thread et le processeur. Ainsi, le bloc est le multiprocesseur, tandis que la grille représente l'entièreté de la carte.

      Un warp a une taille de 32 threads et il y a 16 banques

  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. Yonghong Yan, Max Grossman, and Vivek Sarkar:
      JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA (PDF)
    8. Byte-Welt: New to JCUDA- Windows Installation help needed !!!
    9. CommentCaMarche: dll dans Eclipse java
    10. coderanch: Configuring eclipse to use dll files at runtime
    11. 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
  7. Ateji-PX
    1. wikipedia: Ateji PX
    2. 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. Georg Dotzler, Ronald Veldema, and Michael Klemm: JCudaMP: OpenMP/Java on CUDA
    2. 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. 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. Advantages of Parallel Programming
    6. idris: Cours MPI
    7. 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. flexneck: CME for using both ATLAS & CLAPACK (zgesvd) in C++ ?
    9. Andrew Lumsdaine, Jeremy G. Siek, and Lie-Quan Lee:
    10. -------------- GEMM -----------------
    11. wikipedia: General matrix multiply
    12. wikipedia: Basic Linear Algebra Subprograms
    13. mymathlib: Matrix multiplication
    14. Lung-Sheng Chien: Hand-tuned CGEMM on GT200 GPU
    15. -------------------------------------
    16. culaTools: CULA and Java ?
    17. culaTools: Does CULA Dense R14 support CUDA 4.2?
    18. culaTools: Visual Studio 2010 - configuring environment problem
    19. culaTools: Problem with matrix multiplication (in Cula R12)
    20. culaTools: LU decomposition in CULA
    21. -------------------------------------
    22. 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)
    23. Jaya Prakash, Venkittarayan Chandrasekharan, Vishwajith Upendra, and Phaneendra K. Yalavarthy: Accelerating frequency-domain diffuse optical tomographic image reconstruction using graphics processing units
    24. 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. 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.

    12. Java Native Access (JNA) by example..
    13. Electric Bacon: On writing a DLL and using it with JNA
    14. Michał Wróbel: How to call/invoke external DLL library method/function from Java code?
    15. JAVA native access examples
    16. Java Native Access
    17. Ethan Shayne: JNA examples
    18. Windows API reference
    19. -------------------------------------
    20. Erik D. Demaine: C to Java: converting pointers into references, (PDF file)
    21. Erik D. Demaine: C to Java: converting pointers into references
    22. Baski: Converting pointer parameters in C++ to Java
    23. Web Based Programming Tutorials: Moving C and C++ code to Java
    24. stanford: Pointer basics
    25. JNA equivalent for C code
    26. Returning C array to Java using JNA
    27. JNA arrays and Pointer
    28. Pointer to array of structures as JNA method arguments
    29. java jna - get byte array by reference java.lang.IndexOutOfBoundsException
    30. Passing a Java class into a void* parameter with JNA
    31. 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.

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

    46. 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:

      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. The code project: CUDA 3.2 on VS2010 in 9 steps
    3. Ade Miller: Using CUDA and Thrust with Visual Studio 2010
    4. Ade Miller: Visual Studio 2010 and CUDA
    5. ---------------- Syntax highlighting ---------------------
    6. KK's Space: Adding the Cuda’s Intellisense in Visual Studio 2010
    7. stackoverflow: How can I get syntax highlighting for a .cu file in Visual Studio?
    8. -------------------------------------
    9. digitalerr0r: Parallel Computing using the GPU – Tutorial 3: Integrate CUDA 3.2 into Visual Studio 2008
    10. ProgrammerFish: Easiest Way to Run CUDA on Visual Studio 2008
    11. 3D Game Engine Programming: Introduction to CUDA using Visual Studio 2008
    12. -------------------------------------
    13. 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. MSDN Microsoft: Using the Windows Software Development Kit (SDK) for Windows 8 Consumer Preview with Visual Studio 2010
    13. MSDN Microsoft: Windows 8.1 desktop samples
[Contact me] - Last updated September 14, 2017
Copyright © 2002- All rights reserved.