Skip to content

Instantly share code, notes, and snippets.

View waltner's full-sized avatar

Georg Waltner waltner

View GitHub Profile
@waltner
waltner / cuda_indexing.cu
Created October 6, 2017 05:20
CUDA indexing
// 1D grid of 1D blocks
__device__ int getGlobalIdx_1D_1D()
{
return blockIdx.x *blockDim.x + threadIdx.x;
}
// 1D grid of 2D blocks
__device__ int getGlobalIdx_1D_2D()
{
return blockIdx.x * blockDim.x * blockDim.y + threadIdx.y * blockDim.x + threadIdx.x;
@waltner
waltner / cuda_timer.cu
Created October 5, 2017 12:12
CUDA timing
// GPU timing example
// uses CUDA_SAFE_CALL [https://gist.github.com/waltner/ece68738c42d38c5e9bd1862c43b1146.js]
float elapsed_time = 0.0;
cudaEvent_t start, stop;
CUDA_SAFE_CALL(cudaEventCreate(&start));
CUDA_SAFE_CALL(cudaEventCreate(&stop));
CUDA_SAFE_CALL(cudaEventRecord(start,0));
@waltner
waltner / cudabase.h
Created October 5, 2017 12:10
CUDA call wrappers
#ifndef CUDABASE_H_
#define CUDABASE_H_
#include <cuda.h>
#include <iostream>
#include <stdio.h>
# define CUDA_SAFE_CALL_NO_SYNC( call) do { \
cudaError err = call; \
if( cudaSuccess != err) { \