JOCL v2.6.0-rc-20250722
JOCL, OpenCL® API Binding for Java™ (public API).
MiscUtils.java
Go to the documentation of this file.
1/*
2 * Copyright 2010 JogAmp Community. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are
5 * permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * The views and conclusions contained in the software and documentation are those of the
25 * authors and should not be interpreted as representing official policies, either expressed
26 * or implied, of JogAmp Community.
27 */
28
29package com.jogamp.opencl.test.util;
30
31import java.nio.ByteBuffer;
32import java.util.HashSet;
33import java.util.Random;
34import java.util.Set;
35
36import com.jogamp.common.os.Platform;
37
38import static java.lang.System.*;
39import static org.junit.Assert.*;
40
41/**
42 * @author Michael Bien, et.al
43 */
44public class MiscUtils {
45
46 //decrease this value on systems with few memory.
47 public final static int ONE_MB = 1048576;
48
49 public final static int NUM_ELEMENTS = 10000000;
50
51 public static final void fillBuffer(final ByteBuffer buffer, final int seed) {
52
53 final Random rnd = new Random(seed);
54
55 while(buffer.remaining() != 0)
56 buffer.putInt(rnd.nextInt());
57
58 buffer.rewind();
59 }
60
61 public static final int roundUp(final int groupSize, final int globalSize) {
62 final int r = globalSize % groupSize;
63 if (r == 0) {
64 return globalSize;
65 } else {
66 return globalSize + groupSize - r;
67 }
68 }
69
70 public static final void checkIfEqual(final ByteBuffer a, final ByteBuffer b, final int elements) {
71 for(int i = 0; i < elements; i++) {
72 final int aVal = a.getInt();
73 final int bVal = b.getInt();
74 if(aVal != bVal) {
75 out.println("a: "+aVal);
76 out.println("b: "+bVal);
77 out.println("position: "+a.position());
78 fail("a!=b");
79 }
80 }
81 a.rewind();
82 b.rewind();
83 }
84
85 private static final Set<Platform.OSType> knownOSWithoutCLImpl;
86 static {
87 knownOSWithoutCLImpl = new HashSet<Platform.OSType>();
88 knownOSWithoutCLImpl.add(Platform.OSType.SUNOS);
89 }
90
91 /**
92 * @return true if OpenCL is not available for this operating system, CPU architecture, et cetera.
93 * This is meant to be a check that there can't possibly be a driver installed because
94 * nobody makes one, not just a check that we didn't see one.
95 * <p>
96 * To check whether an OpenCL implementation/library has actually been loaded,
97 * use {@link CLImpl#isAvailable()}.
98 * </p>
99 */
100 public static final boolean isKnownOSWithoutCLImpl() {
101 return knownOSWithoutCLImpl.contains(Platform.getOSType());
102 }
103}
static final void checkIfEqual(final ByteBuffer a, final ByteBuffer b, final int elements)
Definition: MiscUtils.java:70
static final void fillBuffer(final ByteBuffer buffer, final int seed)
Definition: MiscUtils.java:51
static final int roundUp(final int groupSize, final int globalSize)
Definition: MiscUtils.java:61
static final boolean isKnownOSWithoutCLImpl()
Definition: MiscUtils.java:100