cg shader time measurement

Started by
-1 comments, last by sienaiwun 12 years ago
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

Hi all

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

I would like to know the exact time measurement for cg shader.

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

Now I have a display function containing two parts : cuda part computing data, and cg shader render the scene. Like the following :

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

Display()

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

{

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

time1 = time();

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cudaEventRecord(record1);

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

RunCuda();

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cudaEventRecord(record2);

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

time2 = time();

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cgRender(); //in cgRender render the scene dozens of time.

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

time3 = time();

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

}

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

then define:

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cudaTimebyTime = time2-time1;

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cudaTimebyEvent = record2-record1;

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cgTime = time3-time2;

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

then I find this:

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

cudaTimebyTime != cudaTimebyEvent , which means cudaEvent's time measurement is different from the time() function.

[/font]
[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

what's more, when I change cg function in cgRender(); (cudaTimebyTime - cudaTimebyTime) changes rather than the cgTime. It seems cgTime only records the scene drawing time while cg time measurement parts records in

[/font][color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

(cudaTimebyTime - cudaTimebyTime).

[/font]


[color=#444444][font=helvetica, arial, verdana, tahoma, sans-serif]

Can it be true and what's the reason, how should I record the cg time measurement.

[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[/font]

This topic is closed to new replies.

Advertisement