We introduce TinyMT implemented in CUDA, which is a GPGPU environment by NVIDIA.
This program is slower than MTGP and CURAND. Still, we belive this is useful for CUDA users.
The following environment are required to compile and execute this program.
The followings are not required.
If you don't use original TinyMT, the outputs of tinymtdc is in TinyMT DATA.
The following files are intended to work with kernel programs written by users.
The following files are intended to work with host programs written by users.
The following files are sample kernel programs which call the functions in tinymt32_kernel.cuh or tinymt64_kernel.cuh.
Sample files are out of our support, and Users can regard they are not under our copyright.
The following files are sample host programs which call the functions in sample32_kernel.cu or sample64_kernel.cu.
The following file contains utility functions for host program to call cuda functions. This tool is only for test program. The error handlings in test_tool.hpp are not carefully designed.
Four executable files are made by typing make all.
./sample32 tinymt32dc.0.65536.txt 12 256 100000000will generate 100000000 (or over) single precision floating point numbers by using parameters in tinymt32dc.0.65536.txt and using 12 and 256 for block number and thread number for kernel program call, and will sum up the generated numbers for each thread, and will show the elapsed time.
If you have doxygen, you can make documents by typing make doc
The following graphs are made from the outputs of sample32-test and sample64-test. They shows the elapsed time by milliseconds to generate 100,000,000 float and double pseudo-random numbers. x-axis shows blocks and y-axis shows elapsed time by milliseconds.