From 14c854543b1a3cf344a371a5b45595657f95786b Mon Sep 17 00:00:00 2001 From: leochanj105 Date: Tue, 26 Oct 2021 13:22:32 -0400 Subject: add deadlines and costs --- SD-VBS/benchmarks/svm/src/c/cal_learned_func.c | 42 ----- SD-VBS/benchmarks/svm/src/c/examineExample.c | 67 -------- SD-VBS/benchmarks/svm/src/c/getAlphaFromTrainSet.c | 98 ----------- SD-VBS/benchmarks/svm/src/c/polynomial.c | 42 ----- SD-VBS/benchmarks/svm/src/c/script_svm.c | 175 ------------------- SD-VBS/benchmarks/svm/src/c/svm.h | 38 ----- SD-VBS/benchmarks/svm/src/c/takeStep.c | 188 --------------------- SD-VBS/benchmarks/svm/src/c/usps_read_partial.c | 85 ---------- 8 files changed, 735 deletions(-) delete mode 100644 SD-VBS/benchmarks/svm/src/c/cal_learned_func.c delete mode 100644 SD-VBS/benchmarks/svm/src/c/examineExample.c delete mode 100644 SD-VBS/benchmarks/svm/src/c/getAlphaFromTrainSet.c delete mode 100644 SD-VBS/benchmarks/svm/src/c/polynomial.c delete mode 100644 SD-VBS/benchmarks/svm/src/c/script_svm.c delete mode 100644 SD-VBS/benchmarks/svm/src/c/svm.h delete mode 100644 SD-VBS/benchmarks/svm/src/c/takeStep.c delete mode 100644 SD-VBS/benchmarks/svm/src/c/usps_read_partial.c (limited to 'SD-VBS/benchmarks/svm/src') diff --git a/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c b/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c deleted file mode 100644 index 79fdd68..0000000 --- a/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c +++ /dev/null @@ -1,42 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#include "svm.h" - -float cal_learned_func(int k, F2D* a, float* b, int N, F2D* Y, F2D* X, int dim) -{ - float s, ret; - int i, j, m, n; - F2D *temp, *temp1; - - s=0; - for(i=0; i 0) - { - temp = fMallocHandle(1, X->width); - temp1 = fMallocHandle(1, X->width); - - for(m=0; mwidth; m++) - { - asubsref(temp,m) = subsref(X,i,m); - asubsref(temp1,m) = subsref(X,k,m); - } - - s += asubsref(a,i) * asubsref(Y,i) * polynomial(3, temp, temp1, dim); - - free(temp); - free(temp1); - } - } - - s = s- arrayref(b,0); - ret = s; - - return ret; -} - - - - diff --git a/SD-VBS/benchmarks/svm/src/c/examineExample.c b/SD-VBS/benchmarks/svm/src/c/examineExample.c deleted file mode 100644 index 5335f35..0000000 --- a/SD-VBS/benchmarks/svm/src/c/examineExample.c +++ /dev/null @@ -1,67 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#include "svm.h" - -int examineExample(int i, F2D* a, float* b, float C, F2D* e, F2D* X, F2D* Y, float tolerance, int N, float eps, int dim) -{ - int ret, j, k, m, n; - float E, r1, randVal; - float maxDiff, temp; - - if( ( asubsref(a,i) > 0) && ( asubsref(a,i) tolerance) && ( asubsref(a,i) > 0)) ) - { - maxDiff = 0; - j = i; - - for(k=0; k 0) && ( asubsref(a,k) < C) ) - { - temp = fabsf( E - asubsref(e,k)); - if (temp > maxDiff) - j = k; - } - } - - if ( i!=j) - { - ret = takeStep(i, j, a, C, e, Y, X, eps, b, N, dim); - if(ret == 1) - return ret; - } - - randVal = 1.0; - for( k= (randVal*(N-2)); k 0) && ( asubsref(a,k) 0 || ExamineAll == 1) - { - cnt = cnt + 1; - NumChanged = 0; - if(ExamineAll == 1) - { - for(i=0; i 0 && asubsref(a,i) C = C; - alpha->d = d; - alpha->dim = dim; - alpha->eps = eps; - alpha->a_result = a_result; - alpha->b_result = b_result; - alpha->a = a; - alpha->b = arrayref(b,0); - alpha->X = X; - alpha->tolerance = tolerance; - alpha->ret; - - free(b); - - return alpha; - -} - - - - diff --git a/SD-VBS/benchmarks/svm/src/c/polynomial.c b/SD-VBS/benchmarks/svm/src/c/polynomial.c deleted file mode 100644 index cce9190..0000000 --- a/SD-VBS/benchmarks/svm/src/c/polynomial.c +++ /dev/null @@ -1,42 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#include "svm.h" - -float polynomial(int d, F2D* a, F2D* b, int dim) -{ - float ret; - F2D *bt, *bt1; - int i,j,r,c; - - r = b->height; - c = b->width; - - bt = fMallocHandle(c, r); - - for(i=0; iheight == 1 && bt1->width ==1) - ret = pow(asubsref(bt1,0),d)/dim; - else - { - fFreeHandle(bt1); - return -1; - } - - fFreeHandle(bt1); - return ret; -} - - - diff --git a/SD-VBS/benchmarks/svm/src/c/script_svm.c b/SD-VBS/benchmarks/svm/src/c/script_svm.c deleted file mode 100644 index d77291c..0000000 --- a/SD-VBS/benchmarks/svm/src/c/script_svm.c +++ /dev/null @@ -1,175 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#include -#include -#include "svm.h" -#include -#include "extra.h" -#define SVM_MEM 1<<24 -int main(int argc, char* argv[]) -{ - SET_UP - mallopt(M_TOP_PAD, SVM_MEM); - mallopt(M_MMAP_MAX, 0); - int iter, N, Ntst, i, j, k, n; - F2D* trn1, *tst1, *trn2, *tst2, *Yoffset; - alphaRet* alpha; - F2D *a_result, *result = NULL; - F2D *s; - F2D *b_result; - F2D *Xtst, *Ytst; - char im1[256]; - int dim = 256; - - N = 100; - Ntst = 100; - iter = 10; - - #ifdef test - N = 4; - Ntst = 4; - iter = 2; - #endif - - #ifdef sim_fast - N = 20; - Ntst = 20; - iter = 2; - #endif - - #ifdef sim - N = 16; - Ntst = 16; - iter = 8; - #endif - - #ifdef sqcif - N = 60; - Ntst = 60; - iter = 6; - #endif - - #ifdef qcif - N = 72; - Ntst = 72; - iter = 8; - #endif - - #ifdef vga - N = 450; - Ntst = 450; - iter = 15; - #endif - - #ifdef wuxga - N = 1000; - Ntst = 1000; - iter = 20; - #endif - - - // trn file 1 - scanf("%s", im1); - trn1 = readFile(im1); - - // trn file 2 - scanf("%s", im1); - trn2 = readFile(im1); - - // tst file 1 - scanf("%s", im1); - tst1 = readFile(im1); - - // tst file 2 - scanf("%s", im1); - tst2 = readFile(im1); - - for_each_job { - // Clear the results from our last job - if (result) - fFreeHandle(result); - - alpha = getAlphaFromTrainSet(N, trn1, trn2, iter); - a_result = alpha->a_result; - b_result = alpha->b_result; - Yoffset = fSetArray(iter, N, 0); - - Xtst = usps_read_partial(tst1, tst2, -1, 1, Ntst/iter, iter); - Ytst = usps_read_partial(tst1, tst2, -1, 0, Ntst/iter, iter); - - for(i=0; i 0) - { - F2D *Xtemp, *XtstTemp, *X; - X = alpha->X; - Xtemp = fDeepCopyRange(X,j,1,0,X->width); - XtstTemp = fDeepCopyRange(Xtst, n,1,0,Xtst->width); - asubsref(s,i) = asubsref(s,i) + subsref(a_result,i,j) * subsref(Yoffset,i,j) * polynomial(3,Xtemp,XtstTemp, dim); - fFreeHandle(Xtemp); - fFreeHandle(XtstTemp); - } - } - asubsref(s,i) = asubsref(s,i) - asubsref(b_result,i); - if( asubsref(s,i) > maxs) - maxs = asubsref(s,i); - } - - fFreeHandle(s); - asubsref(result,n) = maxs; - } - - fFreeHandle(Yoffset); - fFreeHandle(alpha->a_result); - fFreeHandle(alpha->b_result); - fFreeHandle(alpha->X); - free(alpha); - fFreeHandle(Xtst); - fFreeHandle(Ytst); - } - -#ifdef CHECK - /** Self checking - use expected.txt from data directory **/ - { - int ret=0; - float tol = 0.5; -#ifdef GENERATE_OUTPUT - fWriteMatrix(result, argv[1]); -#endif - ret = fSelfCheck(result, "expected_C.txt", tol); - if (ret == -1) - printf("Error in SVM\n"); - } - /** Self checking done **/ -#endif - - fFreeHandle(trn1); - fFreeHandle(tst1); - fFreeHandle(trn2); - fFreeHandle(tst2); - fFreeHandle(result); - WRITE_TO_FILE - return 0; -} - - - diff --git a/SD-VBS/benchmarks/svm/src/c/svm.h b/SD-VBS/benchmarks/svm/src/c/svm.h deleted file mode 100644 index 9675371..0000000 --- a/SD-VBS/benchmarks/svm/src/c/svm.h +++ /dev/null @@ -1,38 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#ifndef _SCRIPT_SVM_ -#define _SCRIPT_SVM_ - -#include "sdvbs_common.h" - -typedef struct -{ - F2D* a; - float b; - float C; - int d; - int dim; - F2D* e; - float eps; - F2D* a_result; - F2D* b_result; - F2D* X; - F2D *Y; - float tolerance; - int ret; - -}alphaRet; - -alphaRet* getAlphaFromTrainSet(int N, F2D* trn1, F2D* trn2, int iterations); -float polynomial(int d, F2D* a, F2D* b, int dim); -float cal_learned_func(int k, F2D* a, float* b, int N, F2D* Y, F2D* X, int dim); -int examineExample(int i, F2D* a, float* b, float C, F2D* e, F2D* X, F2D* Y, float tolerance, int N, float eps, int dim); -int takeStep(int i, int j, F2D* a, float C, F2D* e, F2D* Y, F2D* X, float eps, float* b, int N, int dim); -F2D* usps_read_partial(F2D* dcell1, F2D* dcell2, int idx, int opt, int dim, int iterations); -int script_svm(); - -#endif - - diff --git a/SD-VBS/benchmarks/svm/src/c/takeStep.c b/SD-VBS/benchmarks/svm/src/c/takeStep.c deleted file mode 100644 index ae550c2..0000000 --- a/SD-VBS/benchmarks/svm/src/c/takeStep.c +++ /dev/null @@ -1,188 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#include "svm.h" - -int takeStep(int i, int j, F2D* a, float C, F2D* e, F2D* Y, F2D* X, float eps, float* b, int N, int dim) -{ - int ret=1; - float s; - int m, n, k; - float Ei, Ej, gamma, L, H; - F2D *a_old; - float k11, k12, k22, eta; - F2D *temp, *temp1, *temp2; - float t, t1, t2; - float bnew, delta_b; - float c1, c2, Lobj, Hobj; - - if(i==j) - return 0; - - a_old = fDeepCopy(a); - - if( asubsref(a_old,i)>0 && asubsref(a_old,i)0 && asubsref(a_old,j) C) - { - L = gamma - C; - H = C; - } - else - { - L = 0; - H = gamma; - } - } - else - { - gamma = asubsref(a_old,i) - asubsref(a_old,j); - if(gamma > 0) - { - L = 0; - H = C - gamma; - } - else - { - L = -gamma; - H = C; - } - } - - - if(L==H) - { - fFreeHandle(a_old); - return 0; - } - - temp = fMallocHandle(1, X->width); - temp1 = fMallocHandle(1, X->width); - - for(m=0; mwidth; m++) - { - asubsref(temp,m) = subsref(X,i,m); - asubsref(temp1,m) = subsref(X,j,m); - } - - k11 = polynomial(3, temp, temp, dim); - k12 = polynomial(3, temp, temp1, dim); - k22 = polynomial(3, temp1, temp1, dim); - eta = 2 * k12 - k11 - k22; - - fFreeHandle(temp1); - fFreeHandle(temp); - - if(eta<0) - { - asubsref(a,j) = asubsref(a_old,j) + asubsref(Y,j) * (Ej-Ei)/eta; - if( asubsref(a,j) < L) - asubsref(a,j) = L; - else if( asubsref(a,j) > H ) - asubsref(a,j) = H; - } - else - { - c1 = eta/2; - c2 = asubsref(Y,j) * (Ei-Ej) - eta * asubsref(a_old,j); - Lobj = c1 * L * L + c2 * L; - Hobj = c1 * H * H + c2 * H; - - if (Lobj > (Hobj+eps)) - asubsref(a,j) = L; - else if (Lobj < (Hobj-eps)) - asubsref(a,j) = H; - else - asubsref(a,j) = asubsref(a_old,j); - } - - if( fabsf( asubsref(a,j)- asubsref(a_old,j) ) < (eps* (asubsref(a,j) + asubsref(a_old,j) +eps)) ) - { - fFreeHandle(a_old); - return 0; - } - - asubsref(a,i) = asubsref(a_old,i) - s * ( asubsref(a,j) - asubsref(a_old,j) ); - - if( asubsref(a,i) < 0) - { - asubsref(a,j) = asubsref(a,j) + s * asubsref(a,i); - asubsref(a,i) = 0; - } - else if (asubsref(a,i) > C) - { - t = asubsref(a,i) - C; - asubsref(a,j) = asubsref(a,j) + s * t; - asubsref(a,i) = C; - } - - /** Update threshold to react change in Lagrange multipliers **/ - - if( asubsref(a,i) > 0 && asubsref(a,i) < C ) - bnew = arrayref(b,0) + Ei + asubsref(Y,i) * (asubsref(a,i) - asubsref(a_old,i)) * k11 + asubsref(Y,j) * (asubsref(a,j) - asubsref(a_old,j)) * k12; - else - { - if( asubsref(a,j) > 0 && asubsref(a,j) < C ) - bnew = arrayref(b,0) + Ej + asubsref(Y,i) * (asubsref(a,i) - asubsref(a_old,i)) * k12 + asubsref(Y,j) * (asubsref(a,j) - asubsref(a_old,j)) * k22; - else - { - float b1, b2; - b1 = arrayref(b,0) + Ei + asubsref(Y,i) * (asubsref(a,i) - asubsref(a_old,i)) * k11 + asubsref(Y,j) * (asubsref(a,j) - asubsref(a_old,j)) * k12; - b2 = arrayref(b,0) + Ej + asubsref(Y,i) * (asubsref(a,i) - asubsref(a_old,i)) * k12 + asubsref(Y,j) * (asubsref(a,j) - asubsref(a_old,j)) * k22; - bnew = (b1 + b2) / 2; - } - } - delta_b = bnew - arrayref(b,0); - arrayref(b,0) = bnew; - - /** Update error cache using new Lagrange multipliers 24ai **/ - - t1 = asubsref(Y,i) * (asubsref(a,i)-asubsref(a_old,i)); - t2 = asubsref(Y,j) * (asubsref(a,j)-asubsref(a_old,j)); - - temp = fMallocHandle(1, X->width); - temp1 = fMallocHandle(1, X->width); - temp2 = fMallocHandle(1, X->width); - - for (k=0; kwidth; m++) - { - asubsref(temp,m) = subsref(X,i,m); - asubsref(temp1,m) = subsref(X,k,m); - asubsref(temp2,m) = subsref(X,j,m); - } - - asubsref(e,k) = asubsref(e,k)+t1 * polynomial(3, temp, temp1, dim) + t2 * polynomial(3, temp2, temp1, dim) - delta_b; - asubsref(e,i) = 0; - asubsref(e,j) = 0; - } - } - - fFreeHandle(a_old); - fFreeHandle(temp); - fFreeHandle(temp1); - fFreeHandle(temp2); - ret = 1; - return ret; -} - - - diff --git a/SD-VBS/benchmarks/svm/src/c/usps_read_partial.c b/SD-VBS/benchmarks/svm/src/c/usps_read_partial.c deleted file mode 100644 index 9cc9df0..0000000 --- a/SD-VBS/benchmarks/svm/src/c/usps_read_partial.c +++ /dev/null @@ -1,85 +0,0 @@ -/******************************** -Author: Sravanthi Kota Venkata -********************************/ - -#include "svm.h" - -F2D* usps_read_partial(F2D* dcell1, F2D* dcell2, int idx, int opt, int dim, int iterations) -{ - F2D *ret, *X, *Y; - F2D *ADD; - int i, j, k, m, n; - - F2D *temp, *temp1; - - if(opt == 1) - { - for(i=0; iwidth); - for(m=0; mwidth; n++) - { - subsref(X,m,n) = subsref(dcell1,m,n); - } - } - } - else - { - temp = fDeepCopy(X); - fFreeHandle(X); - temp1 = fMallocHandle(dim, dcell2->width); - - for(m=0; mwidth; n++) - { - subsref(temp1,m,n) = subsref(dcell2,m,n); - } - } - X = ffVertcat(temp, temp1); - fFreeHandle(temp); - fFreeHandle(temp1); - } - } - ret = fDeepCopy(X); - fFreeHandle(X); - } - else - { - for(i=0; i