About
The goal of Focal is to provide a concise and accessible Fortran interface to the OpenCL API while retaining the full functionality thereof. This is desirable in Fortran which as a language provides a higher level of abstraction than C; importantly this allows scientists and engineers to focus on their domain specific problem rather than details of low-level implementation.
The aims for Focal in particular are to:
- remove the need to use c pointers in Fortran for the OpenCL API;
- provide some level of type-safety through the use of typed buffer objects;
- decrease the verbosity of the API calls while still providing the same functionality;
- abstract away low-level details, such as buffer size in bytes, not appropriate to Fortran;
- make it easier to write, debug and profile OpenCL programs.
Focal supports a subset of OpenCL v1.2 features.
See also
- Lattice Boltzmann demo
- Oclgrind (OpenCL device simulator and debugger)
- Khronos group
- International workshop on OpenCL
- OpenCL specification
- Hands on OpenCL (Complete course with code examples)
- clfortran project (Fortran interface header library)
- NVIDIA OpenCL Best Practices
- NVIDIA OpenCL programming
- Intel OpenCl optimization guide for intel graphics
- AMD OpenCL guide