Git Product home page Git Product logo

clgpu's Introduction

Intel® Compute Libraries for GPU

Apache License Version 2.0 v0.1.1

Introduction

Intel® Compute Libraries for GPU (Intel® clGPU) is a framework and repository for implementation of compute libraries (e.g. BLAS) accelerated using Intel® Processor Graphics. It provides ability to develop efficient and optimized kernels for Intel GPU and mechanism of their execution.

This technical preview includes Intel® clBLAS - Basic Linear Algebra Subprograms (BLAS) implementation optimized for Intel® GPU.

As with any technical preview, APIs may change in future updates.

License

Intel® clGPU is licensed under Apache License Version 2.0.

Attached licenses

Intel® clGPU uses 3rd-party components licensed under following licenses:

Project structure

Documentation

The online Intel® clGPU documentation is at GitHub pages

Module specific documentation:

There is also inline documentation available that can be generated with Doxygen.

Support

Please report issues and suggestions via GitHub issues.

How to Contribute

We welcome community contributions to Intel® clGPU. If you have an idea how to improve the library:

  • Share your proposal via GitHub issues
  • Ensure you can build the product and run all the examples with your patch
  • In the case of a larger feature, create a test
  • Submit a pull request

We will review your contribution and, if any additional fixes or modifications are necessary, may provide feedback to guide you. When accepted, your pull request will be merged into our internal and GitHub repositories.

System Requirements

Intel® clGPU supports Intel® HD Graphics and Intel® Iris® Graphics and is optimized for

  • Codename Skylake:
    • Intel® HD Graphics 510 (GT1, client market)
    • Intel® HD Graphics 515 (GT2, client market)
    • Intel® HD Graphics 520 (GT2, client market)
    • Intel® HD Graphics 530 (GT2, client market)
    • Intel® Iris® Graphics 540 (GT3e, client market)
    • Intel® Iris® Graphics 550 (GT3e, client market)
    • Intel® Iris® Pro Graphics 580 (GT4e, client market)
    • Intel® HD Graphics P530 (GT2, server market)
    • Intel® Iris® Pro Graphics P555 (GT3e, server market)
    • Intel® Iris® Pro Graphics P580 (GT4e, server market)
  • Codename Apollolake:
    • Intel® HD Graphics 500
    • Intel® HD Graphics 505
  • Codename Kabylake:
    • Intel® HD Graphics 610 (GT1, client market)
    • Intel® HD Graphics 615 (GT2, client market)
    • Intel® HD Graphics 620 (GT2, client market)
    • Intel® HD Graphics 630 (GT2, client market)
    • Intel® Iris® Graphics 640 (GT3e, client market)
    • Intel® Iris® Graphics 650 (GT3e, client market)
    • Intel® HD Graphics P630 (GT2, server market)
    • Intel® Iris® Pro Graphics 630 (GT2, server market)

Intel® clGPU currently uses OpenCL™ with multiple Intel® OpenCL™ extensions and requires Intel® Graphics Driver to run.

Intel® clGPU requires CPU with Intel® SSE/Intel® AVX support.


The software dependencies are:

  • CMake* 3.5 or later
  • C++ compiler with partiall or full C++14 standard support compatible with:
    • GNU* Compiler Collection 5.2 or later
    • Visual C++ 2015 (MSVC++ 19.0) or later
  • python™ 2.7 or later (scripts are both compatible with python™ 2.7.x and python™ 3.x)
  • (optional) Doxygen* 1.8.13 or later Needed for manual generation of documentation from inline comments.

We recommend to use these drivers.

Building

Download Intel® clGPU source code or clone the repository to your system:

    git clone  https://github.com/intel/clGPU.git

Satisfy all software dependencies and ensure that the versions are correct before building.

Intel® clGPU uses multiple 3rd-party components. They are stored in binary form in common subdirectory. Currently they are prepared for MSVC++ and GCC*. They will be cloned with repository.


Intel® clGPU uses a CMake-based build system. You can use CMake command-line tool or CMake GUI (cmake-gui) to generate required solution. For Windows system, you can call in cmd (or powershell):

    @REM Generate 64-bit solution (solution contains multiple build configurations)...
    cmake -E make_directory build && cd build && cmake -G "Visual Studio 14 2015 Win64" ..

Created solution can be opened in Visual Studio 2015 or built using appropriate msbuild tool (you can also use cmake --build . to select build tool automatically).

For Unix and Linux systems:

    @REM Create GNU makefile for release and build it...
    cmake -E make_directory build && cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make
    @REM Create Ninja makefile for debug and build it...
    cmake -E make_directory build && cd build && cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug .. && ninja -k 20

CMake solution offers multiple options which you can specify using normal CMake syntax (-D<option-name>=<value>):

CMake option Type Description
CMAKE_BUILD_TYPE STRING Build configuration that will be used by generated makefiles (it does not affect multi-configuration generators like generators for Visual Studio solutions). Currently supported: Debug (default), Release
ICLGPU__ARCHITECTURE_TARGET STRING Architecture of target system (where binary output will be deployed). CMake will try to detect it automatically (based on selected generator type, host OS and compiler properties). Specify this option only if CMake has problem with detection. Currently supported: Windows32, Windows64, Linux64
ICLGPU__OUTPUT_DIR PATH Location where built artifacts will be written to. It is set automatically to roughly build/out/<arch-target>/<build-type> subdirectory.

Generating documentation

Documentation is provided inline and can be generated in HTML format with Doxygen. We recommend to use latest Doxygen* and GraphViz*.

Documentation templates and configuration files are stored in docs subdirectories. You can generate documentation for the core library and Intel® clBLAS separately.


* Other names and brands may be claimed as the property of others.

Copyright © 2018, Intel® Corporation

clgpu's People

Contributors

rfsaliev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.