Skip to content

Instantly share code, notes, and snippets.

@nattoheaven
nattoheaven / glclinterop.cpp
Created February 7, 2015 04:47
Test for OpenGL-OpenCL Interoperations
#if defined(__APPLE__)
#include <OpenGL/CGLCurrent.h>
#include <GLUT/glut.h>
#include <OpenCL/cl_gl_ext.h>
#else
#if defined(_WIN32) || defined(_WIN64)
#include <GL/glew.h>
#else
#include <GL/glxew.h>
#endif
@nattoheaven
nattoheaven / gist:e7c67a2abef884b8319c
Created May 19, 2014 23:39
Test for Precision with Vectorization
#include <stdio.h>
#include <xmmintrin.h>
int
main()
{
int i;
float fi;
union {
int i;
@nattoheaven
nattoheaven / gist:9369884
Last active August 29, 2015 13:57
Test for HSA Example
#include <iostream>
#include <string>
#include <ctime>
#define _mm_malloc(a, b) _aligned_malloc(a, b)
#include <CL/cl.h>
const char triad_kernel[] =
"__kernel void\n"
SUBROUTINE SEARCH1(IDATA,IDX,INPUT,IOUT,N)
IMPLICIT NONE
INTEGER IDATA,IDX,INPUT,IOUT,I,N,IL,IR,IC
DIMENSION IDATA(N),IDX(N),INPUT(N),IOUT(N)
DO 20 I=1,N
IL=1
IR=N
30 IC=(IL+IR)/2
IF(IDATA(IDX(IC)).EQ.INPUT(I))THEN
IOUT(I)=IC
@nattoheaven
nattoheaven / gist:8285191
Created January 6, 2014 16:17
Test for CUDA overheads when using Dynamic Parallelism.
#!/usr/bin/ruby
for narg in 0..10 do
File.open('kernel_dp' + narg.to_s + '.cu', 'w') do |kernel|
kernel.write('extern "C" __global__ void kernel(');
for iarg in 0...narg do
if (iarg != 0) then
kernel.write(',');
end
kernel.write('void *a');
@nattoheaven
nattoheaven / gist:8114862
Created December 24, 2013 15:39
Test for CUDA overheads with varying numbers of arguments.
#!/usr/bin/ruby
for narg in 0..10 do
File.open('kernel' + narg.to_s + '.cu', 'w') do |kernel|
kernel.write('extern "C" __global__ void kernel(');
for iarg in 0...narg do
if (iarg != 0) then
kernel.write(',');
end
kernel.write('void *a');
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <immintrin.h>
static volatile double zr = 0.0;
static volatile double zi = 0.0;
static const double cr = 0.1;
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <immintrin.h>
static volatile double zr = 0.0;
static volatile double zi = 0.0;
static const double cr = 0.1;
@nattoheaven
nattoheaven / gist:5863199
Created June 25, 2013 22:55
Test of Transactional Memory
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
static double zr = 0.0;
static double zi = 0.0;
static const double cr = 0.1;
static const double ci = 0.1;
#ifndef TSX
#include <stdio.h>
#include <omp.h>
#include <sys/time.h>
#ifdef CURAND
#include <curand.h>
typedef struct {
curandGenerator_t gen;