From e1b52dce4a00c80c739d13e90cc2be9203f8544a Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com> Date: Fri, 2 Dec 2016 16:33:19 -0500 Subject: [PATCH] Updated readme and moved attributions license to attributions file. --- ATTRIBUTIONS.md | 51 ++++++++++++++++++++++++ README.md | 104 ++++++++++++++++++++++++------------------------ 2 files changed, 102 insertions(+), 53 deletions(-) create mode 100644 ATTRIBUTIONS.md diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md new file mode 100644 index 00000000..05b72963 --- /dev/null +++ b/ATTRIBUTIONS.md @@ -0,0 +1,51 @@ +This file contains all attributions and other notices that are required by law. + +## Copyright Notices + +The following are the list of all recognized copyright notices added by contributors to this project: + +Copyright (c) 2016 - 2017, Syncleus, Inc. All rights reserved. +Copyright (c) 2010-2011, Advanced Micro Devices, Inc. All rights reserved. + +## Licenses + +Aparapi is currently licensed under the Apache License version 2. However it is important to note that this project has +used code from other projects originally licensed under seperate, but compatible licenses. Since these license require +retaining original copyrights, and a reference to the original license it is important to mention that here. + +The text of the original license used by AMD contained the following text: + +Copyright (c) 2010-2011, Advanced Micro Devices, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the +following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following +disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided with the distribution. + +Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products +derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export +laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through +774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, +you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of +Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration +Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, +E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups +D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject +to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 +of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations +under those regulations, please refer to the U.S. Bureau of Industry and Security�s website at http://www.bis.doc.gov/. \ No newline at end of file diff --git a/README.md b/README.md index 5fb4f691..a5d14c14 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,76 @@ -aparapi -======= +# Aparapi -This is the new home of Aparapi. +[](http://www.apache.org/licenses/LICENSE-2.0.html) +[](http://www.javadoc.io/doc/com.syncleus.aparapi/aparapi) +[](https://gitter.im/Syncleus/aparapi?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -Please refer to the [current documentation](doc/README.md) or the older docs on google code [Aparapi Google Code](https://code.google.com/p/aparapi/) for documentation. +A framework for executing native Java code on the GPU. -We plan to implement Binary downloads at [GitHub Releases](https://help.github.com/articles/about-releases). +**Licensed under the Apache Software License v2** -Watch this space! +Aparapi allows developers to write native Javacode capable of being executed directly on a graphics card GPU by converting Java byte code to an OpenCL kernel dynamically at runtime. Because it is backed by OpenCL Aparapi is compatible with all OpenCL compatible Graphics Cards. -Getting Started -======= +A GPU has a unique architecture that causes them to behave differently than a CPU. One of the most noticeable differences is that while a typical CPU has less than a dozen cores a high end GPU may have hundreds of cores. This makes them uniquely suited for data-parallel computation that can result in speedups hundreds of times more than what is capable with your average CPU. This can mean the difference between needing a whole data center to house your application versus just one or two computers, potentially saving millions in server costs. -If you are an official Contributor than Clone the repository and work on it as needed. +Aparapi was originally a project conceived and developed by AMD corporation. It was later abandoned by AMD and sat mostly-idle for several years. Despite this there were some failed efforts by the community to keep the project alive, but without a clear community leader no new releases ever came. Eventually we came along and rescued the project, and modernized the project. Finally after such a long wait the first Aparapi release in 5 years was published and the community continues to push forward with renewed excitement. -If you are an interested developer and just want to experiment with Aparapi then Fork the repository and submit Pull requests. +For detailed documentation see [Aparapi.com](http://Aparapi.com) or check out the [latest Javadocs](http://www.javadoc.io/doc/com.syncleus.ferma/ferma). -Users: +For support please use [Gitter](https://gitter.im/Syncleus/aparapi) or the [official Aparapi mailing list](https://groups.google.com/a/syncleus.com/d/forum/aparapi-list). -Download known working binary releases from [Aparapi Releases](https://github.com/aparapi/aparapi/releases). +Please file bugs and feature requests on [Github](https://github.com/Syncleus/aparapi/issues). -Developers: +## Dependency -Every single project in Aparapi, including the root of the entire repository are Eclipse projects, althought execution entirely from the command-line is also supported. +To include Aparapi in your project of choice include the following Maven dependency into your build. -Steps: +```xml -- Clone/Fork the repository to your local machine -- Import 'aparapi' to your Eclipse workspace making sure to import 'nested projects' -- Open the appropriate Ant build.xml files in your Eclipse Ant view +<dependency> + <groupId>com.syncleus.aparapi</groupId> + <artifactId>aparapi</artifactId> + <version>1.0.0</version> +</dependency> +``` +## Obtaining the Source -Thank you, +The official source repository for Aparapi is located in the Syncleus Github repository and can be cloned using the +following command. -The Aparapi Team +```bash -## License +git clone https://github.com/Syncleus/aparapi.git +``` -Aparapi is currently licensed under the Apache License version 2. However it is important to note that this project has -used code from other projects originally licensed under seperate, but compatible licenses. Since these license require -retaining original copyrights, and a reference to the original license it is important to mention that here. The text -of the original license used by AMD contained the following text: +## Getting Started -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. +With Aparapi we can take a sequential loop such as this (which adds each element from inA and inB arrays and puts the result in result). -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: +```java -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. +final float inA[] = .... // get a float array of data from somewhere +final float inB[] = .... // get a float array of data from somewhere +assert (inA.length == inB.length); +final float result = new float[inA.length]; -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. +for (int i = 0; i < array.length; i++) { + result[i] = intA[i] + inB[i]; +} +``` -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. +And refactor the sequential loop to the following form: -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +```java -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security�s website at http://www.bis.doc.gov/. \ No newline at end of file +Kernel kernel = new Kernel() { + @Override + public void run() { + int i = getGlobalId(); + result[i] = intA[i] + inB[i]; + } +}; + +Range range = Range.create(result.length); +kernel.execute(range); +``` \ No newline at end of file -- GitLab