Mark Silberstein‎ > ‎

GPUfs: Integrating a File System with GPUs




GPUfs system
enables  direct access to a host file system from GPU kernels.

Main features
  • POSIX-like API for GPU programs: open/close/read/write/mmap
  • Random file access from running GPU programs without stopping the kernel
  • Unbounded or dynamic input/output working sets
  • Weakly consistent distributed buffer cache which spans both CPU and GPU with multi-GPU support
  • Full paging support to work with data sets exceeding GPU physical memory

ASPLOS13 paper is available here: [paper][bibtex][slides][extended version of slides]

A preliminary prototype is available from GITHUB. It is being actively updated so please download the release tags.
The prototype is a work in progress, so at the moment it can be used only to illustrate the main concepts.

If you have any comments, healthy criticism or requests, feel free to drop me a line. I am very interested in learning about possible applications of GPUfs  in production systems, and even more  so about its limitations.


GPU Code sample

The following GPU kernel illustrates  data processing directly from file. No CPU code development is necessary.


__global__ void file_cpy_to_gpu(char* src_file)
{

       int zfd=gopen(src,O_GRDONLY);
       
       int filesize=fstat(zfd);

       for(size_t me=0; me<ONE_BLOCK_READ; me+=FS_BLOCKSIZE)
        {
                int my_offset=blockIdx.x*ONE_BLOCK_READ;

                unsigned int toRead=min((unsigned int)FS_BLOCKSIZE,(unsigned int)(filesize-me-my_offset));
                volatile void* data=gmmap(NULL, toRead, 0 , O_GRDONLY,zfd,my_offset+me);
        /** ...........................................................
                 process data from file
            ...........................................................
                  **/

                gmunmap(data,0);
        }
          gclose(zfd);
}






Subpages (1): GPUfs - bibtex
Č
Ċ
ď
Mark Silberstein,
Mar 25, 2013, 10:17 PM
Ċ
ď
Mark Silberstein,
May 7, 2013, 11:58 AM