From 903f1c03f4196b6cfaaca097aaf05d115f9d0d29 Mon Sep 17 00:00:00 2001 From: Ben van Werkhoven Date: Wed, 2 Nov 2016 12:45:23 +0100 Subject: [PATCH] added requirements and preparations for version 0.1.0 --- CHANGELOG.md | 10 ++++++++++ doc/source/conf.py | 4 ++-- requirements.txt | 6 ++++++ roadmap.md | 38 ++++++++++++++++++++++++++++++++++++++ setup.py | 11 ++++++++--- 5 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 requirements.txt create mode 100644 roadmap.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 557fb651c..f3b1dcae6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,14 +3,24 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] + + + + +## [0.1.0] - 2016-11-02 ### Changed - verbose now also prints debug output when correctness check fails +- restructured the utility functions into util and core - restructured the code to prepare for different strategies - shortened the output printed by the tune_kernel - allowing numpy integers for specifying problem size ### Added +- a public roadmap +- requirements.txt +- example showing GPU code unit testing with the Kernel Tuner - support for passing a (list of) filenames instead of kernel string +- runner that takes a random sample of 10 percent - support for OpenCL platform selection - support for using tuning parameter names in the problem size diff --git a/doc/source/conf.py b/doc/source/conf.py index f093a6aed..b9fabbe7f 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -57,9 +57,9 @@ # built documents. # # The short X.Y version. -version = u'0.0.1' +version = u'0.1.0' # The full version, including alpha/beta/rc tags. -release = u'0.0.1' +release = u'0.1.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..3a6c05b60 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +mock>=2.0.0 +nose>=1.3.7 +numpy>=1.7.1 +pycuda>=2016.1.1 +pyopencl>=2015.2.4 + diff --git a/roadmap.md b/roadmap.md new file mode 100644 index 000000000..c01e2cd92 --- /dev/null +++ b/roadmap.md @@ -0,0 +1,38 @@ +# Roadmap for the Kernel Tuner + +This roadmap presents an overview of the features we are currently planning to +implement. Please note that this is a living document that will evolve as +priorities grow and shift. + +### version 0.2.0 + +This is the list of features that we want to have implemented by the next version. + + * Option to store tuning results in a file (e.g. json, csv, ... ) + * Option to set a function that performs output verfication, instead of numpy.allclose() + * Option to change defaults for 'block_size_x', and so on + * Option to set a function that computes search space restriction, instead of a list of strings + * Option to set compiler name, when using C backend + * Option to set compiler options + +### version 1.0.0 + +These functions are to be implemented by version 1.0.0, but may already be +implemented in earlier versions. + + * Tuning kernels in parallel on a single node + * Tuning kernels in parallel on a set of nodes in a GPU clusters + * Tuning kernels using machine learning or search strategies + * Store tuning results in a database and provide an API for analysis + +### Low priority + +These are the things that we would like to implement, but we currently have no +demand for it. If you are interesting in any of these, let us know! + + * Tuning compiler options in combination other parameters kernel + * Example that tunes a kernel using thread block re-indexing + * Example host code that runs a pipeline of kernels + * Example CUDA host code that uses runtime compilation + + diff --git a/setup.py b/setup.py index 4fcb859bb..2bbc36503 100644 --- a/setup.py +++ b/setup.py @@ -1,17 +1,20 @@ import os from setuptools import setup +with open('requirements.txt') as f: + required = f.read().splitlines() + def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() setup( name = "kernel_tuner", - version = "0.0.1", + version = "0.1.0", author = "Ben van Werkhoven", author_email = "b.vanwerkhoven@esciencecenter.nl", - description = ("A simple CUDA kernel tuner in Python"), + description = ("A simple CUDA/OpenCL kernel tuner in Python"), license = "Apache 2.0", - keywords = "auto-tuning gpu pycuda cuda pyopencl opencl", + keywords = "auto-tuning gpu computing pycuda cuda pyopencl opencl", url = "http://benvanwerkhoven.github.io/kernel_tuner/", packages=['kernel_tuner', 'kernel_tuner.runners'], long_description=read('README.md'), @@ -30,5 +33,7 @@ def read(fname): 'Topic :: System :: Distributed Computing', 'Development Status :: 4 - Beta', ], + install_requires=required, + )