Skip to content

Instantly share code, notes, and snippets.

View pavanky's full-sized avatar

Pavan Yalamanchili pavanky

View GitHub Profile
@pavanky
pavanky / cpu_memory.patch
Last active August 29, 2015 14:16
Patch for debugging ArrayFire memory manager
diff --git a/src/backend/cpu/memory.cpp b/src/backend/cpu/memory.cpp
index 1f0ed5b..45481bc 100644
--- a/src/backend/cpu/memory.cpp
+++ b/src/backend/cpu/memory.cpp
@@ -87,6 +87,15 @@ namespace cpu
T* ptr = NULL;
size_t alloc_bytes = divup(sizeof(T) * elements, 1024) * 1024;
+ printf("USED BYTES: %zu MB\n", used_bytes >> 20);
+ printf("NBUFFERS: %zu\n", memory_map.size());
@pavanky
pavanky / moments.cpp
Created March 20, 2015 17:41
Areas and centroids
array areas(const array& in)
{
// Must be 2d image
dim4 dims = in.dims();
array flt_in = flat(in);
// Corner case: no components
array non_zero_ind = where(flt_in != 0);
if (non_zero_ind.isempty())
@pavanky
pavanky / add.cpp
Last active August 29, 2015 14:18
timing arrayfire
#include <iostream>
#include <limits>
#include <arrayfire.h>
using namespace std;
using namespace af;
int comp(const void * elem1, const void * elem2) {
int f = *((int*)elem1);
int s = *((int*)elem2);
@pavanky
pavanky / moving_avg.cpp
Created March 31, 2015 15:45
Moving average with arrayfire
/*******************************************************
* Copyright (c) 2014, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#include <iostream>
{"log":"May 23 20:36:08 socket\u0009debug\u0009server.lua: we need to do tls, but delaying until send buffer empty\n","stream":"stdout","time":"2015-05-23T20:36:08.67410023Z"}
{"log":"May 23 20:36:08 c2sdeb150\u0009debug\u0009TLS negotiation started for c2s_unauthed...\n","stream":"stdout","time":"2015-05-23T20:36:08.67410023Z"}
{"log":"May 23 20:36:08 socket\u0009debug\u0009server.lua: attempting to start tls on tcp{client}: 0xde84a8\n","stream":"stdout","time":"2015-05-23T20:36:08.67410023Z"}
@pavanky
pavanky / convolve_bench.cpp
Last active August 29, 2015 14:21
ArrayFire convolve2 benchmark
/*******************************************************
* Copyright (c) 2014, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#include <arrayfire.h>
@pavanky
pavanky / colormap.lua
Created May 28, 2015 19:55
colormap values from arrayfire 2.1
-- grayscale
Colormap.default = {
0 ,0 ,0
,0.0039 ,0.0039 ,0.0039
,0.0078 ,0.0078 ,0.0078
,0.0118 ,0.0118 ,0.0118
,0.0157 ,0.0157 ,0.0157
,0.0196 ,0.0196 ,0.0196
,0.0235 ,0.0235 ,0.0235
,0.0275 ,0.0275 ,0.0275
#pragma once
#include <arrayfire.h>
namespace af {
static void copy(array &out, const array &in,
const index &s0 = span, const index &s1 = span,
const index &s2 = span, const index &s3 = span)
{
af_array lhs = out.get();
af_array rhs = in.get();
af_index_t indices[] = {s0.get(), s1.get(), s2.get(), s3.get()};
@pavanky
pavanky / broadcast.cpp
Created July 13, 2015 15:21
Broadcasting using ArrayFire
/*******************************************************
* Copyright (c) 2014, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
@pavanky
pavanky / clip.cpp
Created July 13, 2015 15:29
clip functions
array clip(array in, double lower, double upper)
{
return (in >= lower && in <= upper) * in + (in < lower) * lower + (in > upper) * upper;
}
array clipLower(array in, double lower)
{
return(in >= lower) * in + (in < lower) * lower;
}