Skip to content

fahadhamdan1/NNOF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NNOF: Neural Network Optimization Framework

This is a C++ project aimed at implementing and optimizing neural network operations for both CPU and GPU. The primary goal is to compare performance between basic CPU operations and optimized CPU operations (SIMD), as well as to compare performance between CPU and GPU implementations of basic neural network components.

Project Overview

This project implements:

  1. A Tensor class for handling multi-dimensional data
  2. CPU implementations of basic operations (addition, matrix multiplication)
  3. SIMD-optimized versions of above operations using AVX instructions
  4. A FullyConnectedLayer class with both CPU and GPU forward pass, using OpenCL for GPU
  5. A benchmarking system to compare baseline and optimized CPU performance, and to compare CPU and GPU performance (Latency, Throughput, Memory Usage)

Key Components

  • tensor.h/cpp: Defines the Tensor class for data representation
  • ops_cpu.cpp: CPU implementations of neural network operations
  • ops_opencl.cpp: GPU (OpenCL) implementations of neural network operations
  • fully_connected_layer.h/cpp: Implementation of a fully connected neural network layer
  • gpu_operations.h/cpp: Wrapper for OpenCL operations
  • benchmark.h/cpp: Benchmarking utilities

Example Benchmarking

image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages