OpenCL 1.2に対応した最新のJOCLバージョンは0.1.9なので、これをpom.xmlに記述します。commons-langも何かと便利なので依存性として記述します。
pom.xml.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.book.jocl</groupId> <artifactId>A-JOCLBook</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.jocl</groupId> <artifactId>jocl</artifactId> <version>0.1.9</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> </dependencies> </project>
OpenCL 2.0の場合は以下のように依存性に2.0.0を指定します。
<dependency> <groupId>org.jocl</groupId> <artifactId>jocl</artifactId> <version>2.0.0</version> </dependency>
以下の項目では、2つのHelloWorldプログラムを読者に作成頂くことを想定します。
一つ目はデータ並列プログラミングを実装したMultiplicationTestクラスです。
二つ目はタスク並列プログラミングを実装したTaskTestクラスとなります。
「.cl」拡張子のファイルは、OpenCL-C言語(C99準拠)で記述します。
そのほかにpom.xmlをルートフォルダに配置します。
以下のディレクトリ構造になっていることを確認してください。
Project ├── pom.xml ├── resources ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── book │ │ │ └── jocl │ │ │ ├── data //(1) │ │ │ │ ├── MultiplicationTest.java │ │ │ │ └── mult.cl │ │ │ └── task //(2) │ │ │ ├── TaskTest.java │ │ │ └── basic_helloworld.cl │ │ └── resources │ └── test │ └── java └── target └── classes └── com └── book └── jocl ├── data │ ├── MultiplicationTest.class │ └── mult.cl └── task ├── TaskTest.class └── basic_helloworld.cl
Copyright 2018-2019, by Masaki Komatsu