Skip to content
Sergio Ramírez edited this page Jun 1, 2015 · 3 revisions

GPU version

Here, we show all information about the parallel version for GPU written using the Nvidia CUDA toolkit.

Prerequisites:

We built fast-mRMR for GPU using CUDA 7.0. NVIDIA CUDA can be downloaded for almost all platforms in: https://developer.nvidia.com/cuda-downloads.

Follow this instructions to ensure that CUDA was succesfully installed on your machine.

Compilation

Using Eclipse Nsight

Since CUDA toolkit comes with a custom Eclipse version, we recommend using it to compile the source code. The original Eclipse project can be found here, if you dont know how to import projects from github in eclipse, please follow this tutorial.

Using the makefile

In order to compile this version, we include a Makefile example in gpu/src folder that generates a binary file called fast-mrmr.

cd fast-mRMR/gpu/src && make && chmod +x fast-mrmr

Example

To execute the feature selection method, we must type the following (the same as for CPU version):

cd fast-mRMR/gpu/src && ./fast-mrmr -f ../data.mrmr -n 50

The selector is designed to only read data in mRMR-format. Data in CSV format can be transformed to this specific format using Data Reader. The options available in the algorithm are:

-f <inputfile> MRMR file generated using mrmrReader (default: ../data.mrmr).
-c <classindex> Indicates the class index in the dataset (default: 0).
-a <nfeatures> Indicates the number of features to select (default: 10).
-h Prints this message.

fast-mRMR's output consists of a ranking of features separated by commas (in descending order):

./fast-mrmr
765,1582,1672,513,1671,1325,1381,1972,1423,1412

Addtional Notes

The GPU version works exactly like CPU version, just remember that you need enough space on your Graphics Card memory to handle one single feature. Using the GPU version, only worth when the number of samples is higher than a thousand and data can be stored easily in GPU's memory. It is also worth for cases where the number of diferent values per feature is lower than 64.