IT2NFS-GPU realizes an interval type-2 neural fuzzy system on graphic processing units (GPU) to reduce training time.
The software platform used is the compute unified device architecture (CUDA) with C language.
This document explains the use of IT2NFS-GPU. Detailed implementation techniques of IT2NFS-GPU can be found in the following paper:
C. F. Juang, W. Y. Cheng, and C. W. Liang, “Speedup of learning in interval type-2 neural fuzzy systems through graphic processing units,” accepted to be published in IEEE Trans. Fuzzy Systems, 2015.
For GPU implementation of type-1 neural fuzzy systems, please visit the following website to download the implementation source code
Table of Contents
=================
- Quick Start
- Installation and Data description
- ' IT2NFS-GPU' Usage
- Additional Information
Quick Start
===========
If you are new to GUDA, please visit the website as follows:
"http://developer.nvidia.com/category/zone/cuda-zone"
which provides all the necessary tools for running CUDA on different systems which includes developer Drives, GPU Computing SDK, CUDA toolkit and Started Guide.
The Started Guide provides installation and verification in great details on Windows, Linux and Mac.
The CUDA Toolkit has all the development tools, libraries,
and documentation you need to create applications for the CUDA architecture, including:
-CUDA C/C++ Compiler
-GPU Debugging & Profiling Tools
-GPU-Accelerated Math Libraries
-GPU-Accelerated Performance Primitives
Installation and Data description
============================
On windows systems, we run CUDA on Visual Studio 2008
What you require are:
1) Visual Studio 2008
2) CUDA SDK
3) CUDA Toolkit
Step 1: Add cuda.rules to your project
Step 2: Setup your BIN, INCLUDE, and LIB directories.
Final Step: Specify the CUDA Runtime and CUTIL32D Linkers
If everything has been properly setup, the "build" command should work.
Data description:
This example studies prediction of the Mackey-Glass chaotic time series. (See Eq. (39) in the paper). Four inputs are used to predict one output. A total of 3000 patterns are used for training and 500 patterns for testing.
Data format: Each row represents an input-output data pair. The first four columns contain inputs and the final column contains the desired outputs.
IT2NFS-GPU Usage
============================
On Unix systems, type
'cd /home/username/NVIDIA_GPU_Computing_SDK/C/src/ IT2NFS-GPU/'
to change to target folder
and then compile IT2NFS-GPU.cu by NVCC
'nvcc IT2NFS-GPU.cu -o IT2NFS-GPU -arch sm_13'
run the ouput file IT2NFS-GPU
'./ IT2NFS-GPU'
**Explanations of the variables used in the C code:
_in_varl: Number of input variables (the maximum is 256) ( fig1 in the paper)
_out_varl: Number of output variables ( fig2 in the paper)
_over_par: The overlap parameter between two clusters ( fig3 in the paper)
_int_width: Initial width of the first cluster ( fig4 in the paper)
_bias : set initial range of uncertain mean to be 2x_bias (see Eq. (12))
_eta: Learning rate of gradient descent ( fig5 in the paper)
_ite_num: Iteration number
_time: Training data, total sample number
_Test_time: Test data, total sample number
_max_c: Maximum number of clusters allowed
_threshold_value: the threshold for generating a new cluster (rule) ( fig6 in the paper)
_RMSE_coeff: normalization coefficient for error calculation.
training_data_name: Training data file name and path
test_data_name: Test data file name and path
Additional Information
======================
For any questions in implementing the IT2NFS-GPU, please email
W. Y. Cheng: a0810xyz@gmail.com
For any comments, please e-mail
C. F. Juang, cfjuang@dragon.nchu.edu.tw
fig1
fig2
fig3
fig4
fig5
fig6