Skip to content

Instantly share code, notes, and snippets.

@sebsjoberg
sebsjoberg / multivector_expression.txt
Created January 28, 2014 19:51
vexcl vector_expression and multivector_expression test failure
seed: 1390938656
1. Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz (Apple)
Running 11 test cases...
#if defined(cl_khr_fp64)
# pragma OPENCL EXTENSION cl_khr_fp64: enable
#elif defined(cl_amd_fp64)
# pragma OPENCL EXTENSION cl_amd_fp64: enable
#endif
@sebsjoberg
sebsjoberg / devlist.txt
Created January 28, 2014 19:54
examples/devlist output
OpenCL devices:
Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
CL_PLATFORM_NAME = Apple
CL_DEVICE_VENDOR = Intel
CL_DEVICE_VERSION = OpenCL 1.2
CL_DEVICE_MAX_COMPUTE_UNITS = 2
CL_DEVICE_HOST_UNIFIED_MEMORY = 1
CL_DEVICE_GLOBAL_MEM_SIZE = 8589934592
CL_DEVICE_LOCAL_MEM_SIZE = 32768
@sebsjoberg
sebsjoberg / overloads.txt
Created January 28, 2014 21:33
Mac OS X overloads for min and max.
// Returns char, int, short, or long, or the unsigned variety
// and takes two char, uchar, short, ushort, int, uint, long, ulong inputs.
#define __CLFN_ALL(name) char __OVERLOAD__ name(char x, char y); \
char2 __OVERLOAD__ name(char2 x, char2 y); \
char3 __OVERLOAD__ name(char3 x, char3 y); \
char4 __OVERLOAD__ name(char4 x, char4 y); \
char8 __OVERLOAD__ name(char8 x, char8 y); \
char16 __OVERLOAD__ name(char16 x, char16 y); \
uchar __OVERLOAD__ name(uchar x, uchar y); \
uchar2 __OVERLOAD__ name(uchar2 x, uchar2 y); \
@sebsjoberg
sebsjoberg / hello.cpp
Last active August 29, 2015 13:55 — forked from ddemidov/hello.cpp
#include <vexcl/vexcl.hpp>
vex::vector<cl_float2>
hilbert(vex::vector<float> &in, std::size_t rows, std::size_t cols) {
// No need to pass context in:
const auto &ctx = in.queue_list();
// Use function instead of vector. Should save global memory IO.
VEX_FUNCTION(h, float(size_t/*prm1 = idx*/, size_t/*prm2 = rows*/),
VEX_STRINGIZE_SOURCE(
@sebsjoberg
sebsjoberg / reverseslice.cxx
Created March 12, 2014 08:24
Negative stride on slice produces wrong result
#include <vexcl/vexcl.hpp>
#include <vector>
#include <algorithm>
int main() {
vex::Context ctx(vex::Filter::Env && vex::Filter::Count(1));
std::cout << ctx << std::endl;
std::vector<float> v = {
0, 5,