This thesis consists of an implementation of a fuzzy model using the graphics card and the CUDA environment. Our fuzzy model consists of entities, which are all the same type. Entity interaction occurs only between neighbouring entities, where the probability of an interaction is inversely proportional to the distance between the neighbouring entities. For this reason an optimisation of the process of gathering neighbouring entities has been made by dividing the simulation area into bins. The algorithm that drives the entity interaction is implemented with multiple kernels, which are described in detail in this thesis. For the purpose of ensuring the correctness of our results, JUnit tests were used along with the jFuzzyLogic library, which serves as a reference fuzzy logic system. For each entity we tested if the choice of the neighbouring entity was valid. We also tested the individual membership functions and the final crisp output. We conclude this thesis by comparing the execution times of the individual implementations and measuring the speed up value of our graphic card implementation.
|