Katie Pfleger Julia Sheth Alana Anderson Nicholas Sparks Pearce - - PowerPoint PPT Presentation

katie pfleger julia sheth alana anderson nicholas sparks
SMART_READER_LITE
LIVE PREVIEW

Katie Pfleger Julia Sheth Alana Anderson Nicholas Sparks Pearce - - PowerPoint PPT Presentation

Katie Pfleger Julia Sheth Alana Anderson Nicholas Sparks Pearce Kiesser Co-Manager Co-Manager Language Guru Tester System Architect kjp2157 jns2157 afa2132 ns3284 pck2119 MOTIVATION Machine learning is now more prevalent than ever,


slide-1
SLIDE 1

Julia Sheth Co-Manager jns2157 Katie Pfleger Co-Manager kjp2157 Alana Anderson Language Guru afa2132 Nicholas Sparks Tester ns3284 Pearce Kiesser System Architect pck2119

slide-2
SLIDE 2

MOTIVATION

Machine learning is now more prevalent than ever, with 51% of enterprises deploying ML Matrix manipulations are often essential to machine learning algorithms

slide-3
SLIDE 3

PROJECT WORKFLOW: TOOLS

slide-4
SLIDE 4

PROJECT WORKFLOW: TIMELINE

  • sept. 19th

project proposal

  • ct. 15th

LRM, scanner, parser

  • nov. 14th

hello world

  • nov. 17th

C library

  • nov. 27th

adding matrix to codegen

  • dec. 14th

print matrix

  • dec. 15th

matrix

  • perations

working

  • dec. 17th

present!

slide-5
SLIDE 5

ARCHITECTURE:

slide-6
SLIDE 6

LANGUAGE OVERVIEW:

  • perators

+, -, *, /, %, >, <, >=, <=, == control flow for (i = 0; i < 5; i = i + 1) {} while (i > 5) {} if(i == true) {} else {} comments /* this is a comment in MATRX */ non-matrix types int, bool, void, float, string, char function declarations: int main() { return 0; } matrix foo(matrix m) { return m; }

slide-7
SLIDE 7

LANGUAGE OVERVIEW: MATRICES

matrix declaration: matrix m; /* declares a matrix m */ matrix initialization: matrix m = [[1,2][3,4]]; /* declares and initializes m */ matrix n; /* declares a matrix n */ n = [[5,6][7,8]]; /* initializes n */

slide-8
SLIDE 8

LANGUAGE OVERVIEW: MATRICES

matrix arithmetic operations: matrix m = [[1,2][3,4]]; matrix n = [[5,6][7,8]]; printm(transpose(m)); /* prints the matrix m transposed */ printm(matmult(m,n)); /* multiplies matrix m by matrix n */ printm(matadd(m,n)); /* adds matrices m and n */ printm(dot(m,n)); /* takes the dot product of m and n */ printm(det(m,2)); /* takes the determinant of m, which has dimensions 2 x 2 */

slide-9
SLIDE 9

IMPLEMENTATION: MATRICES

struct matrix { int num_rows; int num_cols; int** matrixAddr; int buildPosition; };

We used a C library to implement matrix functions and then linked the library through codegen.

slide-10
SLIDE 10

TESTING:

  • At any given point, each new feature in codegen is

semantically checked

  • Used regression test suite with target pass/fail test

cases, ensure that other features still worked

  • If necessary, perform manual checks
slide-11
SLIDE 11

DEMO

slide-12
SLIDE 12

SPECIAL THANKS TO OUR TA DEAN DENG!

THANK YOU!