Creative COW SIGN IN :: SPONSORS :: ADVERTISING :: ABOUT US :: CONTACT US :: FAQ
Creative COW's LinkedIn GroupCreative COW's Facebook PageCreative COW on TwitterCreative COW's Google+ PageCreative COW on YouTube
AUTODESK:Autodesk Smoke ForumAutodesk CombustionAutodesk Smoke 2013

Autodesk smoke. rendering speed. bottleneck

COW Forums : Autodesk Smoke 2013

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
Share on Facebook
Sameer ShrivastavaAutodesk smoke. rendering speed. bottleneck
by on Sep 28, 2012 at 11:03:38 am

Hi

I am using MBP i7, 17" early 2011 with amd 6750M graphics. with the following config

1. 750 gb hdd with dedicated 160gb osx partition(read write above 80 MBPS). free over 100GB
2. SSD drive for media storage. (read above 450 MBPS, write above 325MBPS)
3. 2TB thunderbolt Lacie little big disk (read above 180MBPd, write above 180MBPS)
4. 16 gb ram
5. another source media hdd connected via esata(@express card. with io of 110 read and 80MBPS write.
6. Sytem with 8 core processor

the source footage is 10bit MOV file.

when i process/render on autodesk smoke. the
CPU USAGE is abt 30-40% max
hdd io is 20-30 mbps max
ram lot of inactive memory ( above 6-8 gb). hardly any page ins or out or swap usage
gpu memory usage around 15-20%

so where is bottleneck. why is not my system used at full potential. I use my system with power adapter attached.
like cpu 100%, or io near limit or ram near limit.

attached pic shows the above bottleneck

1. source footage soft imported from SSD drive OCZ
2. rendering to thunderbolt drive (two samsung disks in raid0)


Return to posts index
Reply   Like  

Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Sep 28, 2012 at 2:33:05 pm

I'm going to guess it's the Lacie. I would expect a single SATA drive to do about 40MB/sec sequential and the output of this operation might not be entirely sequential. The 180MB/sec number sounds high unless those are SSDs.

If you open a terminal and run "iopending" (you'll need to be root) how big does your IO queue get while this is going on? I imagine you'll see lots of IOs sitting in the queue.

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Sep 28, 2012 at 3:51:19 pm

HI,
Thnx for the reply. it doenst seems so. i just ran a quick test. the source media on the SSD (internal drive @ 6gbps) and rendering also on the same SSD. Result 11mbps read and 8mbps write.

Lacie is raid0 thunderbolt drive. benchmarks IO are around 180MBPS.



SAMEER S.


Return to posts index
Reply   Like  


Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Sep 28, 2012 at 5:18:17 pm

Try this then:

Open a terminal and get into a root shell:

sudo bash
(enter password)

Run ps -ef and find the process that's doing the rendering. Get the PID number

Run dtruss to see what calls it's making:

# dtruss -p PID -f (-f tells it to follow forks)

The output should be a lot of system calls. I'm curious if it's calling into the openCL framework to use the GPU. That seems to be the one resource we can't monitor. Maybe the GPU is saturated? Maybe the app is just very inefficient? I've seen cases where apps read very little, work on it, then read more. This results in inefficient IO.

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Sep 28, 2012 at 6:04:41 pm

Hi Steve,

Thnx for ur replies.

I tried finding the PID
I guess u meant to find the pid of autodesk smoke. as that seems to be relevant. I also found PID of wiretap gateway.
Smoke pid 651

i get these error messages


bash-3.2# dtruss -p 651 -f
PID/THRD SYSCALL(args) = return
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FC9003, 0xA0FC8D00) = -1594059773 0
651/0x105e: psynch_mutexwait(0x106813B80, 0xA0FC9203, 0xA0FC8D00) = -1594059773 0
651/0x1061: psynch_cvwait(0x106813BC0, 0x85C6B90085C6C000, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FC9803, 0xA0FC9400) = -1594057981 0
651/0x105e: psynch_mutexwait(0x106813B80, 0xA0FC9A03, 0xA0FC9500) = -1594057981 0
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C6C70085C6CF00, 0x6F9DDF00) = -1 Err#60
651/0x1062: psynch_mutexwait(0x106813B80, 0xA0FCA003, 0xA0FC9E00) = -1594055677 0
651/0x105e: psynch_mutexwait(0x106813B80, 0xA0FCA303, 0xA0FC9E00) = -1594055677 0
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C6CF0085C6D200, 0x6F9DDF00) = -1 Err#60
651/0x105e: psynch_cvwait(0x106813BC0, 0x85C6CF0085C6D600, 0x6F9DDF00) = -1 Err#60
651/0x105e: psynch_mutexwait(0x106813B80, 0xA0FCAB03, 0xA0FCA800) = -1594053629 0
651/0x1062: psynch_cvwait(0x106813BC0, 0x85C6D30085C6D900, 0x6F9DDF00) = -1 Err#60
651/0x1064: psynch_cvwait(0x106813BC0, 0x85C6D70085C6DD00, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_mutexwait(0x106813B80, 0xA0FCB103, 0xA0FCAF00) = -1594052349 0
651/0x1065: psynch_cvwait(0x106813BC0, 0x85C6DE0085C6E400, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C6EA0085C6F100, 0x6F9DDF00) = -1 Err#60
651/0x1062: psynch_cvwait(0x106813BC0, 0x85C6FA0085C70200, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_mutexwait(0x106813B80, 0xA0FCD703, 0xA0FCD400) = -1594041853 0
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FCD903, 0xA0FCD500) = -1594041341 0
651/0x105f: psynch_mutexwait(0x106813B80, 0xA0FCDB03, 0xA0FCD600) = -1594041341 0
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C7020085C70800, 0x6F9DDF00) = -1 Err#60
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C7070085C70E00, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C7080085C71000, 0x6F9DDF00) = -1 Err#60
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C70D0085C71400, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_mutexwait(0x106813B80, 0xA0FCE903, 0xA0FCE700) = -1594038013 0
651/0x105e: psynch_cvwait(0x106813BC0, 0x85C7110085C71900, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_mutexwait(0x106813B80, 0xA0FCF103, 0xA0FCEF00) = -1594035197 0
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C71B0085C72200, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C71F0085C72400, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C71F0085C72700, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FCFC03, 0xA0FCF800) = -1594033149 0
651/0x105e: psynch_cvwait(0x106813BC0, 0x85C7200085C72800, 0x6F9DDF00) = -1 Err#60
651/0x1064: psynch_cvwait(0x106813BC0, 0x85C7270085C72D00, 0x6F9DDF00) = -1 Err#60
651/0x105f: psynch_mutexwait(0x106813B80, 0xA0FD0603, 0xA0FD0400) = -1594030333 0
651/0x1061: psynch_cvwait(0x106813BC0, 0x85C7370085C73E00, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_mutexwait(0x106813B80, 0xA0FD0F03, 0xA0FD0D00) = -1594028285 0
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FD1103, 0xA0FD0E00) = -1594027005 0
651/0x1064: psynch_mutexwait(0x106813B80, 0xA0FD1303, 0xA0FD0E00) = -1594027005 0
651/0x1061: psynch_cvwait(0x106813BC0, 0x85C73F0085C74300, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_cvwait(0x106813BC0, 0x85C7400085C74800, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_cvwait(0x106813BC0, 0x85C7480085C75000, 0x6F9DDF00) = -1 Err#60
651/0x1061: psynch_mutexwait(0x106813B80, 0xA0FD2903, 0xA0FD2600) = -1594021629 0
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C74D0085C75500, 0x6F9DDF00) = -1 Err#60
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C7540085C75A00, 0x6F9DDF00) = -1 Err#60
651/0x1061: psynch_cvwait(0x106813BC0, 0x85C75F0085C76200, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C75F0085C76500, 0x6F9DDF00) = -1 Err#60
651/0x1063: psynch_mutexwait(0x106813B80, 0xA0FD3A03, 0xA0FD3800) = -1594016765 0
651/0x1062: psynch_cvwait(0x106813BC0, 0x85C7600085C76800, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_cvwait(0x106813BC0, 0x85C7670085C76E00, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_mutexwait(0x106813B80, 0xA0FD4203, 0xA0FD3E00) = -1594014717 0
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FD4403, 0xA0FD3E00) = -1594014717 0
651/0x1063: psynch_cvwait(0x106813BC0, 0x85C76F0085C77400, 0x6F9DDF00) = -1 Err#60
651/0x1061: psynch_mutexwait(0x106813B80, 0xA0FD4703, 0xA0FD4500) = -1594013437 0
651/0x1063: psynch_mutexwait(0x106813B80, 0xA0FD4903, 0xA0FD4500) = -1594012925 0
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C76F0085C77700, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_mutexwait(0x106813B80, 0xA0FD4B03, 0xA0FD4600) = -1594012669 0
651/0x1064: psynch_cvwait(0x106813BC0, 0x85C7740085C77900, 0x6F9DDF00) = -1 Err#60
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C7760085C77B00, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C7770085C77F00, 0x6F9DDF00) = -1 Err#60
651/0x105f: psynch_mutexwait(0x106813B80, 0xA0FD5003, 0xA0FD4E00) = -1594010621 0
651/0x1060: psynch_mutexwait(0x106813B80, 0xA0FD5303, 0xA0FD4E00) = -1594010621 0
651/0x105f: psynch_cvwait(0x106813BC0, 0x85C77F0085C78300, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C77F0085C78600, 0x6F9DDF00) = -1 Err#60
651/0x1064: psynch_cvwait(0x106813BC0, 0x85C7800085C78800, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C7850085C78D00, 0x6F9DDF00) = -1 Err#60
651/0x1065: psynch_cvwait(0x106813BC0, 0x85C78B0085C79300, 0x6F9DDF00) = -1 Err#60
651/0x1060: psynch_cvwait(0x106813BC0, 0x85C78D0085C79500, 0x6F9DDF00) = -1 Err#60
651/0x105b: __semwait_signal(0x1307, 0x0, 0x1) = -1 Err#60



even on doing dtruss for wiretapgateway i got a very similar results.
couldnt make out what this is pointing to

bash-3.2# dtruss -p 687 -f
PID/THRD SYSCALL(args) = return
687/0x1043: psynch_mutexwait(0x1AFE500, 0xAD172603, 0xAD172300) = -1390990845 0
687/0x1048: psynch_cvwait(0x1AFE52C, 0xAD172200AD172500, 0x0) = -1 Err#60
687/0x104a: psynch_mutexwait(0x1AFE500, 0xAD173103, 0xAD172F00) = -1390988797 0
687/0x1045: psynch_cvwait(0x1AFE52C, 0xAD172A00AD173000, 0x0) = -1 Err#60
687/0x1043: psynch_mutexwait(0x1AFE500, 0xAD173703, 0xAD173400) = -1390986749 0
687/0x1044: psynch_mutexwait(0x1AFE500, 0xAD173903, 0xAD173400) = -1390986749 0
687/0x1047: psynch_cvwait(0x1AFE52C, 0xAD172D00AD173400, 0x0) = -1 Err#60
687/0x1044: psynch_mutexwait(0x1AFE500, 0xAD174203, 0xAD173E00) = -1390984701 0
687/0x1049: psynch_cvwait(0x1AFE52C, 0xAD173400AD173C00, 0x0) = -1 Err#60
687/0x1044: psynch_cvwait(0x1AFE52C, 0xAD173A00AD174200, 0x0) = -1 Err#60
687/0x104a: psynch_cvwait(0x1AFE52C, 0xAD173D00AD174400, 0x0) = -1 Err#60
687/0x1049: psynch_cvwait(0x1AFE52C, 0xAD173F00AD174700, 0x0) = -1 Err#60
687/0x1045: psynch_mutexwait(0x1AFE500, 0xAD174D03, 0xAD174B00) = -1390981629 0
687/0x1044: psynch_cvwait(0x1AFE52C, 0xAD174200AD174A00, 0x0) = -1 Err#60
687/0x1045: psynch_cvwait(0x1AFE52C, 0xAD174900AD174D00, 0x0) = -1 Err#60
687/0x1044: psynch_cvwait(0x1AFE52C, 0xAD174A00AD175200, 0x0) = -1 Err#60
687/0x1046: psynch_cvwait(0x1AFE52C, 0xAD175000AD175700, 0x0) = -1 Err#60
687/0x1049: psynch_cvwait(0x1AFE52C, 0xAD175600AD175E00, 0x0) = -1 Err#60
687/0x1045: psynch_mutexwait(0x1AFE500, 0xAD176503, 0xAD176300) = -1390974717 0
687/0x1047: psynch_mutexwait(0x1AFE500, 0xAD176903, 0xAD176300) = -1390974461 0
687/0x1045: psynch_cvwait(0x1AFE52C, 0xAD176200AD176500, 0x0) = -1 Err#60
687/0x1045: psynch_mutexwait(0x1AFE500, 0xAD177003, 0xAD176D00) = -1390972413 0
687/0x1044: psynch_mutexwait(0x1AFE500, 0xAD177203, 0xAD176D00) = -1390972413 0

thanks
sameer

SAMEER S.


Return to posts index
Reply   Like  

Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Sep 28, 2012 at 8:37:53 pm

Those are just synchronization calls. errno 60 is "timed out". So it's likely the calls are made to sleep for a specific amount of time and then wakeup to do something.

Assuming these threads were the busy ones (using all your CPU), they were operating in user space. So you don't see any system calls. So they next step would be to dig in further with dtrace (which is what dtruss uses) to start pulling out sample stack traces to see what they are doing.

Watch this video





You can skip about the first 10 minutes, but this guy gives some great simple commands you can do to see what's going on. dtrace is extremely powerful.

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  


Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Sep 30, 2012 at 8:47:03 pm

Hi

this is what smoke seems to be doing


bash-3.2# dtrace -n syscall:::entry'/execname == "smoke"/{@[probefunc] = count()}'
dtrace: description 'syscall:::entry' matched 439 probes
^C

psynch_cvclrprepost 2
close 9
fcntl 9
open 9
sem_post 9
sem_wait 9
write 45
read 50
select 87
__semwait_signal 143
gettimeofday 178
psynch_cvsignal 1503
psynch_mutexdrop 8059
psynch_mutexwait 10321
psynch_cvwait 11183

At the time of rendering
on further probing psynch_cvwait and psych_mutexwait i didn't find any odd processes happening.

sameer

SAMEER S.


Return to posts index
Reply   Like  

Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 5:25:58 pm

This result implies one of two things.

Either the app is waiting around for IO to complete (you'd see iopending showing lots of stuff in the queue) or the app is waiting for some user threads to synchronize.

In the past, I've seen weird things like this where the app kicked off 16 threads (because there were 16 cpus), but one cpu was busy. So each "clock", 15 threads would run, then sleep waiting for 16 to run. He'd get a cpu once the others finished. This had the effect of serializing the entire thing and making it very slow.

I don't know much about how this things tunes itself, but imagine it counts hyperthreading as independent CPUS. IO usually doesn't allow hyperthreading, so that might cause the issue.

Get the iopending output now.

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 5:44:16 pm

Hi
Here is the io pending results iopending at the time of rendering.

Sameers-MacBook-Pro:~ root# iopending
Tracing... Please wait.
2012 Oct 1 23:11:05, load: 19.80, disk_r: 2232 KB, disk_w: 65024 KB

value ------------- Distribution ------------- count
< 0 | 0
0 |@@@@@@@@@@@@@@@@@@@@@@@@@ 25312
1 |@@@@@@@@@@@ 11330
2 |@@ 1958
3 |@ 1160
4 | 216
5 | 40
6 | 0

2012 Oct 1 23:11:10, load: 19.33, disk_r: 0 KB, disk_w: 73180 KB

value ------------- Distribution ------------- count
< 0 | 0
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37805
1 | 396
2 |@ 930
3 |@ 869
4 | 0

2012 Oct 1 23:11:15, load: 18.59, disk_r: 4 KB, disk_w: 73212 KB

value ------------- Distribution ------------- count
< 0 | 0
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37096
1 |@ 960
2 |@ 948
3 |@ 996
4 | 0

2012 Oct 1 23:11:20, load: 17.50, disk_r: 48 KB, disk_w: 75088 KB

value ------------- Distribution ------------- count
< 0 | 0
0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37287
1 |@ 512
2 |@ 979
3 |@ 946
4 | 164
5 | 0
6 | 0
7 | 8
8 | 0
9 | 0
10 | 0
11 | 0
12 | 8
13 | 0
14 | 12
15 | 76
16 | 0
17 | 0
18 | 0
19 | 1
20 | 7
21 | 0
thnx

SAMEER S.


Return to posts index
Reply   Like  


Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 5:58:21 pm

What looks relevant to me is the load average. the IO doesn't look backed up. The load average shows the number of threads waiting to run (a little like the io queue, but threads waiting to get a cpu).
19 is a pretty high number. How many cpus are being used? How many threads does autodesk have going? (You can see by looking at the "Threads" column next to the process in the Activity Monitor.

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 6:24:13 pm

Hi

this is quad core machine with 8 virtual cores.

Smoke IO is handled by wiretapgateway
attached is the image of threads going on



So no of threads is 73 with cpu usage around 224% it goes upto 300% at times.

thnx

SAMEER S.


Return to posts index
Reply   Like  

Brian MulliganRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 6:29:33 pm

this is a great thread... I might point out that some effects are GPU processed. Not sure how that effects what you are doing overall.
I did ask the same question early on, and never got a satisfactory answer.

Brian Mulligan
Senior Editor - Autodesk Smoke
WTHR-TV Indianapolis,IN, USA
Twitter: @bkmeditor


Return to posts index
Reply   Like  


Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 6:45:57 pm

When IO is involved, the virtual cores usually can't be used.

My best guess is that the threads running are cpu bound (using all of their 2 cpus) and so there's a lot of waiting for things to finish before IO can occur. As Brian points out, it could also be waiting for the GPUS.
I don't know if there's a utility to show us GPU activity.

I'd really like something that would show me GPU and RAID controller activity. Those are usually both black boxes :(

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 7:27:47 pm

Hi Steve,

Thnx for your suggestions. Ill try to digout more.
When I did dtrace "as posted above" for what smoke is doing. I didnt find any gpu calls. Atleast what i can make out from my limited Knowledge.

Another thing when i try to use "Burn" option to render the action setup, it reports " Cannot burn. Rendering this action setup requires a GPU". Maybe Smoke is unable to access or use the GPU for some reason.
To point out there are two GPU in the system and smoke only runs on AMD 6750M. I have to disable GPU switching and force the system to only use AMD. Otherwise smoke App doesn't start.
And i can only monitor its memory usage till now. which vary between 20-50%.

But gfx card status application reports AMD 6750 being used with dependancies of smoke pid.

I couldn't find a way to monitor gpu activity till yet. Can dtrace help on that.

One odd thing is when i see console during smoke startup is that intel HD Graphics 3000 driver being loaded.

01/10/12 11:28:14.629 PM [0x0-0x2c12c1].com.autodesk.smoke: Workstation: MacBookPro8,3
01/10/12 11:28:14.629 PM [0x0-0x2c12c1].com.autodesk.smoke: CPU: 1 Intel Core i7 @ 2.2 GHz, 4 cores
01/10/12 11:28:14.629 PM [0x0-0x2c12c1].com.autodesk.smoke: RAM: 16 GB of RAM
01/10/12 11:28:14.629 PM [0x0-0x2c12c1].com.autodesk.smoke: Graphics: Intel HD Graphics 3000 Driver:
01/10/12 11:28:14.629 PM [0x0-0x2c12c1].com.autodesk.smoke: OS: Mac OS X 10.7.4 (11E53)
01/10/12 11:28:14.630 PM [0x0-0x2c12c1].com.autodesk.smoke: Kernel: Darwin 11.4.0
01/10/12 11:28:14.699 PM [0x0-0x2c12c1].com.autodesk.smoke: MENU : /usr/discreet/smoke_2012.SP3/menu/default.menu


But when i run autodesk qualification report

Current operating system version:Mac OS X 10.7.4 (11E53) unknown more details
CPU type: Intel processor found Intel Core i7, recommended
Current platform name:MacBookPro8,3 unknown more details
Number of cores (minimum 2, recommended 8 or more): found 8 cores, recommended
Internal memory  (recommended: 12 GB or more): found 16.00 gigabytes, recommended


Graphics card #1, verification: found AMD Radeon HD 6750M unknown more details
Graphics card #2, verification: found Intel HD Graphics 3000 unknown more details
Monitor #1 Color LCD: main window  @ 1920x1200, recommended
Available system disk space (Minimum 500M needed for install):found 98G free, recommended

That reports 8 cores and two graphics card.

Is there a way to switch off virtual cores?

Will try to learn dtrace more and digout.

thnx

SAMEER S.


Return to posts index
Reply   Like  

Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 8:23:35 pm

If you watch some more of the dtrace video, you'll see a section where he looks at the ustack output of the processes. You need to do that. The users stack should show GPU calls.

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  


Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 8:41:23 pm

Hi

this is the output of ustack for psych_cvwait

i tried psynch_cvsignal also. very similar entries




2# dtrace -n syscall::psynch_cvwait:entry'/execname == "smoke"/{@[ustack()] = count()}'
dtrace: description 'syscall::psynch_cvwait:entry' matched 1 probe
^C


libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonimg.dylib`CoUnitExec::exec_resume(int, CoJob&)+0x1e8
libDLcommonimg.dylib`CoJobExec::Imp::execute(CoJob&)+0x309
libDLcommonimg.dylib`void DpxEncodeT(IM_BufferStruct_s const*, ResizeRectStruct_s const*, unsigned short**, unsigned int*)+0xe8
libDLcommonimg.dylib`IM_DpxSave(char const*, IM_BufferStruct_s*, ResizeRectStruct_s*, void (*)(), void (*)())+0x2e2
libDLcommonimg.dylib`IM_WriteRect(char const*, int, IM_BufferStruct_s*, ResizeRectStruct_s*)+0x24f
libDLcommonimg.dylib`IM_Write(char const*, int, IM_BufferStruct_s*)+0x6c
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x344c8
smoke`virtual thunk to SWX_MultiThreadedStreamingService::processNext()+0x13142
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x480b7
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x484c4
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
14

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonipc.dylib`CoFifoLock::dequeue()+0x15
smoke`virtual thunk to SWX_MultiThreadedStreamingService::processNext()+0x1222a
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x480b7
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x484c4
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
16

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonipc.dylib`CoFifoLock::dequeue()+0x15
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x1cf54
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x1d15f
smoke`non-virtual thunk to VolumeManager::VolumeFrameAccessImpl::~VolumeFrameAccessImpl()+0x57ff
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b940
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3bd2a
smoke`non-virtual thunk to VideoMedia::~VideoMedia()+0x8e9
smoke`non-virtual thunk to Media::isOffline(int, int) const+0x84f
smoke`non-virtual thunk to Media::allocateExtend(FS_Ctx const&)+0x55a
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x52588
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x52918
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x16f1
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`0x1003e7173
smoke`0x1003e7211
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x7a01
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1b222
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x20602
16

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonipc.dylib`CoFifoLock::dequeue()+0x15
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x1cf54
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x1d15f
smoke`non-virtual thunk to VolumeManager::VolumeFrameAccessImpl::~VolumeFrameAccessImpl()+0x571f
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b4a0
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b71a
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3be55
smoke`non-virtual thunk to VideoMedia::~VideoMedia()+0x5478
smoke`non-virtual thunk to Media::isOffline(int, int) const+0x7df
smoke`non-virtual thunk to Media::allocateExtend(FS_Ctx const&)+0x1aa
smoke`non-virtual thunk to CwSecMatteObj::resizeTo(PxlFormat)+0x164631
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x51f01
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x6f786
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x6f8b9
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x74250
smoke`virtual thunk to VMActionView::drawToTexture()+0x963a
smoke`non-virtual thunk to MModuleUI::isCurrentSubMenuNode() const+0x2a2
smoke`non-virtual thunk to DynamicUI::HiddenButton::~HiddenButton()+0x42b78
16

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonipc.dylib`CoFifoLock::dequeue()+0x15
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x1cf54
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x1d15f
smoke`virtual thunk to SWX_MultiThreadedStreamingService::processNext()+0x122ef
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x480b7
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x484c4
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
16

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonthreads.dylib`CoThreadPthread::equal(CoThread*) const+0x26
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x1ffd9
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x216dd
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2183b
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x667541
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x249a9
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
18

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonthreads.dylib`CoThreadPthread::equal(CoThread*) const+0x26
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x1ffd9
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x216dd
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2183b
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x4f6fa
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x249a9
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
28

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonipc.dylib`CoFixedSizeFifo::dequeue()+0x15
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x4809c
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x484c4
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
48

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonimg.dylib`CoUnitExec::exec_resume(int, CoJob&)+0x1e8
libDLcommonimg.dylib`CoJobExec::Imp::execute(CoJob&)+0x309
libDLcommonimg.dylib`IP_ImgConvert_Soft_MP(FrameHeader_s const*, FrameHeader_s*)+0x1ca
libDLcommonimg.dylib`IpFunctionFlavour::callFunction(char const*, int, __va_list_tag*)+0xf13
libDLcommonimg.dylib`IpFunction::callFunction(FunctionFlavour, IpContext*, int, __va_list_tag*)+0x22e
libDLcommonimg.dylib`IpSelectionEngine::myCallFunction(char const*, FunctionFlavour, IpContext*, int, __va_list_tag*)+0x115
libDLcommonimg.dylib`IpSelectionEngine::callFunction(char const*, unsigned int, int, ...)+0x149
libDLcommonimg.dylib`IP_Unpack(unsigned char const*, FrameHeader_s*, PxlFormat)+0x68
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b4f6
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b855
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3bda6
smoke`non-virtual thunk to VideoMedia::~VideoMedia()+0x8e9
smoke`non-virtual thunk to Media::isOffline(int, int) const+0x84f
smoke`non-virtual thunk to Media::allocateExtend(FS_Ctx const&)+0x55a
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x52588
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x52918
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x16f1
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`0x1003e7173
80

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
libDLcommonthreads.dylib`CoThreadPthread::equal(CoThread*) const+0x26
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x1ffd9
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x216dd
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2183b
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x4d0ed
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x1f068
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x249a9
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
86

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x210de
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x21f7b
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x24d2f
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x98c44e
libDLcommonimg.dylib`IpFunctionFlavour::callFunction(char const*, int, __va_list_tag*)+0xd8d
libDLcommonimg.dylib`IpFunction::callFunction(FunctionFlavour, IpContext*, int, __va_list_tag*)+0x22e
libDLcommonimg.dylib`IpSelectionEngine::myCallFunction(char const*, FunctionFlavour, IpContext*, int, __va_list_tag*)+0x115
libDLcommonimg.dylib`IpSelectionEngine::callFunction(char const*, unsigned int, int, ...)+0x149
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x98e6c6
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1ab0b
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1b336
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x20602
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1feb9
smoke`non-virtual thunk to CoGlossMap::~CoGlossMap()+0x253d
smoke`non-virtual thunk to CoGlossMap::~CoGlossMap()+0x3bb9
smoke`virtual thunk to VMActionView::drawToTexture()+0xa3a3
smoke`virtual thunk to VMActionView::drawToTexture()+0xc479
90

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonimg.dylib`CoUnitExec::exec_resume(int, CoJob&)+0x1e8
libDLcommonimg.dylib`CoJobExec::Imp::execute(CoJob&)+0x309
libDLcommonimg.dylib`IP_ImgConvert_Soft_MP(FrameHeader_s const*, FrameHeader_s*)+0x1ca
libDLcommonimg.dylib`IpFunctionFlavour::callFunction(char const*, int, __va_list_tag*)+0xf13
libDLcommonimg.dylib`IpFunction::callFunction(FunctionFlavour, IpContext*, int, __va_list_tag*)+0x22e
libDLcommonimg.dylib`IpSelectionEngine::myCallFunction(char const*, FunctionFlavour, IpContext*, int, __va_list_tag*)+0x115
libDLcommonimg.dylib`IpSelectionEngine::callFunction(char const*, unsigned int, int, ...)+0x149
libDLcommonimg.dylib`IP_Pack(FrameHeader_s const*, unsigned char*, PxlFormat)+0x65
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b266
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b6a5
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3b74f
smoke`non-virtual thunk to EdluControlUI::~EdluControlUI()+0x3be55
smoke`non-virtual thunk to VideoMedia::~VideoMedia()+0x5478
smoke`non-virtual thunk to Media::isOffline(int, int) const+0x7df
smoke`non-virtual thunk to Media::allocateExtend(FS_Ctx const&)+0x1aa
smoke`non-virtual thunk to CwSecMatteObj::resizeTo(PxlFormat)+0x164631
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x51f01
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x6f786
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x6f8b9
100

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x210de
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x21f7b
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2209f
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x4b07e
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x51e07
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x5420d
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x45503
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x456f7
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x46613
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x4d50
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x80f0
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x8442
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x7c7c
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1b222
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x20602
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1feb9
113

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x210de
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x21f7b
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2209f
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x4b19e
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x53c3e
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x45503
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x456f7
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x46613
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x4d50
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x80f0
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x8442
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x7c7c
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1b222
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x20602
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1feb9
smoke`non-virtual thunk to CoGlossMap::~CoGlossMap()+0x253d
115

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x210de
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x21f7b
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2209f
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x4b07e
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x51e07
smoke`non-virtual thunk to ModuleStateBase::~ModuleStateBase()+0x54926
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x45503
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x456f7
smoke`non-virtual thunk to PvListViewEntry::~PvListViewEntry()+0x46613
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x4d50
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x80f0
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x8442
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x7c7c
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1b222
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x20602
smoke`non-virtual thunk to CoSurface::~CoSurface()+0x1d95f
smoke`non-virtual thunk to ActionClip::~ActionClip()+0x1feb9
124

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonimg.dylib`CoUnitExec::exec_resume(int, CoJob&)+0x1e8
libDLcommonimg.dylib`CoJobExec::Imp::execute(CoJob&)+0x309
libDLcommonimg.dylib`IM_CommonQuickTime::getImageFrame(IM_BitsPerChannel, int, void*, void*, bool, FrameResolution const&, bool)+0x231
libDLcommonimg.dylib`IM_LibQuickTime::getImageFrame(IM_BitsPerChannel, int, void*, void*, bool, FrameResolution const&, bool)+0x208
smoke`virtual thunk to SWX_MultiThreadedStreamingService::processNext()+0x262ec
smoke`virtual thunk to SWX_MultiThreadedStreamingService::~SWX_MultiThreadedStreamingService()+0x369
smoke`virtual thunk to SWX_Video::processTask(SWMessage&)+0x74
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x480b7
smoke`non-virtual thunk to CW_Editor::OnDirtyChannel(PoChannel*)+0x484c4
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
484

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57
smoke`non-virtual thunk to DmProjectNode::~DmProjectNode()+0x2498a
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
488

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonimg.dylib`(anonymous namespace)::resume_worker_thread(void*)+0x98
libDLcommonthreads.dylib`CoThreadPthread::execute()+0x94
libDLcommonthreads.dylib`CoThreadPthread::executeCb(void*)+0x6e
libsystem_c.dylib`_pthread_start+0x14f
libsystem_c.dylib`thread_start+0xd
45137

I hope i did the ustack of the correct processes.

thnx

SAMEER S.


Return to posts index
Reply   Like  

Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 1, 2012 at 9:23:25 pm

libsystem_kernel.dylib`__psynch_cvwait+0xa
libDLcommonipc.dylib`CoLock::get()+0x57

I'm wondering about this lock. Just about all of the threads are going through this code. I wonder if it's a common lock and it's getting over used. If it's a sleeping lock, you would see just what you're seeing. Lots of waiting processes, not a lot of cpu and not a lot of useful work being done.

Apple has "lockstat". It's a tool that will profile all the kernel locks on the system. I don't know if it can do user space locks. I'd like to know how often that lock is getting locked and unlocked/second. I believe lockstat comes with Xcode.

This is the sort of thing you might want to open a call with Autodesk for. When you have interesting data, that usually gets someone's attention.

I think the scheduling instrument (part of Xcode) might be another tool to prove this theory. IF you are seeing 10,000 or more context switches a second, it's likely the processes are mostly fighting over that lock and not getting any real work done.

Steve

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 2, 2012 at 3:22:02 pm

Will try to find these,

One odd thing i noted.

If i render color correction on time line my io and cpus are used 80-90% to the limit.

any other time line effect there is the same bottleneck.

even if i render the same color correct in Action module.(only cc applied). the same bottle neck is there.

SAMEER S.


Return to posts index
Reply   Like  


Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 4, 2012 at 6:38:09 pm

Hi

Here is the Answer from an Autodesk Support

"

Hi all.
There are a few reasons that could explain what you are seeing but first it’s important understand what Activity Monitor is showing in the P;U column. The total sum of all % in the P;U column is 100 * (number of CPUs * number of cores per CPU) * 2 if hyper threading is enabled.
For example, on a single CPU, quad core Mac Book Pro with hyper threading enabled the maximum would be 100 * (1 * 4 * 2) = 800%.
Therefore, theoretically a process using all the CPU resources of that particular machine would read ~800% in the P;U column and the other processes would read ~0%. If you see a process reading 100% in the P;U column it’s not using all the available CPU resources. Another way to visualize this is to open the CPU usage window from the Window menu of Activity Monitor.
That being explained here are a few reasons that could explain what you are seeing:
1- Smoke is doing most of its processing using the GPU and not the CPU. Therefore, if most/all effects you are rendering are doing their processing on the GPU it’s normal that the CPU usage is low. When this is the case Smoke will show P;U < 100% in Activity Monitor because the CPU is only used to send/read the image to process to/from the GPU.
2- Not all effects that process on the CPU are written to use more than one CPU. When this is the case Smoke will usually show a P;U ~100% in Activity Monitor.
3- The bottleneck might with the speed at which Smoke can read/write the image from/to your disk or network.
In your particular case, since you mentioned that you are testing rendering an Action in CFX, you are most likely being faced with point 1.
Action does almost all its rendering on the GPU and this is the case both if you create a project in CPU or GPU mode.
I hope this helps.
Robert.

_____________________________________________________
Robert Adam
Autodesk Media & Entertainment Support
http://www.facebook.com/AutodeskMECF
http://twitter.com/#!/AutodeskMECF "

full thread at

http://area.autodesk.com/forum/autodesk-smoke/smoke-2013/smoke-2013-not-usi...


Thnx everybody.

SAMEER S.


Return to posts index
Reply   Like  

Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 7, 2012 at 10:47:48 am

Hi

Here is the AGPM log on console. I have to enable logcontrol to get this. this console log is generated while a simple action stup is being rendered


07/10/12 4:00:17.000 PM kernel: AGPM: GPU = IGPU G-state set to 5 from 4, ControlID = 16
07/10/12 4:00:18.000 PM kernel: AGPM: GPU = GFX0 G-state set to 4 from 3, ControlID = 17
07/10/12 4:00:18.000 PM kernel: AGPM: GPU = IGPU G-state set to 6 from 5, ControlID = 16
07/10/12 4:00:20.000 PM kernel: AGPM: GPU = GFX0 G-state set to 3 from 4, ControlID = 17
07/10/12 4:00:20.000 PM kernel: AGPM: GPU = IGPU G-state set to 5 from 6, ControlID = 16
07/10/12 4:00:20.000 PM kernel: AGPM: GPU = GFX0 G-state set to 2 from 3, ControlID = 17
07/10/12 4:00:20.000 PM kernel: AGPM: GPU = IGPU G-state set to 4 from 5, ControlID = 16
07/10/12 4:00:22.000 PM kernel: AGPM: GPU = IGPU G-state set to 3 from 4, ControlID = 16
07/10/12 4:00:22.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 2, ControlID = 17
07/10/12 4:00:22.000 PM kernel: AGPM: GPU = IGPU G-state set to 2 from 3, ControlID = 16
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = GFX0 G-state set to 2 from 1, ControlID = 17
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = IGPU G-state set to 3 from 2, ControlID = 16
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = GFX0 G-state set to 3 from 2, ControlID = 17
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = IGPU G-state set to 4 from 3, ControlID = 16
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = GFX0 G-state set to 2 from 3, ControlID = 17
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = IGPU G-state set to 3 from 4, ControlID = 16
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 2, ControlID = 17
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = IGPU G-state set to 2 from 3, ControlID = 16
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 2, ControlID = 16
07/10/12 4:00:23.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17


Render2
07/10/12 4:01:20.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:25.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:25.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:25.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:25.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:32.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:32.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:33.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:33.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:37.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:37.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:37.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:37.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:38.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:38.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:38.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:38.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:39.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:39.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:39.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:39.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:41.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:41.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:41.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:41.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:42.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:42.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:42.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:42.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:43.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:43.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:43.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:43.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16
07/10/12 4:07:47.000 PM kernel: AGPM: GPU = IGPU G-state set to 1 from 0, ControlID = 16
07/10/12 4:07:47.000 PM kernel: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
07/10/12 4:07:47.000 PM kernel: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
07/10/12 4:07:47.000 PM kernel: AGPM: GPU = IGPU G-state set to 0 from 1, ControlID = 16

For me it suggests both GPU are being used. Though GPU switching is disabled

And they are not utilizing at full power,

Full power as per the plist file is
Max power state =8 for gfx0

AND 15 For IGPU

Any suggestions? what actually is happening

thnx

SAMEER S.


Return to posts index
Reply   Like  

Steve ModicaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 8, 2012 at 6:37:06 pm

This looks relevant:
http://www.chromescreen.com/get-rid-of-osx-lag-and-run-your-macbook-pro-gpu...

I haven't gone over it in detail but it talks about forcing the GFX to full power all the time.

Steve Modica
CTO, Small Tree Communications


Return to posts index
Reply   Like  


Sameer ShrivastavaRe: Autodesk smoke. rendering speed. bottleneck
by on Oct 18, 2012 at 5:53:02 pm

Hi

Bit confused about editing plist file for my model macbook pro 8,3. suggested settings in the above article are listed different here.

pls suggest the correct settings to make my gfx0 run at full speed.

" MacBookPro8,3

GFX0

QSC

Enabled
1
Mode
1
hwPState

0
0
1
1
1
1
1
1
2

qscOnTime

0
1440
0
2400
4000
5760
7680
9760
0


control-id
17
max-power-state
8

IGPU

Heuristic

BusyDownThresholdPercent
70
BusyUpThresholdPercent
90
DiagnosticModeDefault
0
EvaluateDownInterval
350000
EvaluateUpInterval
66000
ID
2
SensorOption
1

control-id
16
max-power-state
15
min-power-state
0

LogControl
1
"

THNX


Return to posts index
Reply   Like  

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
Share on Facebook


FORUMSTUTORIALSFEATURESVIDEOSPODCASTSEVENTSSERVICESNEWSLETTERNEWSBLOGS

Creative COW LinkedIn Group Creative COW Facebook Page Creative COW on Twitter
© 2014 CreativeCOW.net All rights are reserved. - Privacy Policy

[Top]