Wordlist - Collection of some common wordlists such as RDP password, user name list, ssh password wordlist for brute force I will probably be done with this sometime in January 2011. At some point, one should be able to run CUDA programs within the debugger, set breakpoints at all points in the code, including the kernel, step through the program, display variables, etc. Also, I am implementating a Visual Studio debug engine for the emulator. Latest changes: I have corrected several bugs, including an embarrassing bug in cudaMemset in emulation mode.
It will contain information on how to build WASTE, the requirements and design, and some general information on how it works. How it WorksIf you are interested in learning more about WASTE, please read the document. If you use a lot of the CUDA API, then it will fail. Also, this program implements a minimum in API hooking. Problems Running?If you have problems running the program, please send me email Please note: this program is for debugging Windows programs, and was built with Windows 7. d device_name This option allows you to set the device to use in emulation. k, -skip-on-error This option sets the option to skip any immediately following CUDA API memory call. q, -quit-on-error This option sets the option to quit your program immediately if there is an error detected. Use this if you want to see every call to CUDA as it is being executed. t, -trace This option sets the option to output a message for all calls to the wrapper. If you perform calculations of pointers addresses (e.g., "cudaMemcpy(dev_pointer+20, &hostvar, sizeof(int), cudaMemcpyHostToDevice) "), then you should set this to false. n, -non-standard-ptr This option sets the option of whether to assume device pointers passed to CUDA routines cudaMemset and cudaMemcpy but be exactly the pointers returned from cudaMalloc or cudaHostAlloc. b=NUMBER, -padding-byte=NUMBER This method sets the value of the byte used to set each byte in the padding. The padding is used to check for buffer over- and under-runs. s=NUMBER, -padding-size=NUMBER This option sets the additional size of allocated memory that contains a padding of bytes. These are available through the following command line options which precede the file name of your program. There are several options that you can set to change the behavior of the debugging wrapper. It will output error messages to std::cerr (stderr) detailing memory errors. Execute your program in a cmd or bash shell using: waste your-program.exe Your program will execute with the CUDA emulator by default. If you have problems with the Release version, you can try to use the Debug version to get more information.) Modify the PATH environmental variable to include c:\\program files\\waste\\waste. (There are two versions: Release and Debug.
How to UseDownload the MSI installation file for Waste and install it.
While the Ocelot executes native code using a PTX to LLVM translation, this emulator interprets each instruction, so it is slow. It is just to get something working in the short term. The code is not particularly clean, elegant, or fast, but this is not the goal.
I am working on this code quite often, and some versions that may be checked in may have regressions. You can download the installation program, or you can "svn co" the sources, and build the latest version if you like.
This program is built and run under Windows only, using Microsoft Visual Studio/C++ 2010. My goal is to have this done by the end of September 2010, less than two months of coding. Perhaps by the time I complete enough of this project, Ocelot will have progressed to handle Windows programs, and this will only be a "waste" of time. Since I'd like to develop CUDA programs using my laptop, and because I don't know when Ocelot will be ported to Windows, I am writing this emulator. And, currently, Ocelot works only on Linux, and does not work seem to work on my "Hello World" program (). Why another emulator? Recently, Nvidia decided to drop the emulator mode from its CUDA SDK (version 3.1). CUDA Waste is a wrapper for emulation of CUDA programs. NOTE: This project is currently under development.