GPU-programming-with-CUDA

所属分类:GPU/显卡
开发工具:Jupyter Notebook
文件大小:3828KB
下载次数:0
上传日期:2018-07-19 16:22:02
上 传 者sh-1993
说明:  使用CUDA进行GPU编程,,
(GPU-programming-with-CUDA,,)

文件列表:
Code (0, 2018-07-18)
Code\Comparison (0, 2018-07-18)
Code\Comparison\Console output (0, 2018-07-18)
Code\Comparison\Console output\comp_console.cu (24792, 2018-07-18)
Code\Comparison\Table output (0, 2018-07-18)
Code\Comparison\Table output\comp_table.cu (24525, 2018-07-18)
Code\Comparison\Table output\double.cu (12560, 2018-07-18)
Code\Comparison\Table output\initialization.cu (11160, 2018-07-18)
Code\Comparison\Table output\memory.cu (24974, 2018-07-18)
Code\Individual_algo (0, 2018-07-18)
Code\Individual_algo\main_cpu_double.cu (11561, 2018-07-18)
Code\Individual_algo\main_cpu_float.cu (11420, 2018-07-18)
Code\Individual_algo\main_gpu.cu (14857, 2018-07-18)
Code\timer.h (857, 2018-07-18)
Notebooks (0, 2018-07-18)
Notebooks\Graphs.ipynb (495400, 2018-07-18)
Notebooks\PythonCheckForLi.ipynb (41783, 2018-07-18)
Notebooks\csv_files (0, 2018-07-18)
Notebooks\csv_files\result1.csv (1367, 2018-07-18)
Notebooks\csv_files\result10.csv (19525, 2018-07-18)
Notebooks\csv_files\result2.csv (12925, 2018-07-18)
Notebooks\csv_files\result3.csv (334, 2018-07-18)
Notebooks\csv_files\result4.csv (1555, 2018-07-18)
Notebooks\csv_files\result5.csv (4160, 2018-07-18)
Notebooks\csv_files\result6.csv (471, 2018-07-18)
Notebooks\csv_files\result7.csv (1338, 2018-07-18)
Notebooks\csv_files\result8.csv (1171, 2018-07-18)
Notebooks\csv_files\result9.csv (1028, 2018-07-18)
Notebooks\csv_files\result_double1.csv (2185, 2018-07-18)
Notebooks\csv_files\result_double2.csv (507, 2018-07-18)
Notebooks\csv_files\result_double3.csv (211, 2018-07-18)
Notebooks\csv_files\result_double4.csv (110, 2018-07-18)
Notebooks\csv_files\result_init1.csv (921, 2018-07-18)
Notebooks\csv_files\result_init2.csv (1506, 2018-07-18)
Notebooks\csv_files\result_init3.csv (412, 2018-07-18)
Notebooks\csv_files\result_init4.csv (516, 2018-07-18)
Notebooks\csv_files\result_init5.csv (679, 2018-07-18)
... ...

# To the attention of Pr. Lokman ABBAS TURKI This file aims at helping you understand the structure of our project. ## The report `report.pdf` We wrote a small report that sums up the steps used in Gragg's algorithm, presents the choice we have made to implement it and highlights the main results with a few chosen graphs. ## The different codes We wrote different programs, corresponding to different tasks that we wanted them to perform. ### Testing the different algorithms/ technologies individually, in `Code/Individual_Algo/` `main_cpu_double.cu`: *CPU is used, with a double precision* to compute the n roots of a secular equation, n being given by the user.

`main_cpu_float.cu`: *CPU is used, with a single precision* to compute the n roots of a secular equation, n being given by the user.

`main_gpu_double.cu`: *GPU is used, with a single precision* to compute the n roots of a secular equation, n being given by the user. **This code is the one that has the highest amount of commentaries to illustrate the details of our approach in CUDA**. ### Comparing the performance, in `Code/Comparison/` #### On the terminal, in `Code/Comparison/Console output` `comp_console.cu`: *Both CPU and GPU with single precision* are used to compute the n roots of a secular equation, n being given by the user. The differential in performance can be seen immediately in the console (running time and magnitude of the loss). *The GPU procedure used in this setting does not use shared memory and the GPU is not warmed up before*.
#### Through a generated csv, in `Code/Comparison/Table output` These codes were mainly used to generate the graphs are compare the performance of the different procedures in an efficient and visual way.

`comp_table.cu`: *Both CPU and GPU with single precision* are used to compute the n roots of a secular equation. A range of n is given by the user and performance (running time and magnitude of the error) is stored on a csv file ('result.csv'). To compare them on a fair basis, the user can choose to run the test several time. For each n being tested, the GPU is warmed-up before the first iteration. To try with high values of n, the user can also choose not to compute the roots with the CPU (only GPU). The GPU procedure used in this setting does not use shared memory.

`double.cu`: Performs the same task with *double precision for the CPU* (output is 'result_double.csv')

`memory.cu`: Performs the same task with the GPU, in a *version using shared memory* (output is 'result_mem.csv')

`initialization.cu`: Performs the same task with CPU, the algorithm being *initialized randomly* (output is 'result_init.csv') ## The data, in `Notebooks/csv_files/` All of the csv files generated by previous algorithms are stored there. This folder is useful for the following Python Notebook. ## The Python Notebooks, in `Notebooks/` `Graphs.ipynb`: used to exploit the different csv and produce the graphs that are in the report. `PythonCheckForLi`: used to code the CPU algorithm in Python and check whether we obtained the same roots or not.

近期下载者

相关文件


收藏者