Skip to content

shyikadev312/gpu-spectrogram

Repository files navigation

NUAND CONFIDENTIAL AND PROPRIETY ALL RIGHTS RESERVED

This repository belongs to the Nuand GPU accelerated spectogram project.

Table Of Contents

Supported platforms

The following OS are supported:

  • Windows
  • Linux

The following OS are verified:

  • Windows 10
  • Windows 11
  • Ubuntu 22.04
  • Ubuntu 24.04

The following architectures are supported:

  • AMD64

The following compilers are supported:

  • C++20 compilers (msvc, g++, clang)

How to build

How to build on Windows

Required software:

  • C++20 compiler (Visual Studio 2022)
  • Latest graphics card driver installed (or latest OpenCL driver installed)

Compilation steps:

  1. Open GPU Spectrogram.sln in Visual Studio 2022
  2. Ensure the correct build profile is set (either Debug x64 or Release x64)
  3. Build (Go to Build -> Build Solution or press F7)

How to build on Linux

Required software:

  • C++20 compiler (g++ 13.0 or newer, clang 15.0 or newer)
  • CMake
  • Python3
  • Conan 1.x (1.62 version is verified. DON'T INSTALL Conan major version 2)
  • Latest graphics card driver installed (or latest OpenCL driver installed)

Shell commands to install the required software:

sudo apt update

sudo apt install git g++ clang cmake python3 python3-pip clang-format pkg-config -y

sudo apt install nvidia-opencl-dev -y

sudo apt install libgl1-mesa-dev libx11-xcb-dev libfontenc-dev libxcb-cursor-dev libice-dev libsm-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-dri3-dev uuid-dev libxcb-util-dev libxcb-util0-dev -y

sudo apt upgrade -y

Install Conan package manager. It is required to install exactly major version 1. Don't install Conan version 2, it has some breaking changes, and these instructions won't work.

sudo pip install conan==1.62

If you get the next warning from Conan: "WARNING: GCC OLD ABI COMPATIBILITY", use these commands to set the new version:

conan profile new default --detect
conan profile update settings.compiler.libcxx=libstdc++11 default

How to build from command line:

cd gpu-spectrogram
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .

Project structure

Project structure and architecture are described in the Architecture section.

Problems, tips and tricks

  • Use Conan 1.x,. Don't install Conan 2.0, it's not fully stable yet.
  • Ensure that you have a powerful discrete GPU with the newest drivers installed.
  • Ensure that your GPU has an OpenCL support.
  • If you have poor performance on Windows+Nvidia environment, try to disable VSync in Nvidia control panel. There is an issue with OpenCL+OpenGL interop freeze when calling enqueueAcquireGLObjects().

Third-party licenses

All licenses are permissive and their usage is allowed for commercial use with the copyright notice provided.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published