alexanderstohr / cuda-waste Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/cuda-waste
Automatically exported from code.google.com/p/cuda-waste
Hi, I am very new to CUDA. I have no Nvidia device, so I would like to use the
emulator.
I have a laptop with win 7 32bit, vs2012
I installed CUDA SDK 5.5, plus managedCUDA 5.5
I created a very simple hello world project and I am trying to run it with
Waste. But even when I reduce the code just to an empty Main() method, I am
always getting an error - CudaTest stopped working. When I choose to debug, the
exception is
Unhandled exception at 0x00000000 in CudaTest.exe: 0xC0000005: Access violation
executing location 0x00000000.
I tried couple of versions of Waste, but with the same result.
any suggestions?
regards,
Jakub
Original issue reported on code.google.com by [email protected]
on 6 May 2015 at 10:18
With the 5.0 version of the CUDA Toolkit, nested blocks of PTX seem to be
generated. Waste does not parse this correctly, and does not interpret this
code correctly. PTX with nested blocks can be generated with kernel printf's.
Original issue reported on code.google.com by [email protected]
on 11 Jun 2013 at 2:35
For code in the kernel,
#define DIV 6
...
int row = blockIdx.x / DIV;
the following instructions are generated:
mul.hi.u32 %r11, %r1, -1431655765;
shr.u32 %r12, %r11, 2;
I have no clue what the compiler is doing here. But, there seems to be multiple
problems in the DoMul code.
Original issue reported on code.google.com by [email protected]
on 12 Jun 2013 at 3:04
Running Waste on this input fails:
//#include <iostream>
#include <stdio.h>
#include <Windows.h>
__global__ void fun(int * mem)
{
*mem = 1;
}
int main()
{
char * c = "wrapper.dll";
LoadLibraryA(c);
void * p = &LoadLibraryA;
void * q = LoadLibraryA;
int h = 0;
int * d;
cudaMalloc(&d, sizeof(int));
cudaMemcpy(d, &h, sizeof(int), cudaMemcpyHostToDevice);
fun<<<1,1>>>(d);
cudaThreadSynchronize();
int rv = cudaGetLastError();
cudaMemcpy(&h, d, sizeof(int), cudaMemcpyDeviceToHost);
printf("Result = %d\n", h);
//std::cout << "Result = " << h << "\n";
return 0;
}
Original issue reported on code.google.com by [email protected]
on 24 May 2013 at 9:24
Compiling CUDA programs with debug causes .loc statements to be added to the
source. Waste (specifically Execute() and Dispatch()) in the emulator seems to
not pass over this code, and causes a crash.
Original issue reported on code.google.com by [email protected]
on 11 Jun 2013 at 2:32
When emulating MVSCMP.exe, the parser halts on a CVT instruction:
cvt.f32.f64.rn %f141,%fd163;
Basically, it's with syntax that not documented in the PTX ISA guide.
Original issue reported on code.google.com by [email protected]
on 24 May 2013 at 3:38
When compiling a CUDA program, the host can be either 32- or 64-bit. But, CUDA
NVCC also takes a flag for 32- or 64-bit targets as well. It's clear 32-bit
host/32-bit GPU work fine. But, all the other combinations need to be flushed
out and verified.
Original issue reported on code.google.com by [email protected]
on 11 Jun 2013 at 1:28
The code must be restructured and enhanced to include both real and emulated
devices. The CUDA API should be able to work with a mixture of real and
emulated devices.
Original issue reported on code.google.com by [email protected]
on 28 May 2013 at 1:44
Waste does not perform DLL injection correctly with 64-bit programs. Waste
fails on GetThreadContext(), but doesn't even print an error message when it
fails. Waste is build as a 32-bit application, and currently only works on
32-bit applications.
Original issue reported on code.google.com by [email protected]
on 22 May 2013 at 6:53
Performing a printf in the kernel used to work fine, but doesn't work in 64-bit
mode if the target GPU is 32-bit. (There's a switch for NVCC to set the target
word size.) In Waste, vprintf is called directly on a stack that is created
via PTX. Since the emulation code is 64-bit, and the PTX is 32-bit, the
parameters constructed for vprintf are too small, and the vprintf prints out
garbage.
To get this to work, Waste has to either work in 32-bits on a 32-bit PTX target
(and 64-bits for a 64-bit target), or Waste must implement a vprintf that takes
into account the word size of the target.
Original issue reported on code.google.com by [email protected]
on 11 Jun 2013 at 1:21
I wanted to test if cmpmvs (http://ptak.felk.cvut.cz/sfmservice/?menu=cmpmvs)
can be run waste. The issue is, that that program needs a ini file as input:
cmpmvs.exe example.ini
If you run waste like that it wont work:
waste cmpmvs.exe example.ini
...waste (or cmd?) just ignores the ini and...
waste "cmpmvs.exe example.ini"
... cant find the Program.
Original issue reported on code.google.com by [email protected]
on 12 Apr 2013 at 2:49
Microsoft has removed VS setup project support completely with VS2012.
InstallShield is the only alternative (apparently, and recommended), but costs
$600, as much as VS!! We need to find an alternative setup solution that will
work for VS2010 and VS2012.
Original issue reported on code.google.com by [email protected]
on 19 Jun 2013 at 10:47
If 32-bit code is attempted to be run with Waste 64-bit, the client program
runs CUDA against the GPU hardware. Waste should stop if it can't run
correctly, not default to the CUDA runtime.
Original issue reported on code.google.com by [email protected]
on 14 Jun 2013 at 2:31
When Waste is called with a program that requires command-line arguments, Waste
will fail to call the program properly, spawning the program but without any
arguments.
E.g., waste CMPMVS.exe ini/defaultLionHanau.ini
Original issue reported on code.google.com by [email protected]
on 22 May 2013 at 6:22
In order to run the emulator, Waste needs to spawn the client program with DLL
injection. In 32-bit mode, this wasn't a problem. But for some reason, it
fails in GetThreadContext in 64-bit mode if Waste isn't started with elevated
privileges.
Original issue reported on code.google.com by [email protected]
on 25 May 2013 at 3:33
During initialization of CUDA Waste wrapper.dll, the client program crashes.
As it turns out, the stack in most instances is too small. The main thread
must be executed on a larger piece of memory.
Original issue reported on code.google.com by [email protected]
on 25 May 2013 at 7:10
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.