Skip to content
Pradeep Rao edited this page Dec 14, 2015 · 13 revisions

Repository workflow and development process

This repository follows the git flow workflow

  • A gitflow extention has been developed to ease the use of the 'git flow' methodology, but requires manual installation by the user. Refer to the projects wiki.

Cloning clFFT source from GitHub

There are a variety of git clients for both the Windows® and Linux® platforms. For those familiar with git, the quick instructions is to issue a git clone <https://github.com/clMathLibraries/clFFT> command with a preferred git client. For those not familiar with git, first install a git client on the host OS in order to 'clone' the clFFT code onto the computer. For Linux ®, if git is not included in your distribution (type git –version at the commandline to verify), then most likely the native OS's package manager system can be used to easily install the git package. The package is usually called 'git' or 'git-core'.

On Windows®, a variety of distributions exist, but typically requires a manually install from a package downloaded from the web. A highly recommended distribution is GitHub for Windows. It will help to create a GitHub account if one does not already exist, and simplifies the login process by eliminating the need to enter credential information every time the github server is contacted. It also provides a posh-git prompt, which is a powershell environment for git which allows for advanced functionality. Another acceptable distribution is the mingw compiled version of git available from git-scm, which is a bare-bones version of git without the benefit of a GUI, akin to the experience on linux.

Forking the clFFT source from GitHub

GitHub creates the concept of forking a project, similar in nature but separate from the idea of cloning a project. With a github user account, it is possible to 'fork' a project into your personal account repository which is a complete copy of the original repository. At the top right corner of the clFFT GitHub page is a button that forks the clFFT code. GitHub provides an introductory tutorial using their spoon-knife repository. The fork will have a different upstream URL that includes the new users account name and can be used to start hacking on the code. When the feature, bug fix or modification is finished, a 'pull request' can be issued back to the original project if the code contribution will be useful.

Additional pages

Infrastructure documents

Contributing code

Python wrapper for clFFT

  • Python wrappers/bindings gpyfft are available that will call into the clFFT library.

Performance

The following performance graphs were collected as part of clFFT 2.8 release. The images show competitive performance and performance difference over previous version. The source repo at src/scripts/perf contains performance generation scripts and instructions. The clFFT numbers were obtained with 14.502 driver on W9100. And the cuFFT (7.5) numbers were obtained on Tesla K40.

  • C2C_single_1D C2C_single_1D
  • C2C_double_1D C2C_double_1D
  • R2C_single_1D R2C_single_1D
  • R2C_double_1D R2C_double_1D