Giter Club home page Giter Club logo

vulkan-sim's People

Contributors

aamirraihan avatar aamodt avatar amruth-s avatar andrewboktor avatar brad-mengchi avatar cng123 avatar coffeebeforearch avatar deval281shah avatar eltantawy avatar gangmul12 avatar gjulianm avatar jooybar avatar jwang323 avatar lucylufei avatar mkhairy avatar mohammadrezasaed avatar mrggc avatar negargoli avatar negargoli93 avatar pigrew avatar psuchita avatar qqldd avatar rgreen avatar rspliet avatar shen203 avatar speverel avatar sspenst avatar tayler-hetherington avatar tgrogers avatar tommychouyc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

vulkan-sim's Issues

Run./ray tracer-scene 6-height 320-width 448 "Trace dumped" does not appear.

Hello, author. When I installed vulkan-sim, the following problems occurred. At this step,/raytracer-scene 6-height 320-width 448 has a problem, and there is no "Trace dumped" in the terminal, which looks just like the situation without the simulator installed. I didn't report any mistakes before doing it. Please take a look at it for me.

1688625225550

RTV6: Driver does not support the 0x46a6 PCI ID

I installed vulkan-sim in a docker container along with dependencies. When I run the ray tracing app, the integrated Intel GPU is picked as the physical device, however, I get the following error.

Driver does not support the 0x46a6 PCI ID.
MESA-INTEL: error: ../src/intel/vulkan/anv_device.c:324: VK_ERROR_INCOMPATIBLE_DRIVER
FATAL: failed to enumerate (ERROR_INITIALIZATION_FAILED)

 0# 0x00005598A9C3FD76 in ./RayTracer
 1# 0x00005598A9C4184F in ./RayTracer
 2# 0x00005598A9C8592B in ./RayTracer
 3# 0x00005598A9C8647C in ./RayTracer
 4# 0x00005598A9C7C7C4 in ./RayTracer
 5# 0x00005598A9C8B3C0 in ./RayTracer
 6# 0x00005598A9C9C8F0 in ./RayTracer
 7# 0x00005598A9C495E6 in ./RayTracer
 8# __libc_start_main in /usr/lib/x86_64-linux-gnu/libc.so.6
 9# 0x00005598A9C4ABDE in ./RayTracer

Following is the ICD file

{
    "ICD": {
        "api_version": "1.2.145",
        "library_path": "/home/vulkan-sim-root/mesa-vulkan-sim/lib/lib/x86_64-linux-gnu/libvulkan_intel.so"
    },
    "file_format_version": "1.0.0"
}

I suspect something went wrong during mesa build. Any hints?

I'm running vulkan-sim in a Ubuntu 20.04 container with Cuda 11.7 with an Intel 12700H CPU.

Running provided traces on cluster CPUs without a graphics card

Hi,

I was trying to run RayTracingInVulkan and vulkan-sim on a cluster with a CPU but without graphics cards. I don't need to generate new traces, just run the existing traces but change the GPGPUsim configurations in vulkan-sim.

My command is: "./RayTracer --scene 18 --width 128 --height 128 --samples 2" as suggested in the README.

I am getting the following error:

Vulkan Devices:

  • [0] UnknownVendor 'llvmpipe (LLVM 12.0.0, 256 bits)' (CPU: vulkan 1.1.182, driver llvmpipe Mesa 21.2.6 (LLVM 12.0.0) - 0.0.1)

Setting Device [0]:
FATAL: missing required extensions: VK_KHR_acceleration_structure, VK_KHR_deferred_host_operations, VK_KHR_ray_tracing_pipeline, VK_KHR_shader_clock

0# 0x00005593AA3EDFDD in ./RayTracer
1# 0x00005593AA3EF1DD in ./RayTracer
2# 0x00005593AA432B3F in ./RayTracer
3# 0x00005593AA42D020 in ./RayTracer
4# 0x00005593AA43C8CD in ./RayTracer
5# 0x00005593AA44C9E6 in ./RayTracer
6# 0x00005593AA42DF56 in ./RayTracer
7# 0x00005593AA3F81B9 in ./RayTracer
8# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
9# 0x00005593AA3F93FE in ./RayTracer

I think the missing extensions are because I don't have any graphics card available. However I read in one of the previous issues that the simulator should simulate the GPU ray tracing hardware and should run on any CPU. Do you have any clues on what I can do to fix this? Thank you!!

Number of pipeline stage mismatch for other GPU configurations

Hi! I was trying to use other GPU configuration files to run vulkan-sim and I noticed an issue with the pipeline width. The original gpgpusim only has 13 pipeline stages, but since vulkan-sim added two extra stages "ID_OC_RT", "OC_EX_RT" in vulkan-sim/src/gpgpu-sim/shader.h:
const char *const pipeline_stage_name_decode[] = { "ID_OC_SP", "ID_OC_DP", "ID_OC_INT", "ID_OC_SFU", "ID_OC_MEM", "OC_EX_SP", "OC_EX_DP", "OC_EX_INT", "OC_EX_SFU", "OC_EX_MEM", "EX_WB", "ID_OC_TENSOR_CORE", "OC_EX_TENSOR_CORE", "ID_OC_RT", "OC_EX_RT", "N_PIPELINE_STAGES"};

the code will error out when running GPU configs with only 13 stages (e.g. SM7_QV100). What's the best way to resolve this?

Another related question: I also tried on my own config of RTX3070, based on gpgpusim git directory's RTX3070 config + RT core gen 1 spec from vulkan-sim's RTX2060 config (I can't find spec for 3070's RT core gen 2 online). The config file is here. I added the two extra RT pipeline stages and removed some options that vulkan-sim doesn't support. Although the runs can be launched, simulations all fail with deadlocks.

Ideally I'd want to model some Ampere GPU with a RT core, so if you happen to have some working configs lying somewhere I'd really appreciate it! If that's not possible I can go with something like QV100 as long as I can get a valid configuration for simulation.

Thanks!

Error while running ./RayTracer --scene 6 --height 320 --width 448

The build of mesa and vulkan-sim is successful. While running the Raytracer, I am getting symbol lookup error: '~/vulkan-sim-root/mesa-vulkan-sim/lib/lib/x86_64-linux-gnu/libvulkan_intel.so: undefined symbol: gpgpusim_setGeometries'. Please have a look at it.
My environment is CUDA11.1, gcc9.4, boost1.71 and embree-3.13.4.
图片

Error while running Lumibench

Hi,

I've freshly setup Vulkansim and Lumibench. While running Lumibench I'm encountering the following error:

./RayTracer: symbol lookup error: /home/anaitha2/vulkan-sim-root/mesa-vulkan-sim/lib/lib/x86_64-linux-gnu/libvulkan_lvp.so: undefined symbol: gpgpusim_allocBuffer

I was not facing this issue in my previous setups. What might be the possible reasons for this error and how do I resolve it? Any help is appreciated.

Running Lumibench benchmarks for --width and --height greater than 128

Hi,
I wanted to run the benchmarks for scene 1, 18, and 21 with width and height high enough (512 maybe) to see the effects of Reflections, Shadows, and AO. However, I was not able to run the scene because the execution gets 'Killed' prematurely in the middle of 'Bind miss... ' execution. The benchmark seems to running perfectly fine for all scenes with 128, 128 dimensions though.

Can vulkan-sim be used in NVIDIA RTX2080 Ti ?

Hi dear author,
It's an honor to write a letter here, I'm building vulkan-sim on NVIDIA 2080 tI gpu now, I meet the following errors when executing $ meson --prefix="${PWD}/lib" build/ , my python version is over 3.7 which is suggested by meson, but when installing python3.7, the error appears as following:

image

image

I wonder if vulkan-sim support NVIDIA gpus ?

thank you
best regards
William

Scene 12 (PartyTug) generates an empty image

Hello, I have been trying the new vulkan-sim version with Lumibench and everything works perfectly, except for scene 12. After executing Ray Tracer with scene 12, default shader type, a size of 200x200 and 5 samples per pixel, the generated image is the following:
PARTY

I tried generating the same image using the shadow shader with 5 samples per pixel and 5 shadow rays cast per ray, with the following result:
PARTY-SHADOW

Also, for scene 13 (FOX) the head model was split in many small files, so I had to merge them. I thought the problem would be the same in this case, but it doesn't seem like that.

Also, when I opened the models for this scene in Blender, they had a weird position under the floor. Maybe this is causing the image to be empty? For example, this is _Grill_001.obj:

image

Error while running other traces

  1. While running other traces:

Raytracing

vulkan_samples

I am getting these errors. Kindly let me know how I can solve these errors.

  1. After dumping the traces(https://github.com/ubc-aamodt-group/RayTracingInVulkan) takes a very long time to run and at the end gives a segmentation fault stating the root node is unable to access an address. Is there any way I can run the traces in batch mode or limited to an area so that the time to run traces decrease significantly?

Scene numbers mismatch in Lumibench

Hello,

While running Lumibench, some of the scene numbers (24, 25, 26) are not in match with the README and result in errors.
It seems like simply commenting out the CS:GO scenes from RayTracingInVulkan/src/SceneLists.cpp resolves the issue.
It's minor, but I would greatly appreciate it if you could kindly look at it.

Thank you in advance!

The number of pixel data is inconsistent with the expecting amount

Hi vulkan-sim team,

After running ./RayTracer --scene 12 --width 128 --height 128 --samples 8 > PARTY_PT.log to generate a ppm file, when I use ppm viewer to preview the ppm file, it indicates found: 49261, expecting: 49152.

image

I didn't encounter this error when previewing ppm files generated by other commands. I ran this command twice, and the ppm file showed the same result both times, so I guess it might be reproducible. (not sure if i did something wrong that caused this)

The relevant attachments have been uploaded. Because Git cannot upload files in ppm format, I changed the ppm file extension to txt before uploading it.

PARTY_PT.log

01-06-2024-17-54-07-SCENE.txt

I would appreciate any information regarding this issue. Thank you.

Running multiple jobs in parallel?

Hi! This might be a dumb question - I was wondering if you have ever run multiple traces in parallel? If so, what is the set up?

For example, I want to launch vulkan-sim runs for the benchmarks here together:
https://github.com/ubc-aamodt-group/RayTracingInVulkan/blob/master/lumibench.sh

Each time I got different errors and the errors are not very self-explanatory. Most of them seem to point to concurrent writes to the same files. These errors never show up when I run them sequentially.

I digged into the code a bit and found that both the gpgpusim code and the mesa-vulkan-sim have some hardcoded paths. For gpgpusim, I believe I can prevent concurrent writes by creating multiple directories that contain the RayTracer binary and save the stats to different places. However, for mesa-vulkan-sim conflicts, the code seems to be pointing to mesa-vulkan-sim/gpgpusimShaders, and errors come from unexpected results when other processors rewrite the files. Creating multiple gpgpusimShaders directories didn't help and brought me other errors.

I was wondering if you know the best solution for this. Each run takes 20-30 mins on a single core so I'd love to speed them up by running multiple at once. Any help is appreciated!

Bug in NIR to PTX translation?

I was tinkering with the RTV shaders in Lumibench, and I ran into a strange issue. You can reproduce it by making the following minimal changes to the TraceAO.rgen shader,

	vec3 pixelColor = vec3(0);
+	uint dummy = gl_LaunchIDEXT.x == 42 ? 10 : 20; // Line 29
	// Accumulate all the rays for this pixels. (SPP)
	for (uint s = 0; s < Camera.NumberOfSamples; ++s)
	{

......

	// 	debugPrintfEXT("[%d, %d] rgba(%f, %f, %f)\n", gl_LaunchIDEXT.x, gl_LaunchIDEXT.y, pixelColor.x, pixelColor.y, pixelColor.z);
+	imageStore(OutputImage, ivec2(dummy, gl_LaunchIDEXT.y), vec4(pixelColor, 0)); // Line 104
}

When you compile this shader and run it on vulkan-sim, it throws the following error while generating PTXINFO,

gpgpusim: invoking gpgpusim
GPGPU-Sim PTX: instruction assembly for function 'MESA_SHADER_RAYGEN_func0_main'...   done.
GPGPU-Sim PTX: finished parsing EMBEDDED .ptx file /home/root/vulkan-sim-root/vulkan-sim/../mesa-vulkan-sim/gpgpusimShaders/MESA_SHADER_RAYGEN_0.ptx
GPGPUSIM: Generating PTXINFO for/home/root/vulkan-sim-root/vulkan-sim/../mesa-vulkan-sim/gpgpusimShaders/MESA_SHADER_RAYGEN_0.ptxinfo
ptxas temp_ptxas_shader.ptx, line 3320; error   : Arguments mismatch for instruction 'mov'
ptxas fatal   : Ptx assembly aborted due to errors

I dug into the PTX code(temp_ptxas_shader.ptx) and found that the error is caused by a mov.f32 instruction whose argument is a u32 instead of f32

.reg .u32 %ssa_27_1;

mov.f32 %ssa_802_1, %ssa_27_1;

So the source operand appears to be u32 (which I believe is the dummy variable we declared above), but I'm not sure why ptxas considers this illegal.

System Info

  • Cuda 11.7
  • Ubuntu 20.04

Wrong Descriptor Set index

When running a large project with more than one descriptor set is used, the index is always 0 in the PTX code. So my textures are just wrong. Cannot reference the correct descriptor set because of this.
The associated code is below:
https://github.com/ubc-aamodt-group/mesa-vulkan-sim/blob/b8f3e3980e87736fea176da6ebc81f82c6ea80e9/src/compiler/nir/nir_print.c#L5121-L5122

fprintf(fp, "decl_var %s, %d, %d, %d, %d, %u, %u;\t", var->name, size, glsl_get_vector_elements(var->type), 
                  glsl_get_base_type(var->type), var->data.mode, var->data.driver_location, var->data.binding);

The descriptor set index from var->data.driver_location. However, at least for me, var->data.descriptor_set has the correct descriptor set index and should be used.
Is this a bug? Why is driver_location used? I know there are other variable types. Do other variables use driver_location instead of var->data.descriptor_set? Is it safe to change var->data.driver_location to var->data.descriptor_set directly?

Thanks,
JR

A segmentation fault happens when running the "./vulkan_rt_runner RTV6-trace/ RTV6"

Hello,
when I tried to run the "./vulkan_rt_runner RTV6-trace/ RTV6, I got a segmentation fault. When I followed the tutorial instructions and rerun using gdb, I found that it crashes at VulkanRayTracing::traceRay.
图片
I'm not sure if this issue is due to not waiting for 'Trace dumped' to appear in the terminal when running RTV6. Because I did not find 'Trace dumped' in the terminal, but the terminal displayed the interface shown in the following figure, I felt that the program had already run. Could you please help me solve the segmentation fault? Thanks a lot.
图片

Support for CUDA apps

Hi vulkansim team!

I noticed that in Lumibench paper, there is a comparison section that run Rodinia application. However, it seems that the functionality of simulating general purpose application is bit broken with my fresh build of vulkan-sim.

I guess it is because vulkan-sim bind and read/write memory in a different way than original gpgpu-sim at

if(!use_external_launcher) {
.

Can you please verify it?

Thanks!

Generating frames using Vulkan Sim

Hello, I read the "Vulkan-Sim: A GPU Architecture Simulator for Ray Tracing" paper and there is a comparison between a scene rendered using a GPU from NVIDIA and Vulkan Sim. I tried running a trace with Vulkan Sim in order to get a render of the scene, but it only outputs stats. Would it be possible to generate an image or a set of frames by running a trace?

Segmentation fault while running vulkan-sim 2.0.0

Hello,
when I try to run Lumibench on vulkan-sim 2.0.0, the program exits with a segmentation fault.
I've tried to run it on various settings (e.g., different servers, packages, scenes and resolutions), but similar errors consistently occurred.
The tested environments are as follows.
CPU: EPYC 7551, Xeon E5-2680v4, Core i7-13700K
OS: Ubuntu 20.04
CUDA: 11.7
Embree: v3.13.4, v3.12.2
Vulkan SDK: 1.3.216, 1.3.261

Here's the backtraces that I obtained from gdb.
I guess it might be something related to intersim2, but I couldn't really figure out the source of the error.
I would greatly appreciate it if you could kindly look at it.

Screenshot 2023-10-10 at 11 23 53 AM

Error when run RTV6

Hello,
I was following the instructions for building the vulkan-sim and mesa, everything is looking good but when I tried to run the RTV6 to dump the trace, I ran ./RayTracer and got this X error of failed request.
image

I was using Ubuntu 20.04 with CUDA 11.7 ,gcc /g++ 9.4.0 and GPU is GTX 1080, I can run the RTV6 without involving vulkan-sim, any idea what might cause this error?

Do RT cores use general purpose ldst unit?

Hi,

Thanks for you efforts!

I'm wondering do rt cores use general purpose ldst unit?

In the code, it seems that the rt unit is able to issue memory access on its own (unlike tensor core). Am I right on this?

If the rt core indeed does not use general purpose ldst unit, could you please provide some reference (if there is any)?

Thanks

Unsupported Texture Format

Hi,

I'm trying a workload with a texture format not supported yet (VK_FORMAT_R8_UNORM). I'm pretty sure it's very similar to VK_FORMAT_R8G8B8A8_SRGB or VK_FORMAT_R8G8B8A8_UNORM, which are formats supported by the Vulkan-Sim. The difference is VK_FORMAT_R8_UNORM only has one channel (R) instead of RGBA. Can I still use the intel_tiled_to_linear() to get the texture data? If not, do you have any suggestions on implementing the feature?

Please let me know what you think. Thank you in advance!
JR

Program Aborts or Gets killed with Modified Parameters

Hi Vulkan-sim Team,

I am attempting to change parameters to generate more primary rays or secondary rays, but I am encoutering abort and killed errors.

Here aer the two scenarios I encountered:

  1. When I run ./RayTracer --scene 18 --width 128 --height 128 --samples 2 > PARTY_PT.log, the PPM file is generated successfully, completing in about 54 minutes on my local environment. However, when I change the parameters to ./RayTracer --scene 18 --width 256 --height 256--samples 2 > BUNNY_PT_w256.log, the program gets killed after a few hours, and the log file is incomplete. I have attatched the log PARTY_PT_w256.log. It seems to be stuck somewhere.
    256_256_2

  2. When I run ./RayTracer --scene 30 --width 128 --height 128 --samples 8 > REF_PT.log, the program aborts due to an assert failure. I have attached a sreenshot of it. It seems to have a complete log file, but I am concerned that the assert failure may have prevented all the rays from being fully generated.

unnamed

I would greatly appreciate any insights or clarifications.
Thank you very much for your time and assistance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.