Desenvolver um Software

Completed Posted May 17, 2014 Paid on delivery
Completed Paid on delivery

DESCRIPTION

I'm working on a program that receives an audio wave file as input (speech) and then it finds the beginning and the end of each word in the input.

The program parses the raw wave file and generates a vector of it. Then, it finds all the words in the signal, and, for each word, extracts a vector of characteristics (28 elements). After that, it compares this vector with other ones (by euclidian distance and mahalanobis distance) that contains the pattern for the word I'm searching for.

The program works and manages to extract all the words in the sound file, as well as find the occurrences of my chosen word.

It works sequentially: I have a loop that creates the vector of characteristics for the first word, then calls a function that compares the characteristics and returns true when it is the word I want.

THE JOB

* I need a function to run on GPU (GTX 680) implemented in CUDA to do this in parallel, and

* I want it to win against the sequential implementation (i.e., it should take less time to run)

This is how the program should work:

* First the sequential part would find the beginning and end positions of each words, putting those pairs in a pair of arrays (already done and working).

* Then, the parallel part (the kernel that is to be executed by the GPU) would extract the characteristics vectors from all the words and mark whether they are the searched word or not in a bool array, as well as saving their initial and final positions in the original audio file.

I implemented a part of it in parallel (the extraction of the 28 characteristics can run both in parallel and sequentially) but have no time left to implement this other part. Currently the sequential is faster (by a factor of ~2.5), most likely due to the overhead (and cudaMemcpy).

I will provide the commented source code and the visual studio 2010 project.

TIME FRAME

I need this done in 8 days and I'm willing to pay extra for this hurry. The first milestone is to be delivered in one week.

This time frame is non-negotiable.

Thankfully, this is a very simple program with no complicated structures whatsoever.

MILESTONES

* 5 days: the program works, but may not perform well yet

* 8 days: the parallel execution tops the sequential one. You may copy the input file to make it bigger to give advantage to the parallel execution.

DELIVER

I need you to deliver the updated visual studio project that compiles, along with all of its source code. I would like the code to be commented so I can understand it later. I can pay extra for extra comments in the code, but the time frame can not be extended.

C Programming C++ Programming CUDA

Project ID: #5954272

About the project

3 proposals Remote project Active May 17, 2014

Awarded to:

prad08

Hi I am a Masters student with wide experience in GPU computing. I have worked with CUDA and OpenCL extensively during my masters program. I can help you with this project. For the performance optimization in the final More

$222 USD in 3 days
(14 Reviews)
4.5

3 freelancers are bidding on average $262 for this job

systemation

Aucune proposition n'a encore été fournie.

$288 USD in 7 days
(0 Reviews)
0.0
teeares

A proposal has not yet been provided

$277 USD in 3 days
(0 Reviews)
0.0