TinyMT CUDA Implementation

Japanese Version


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.

Sample Files and a tool

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.

Make executable files of samples and execution

Four executable files are made by typing make all.

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.

graph of tinmt32 output
graph of tinmt64 output