[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
gEDA-user: Re: Efficient Memories
*sigh* This is bad enough to be called a bug. If you have a small
example that triggers this "aspect", can you file it as a bug report?
You have my permisison to nudge its priority up to "6" because this
is actually quite embarrassing:-(
lingwitt@xxxxxxxxxxxxx wrote:
>
> On 5 Apr 2007, at 11:22:18 AM, Stephen Williams wrote:
>
>> lingwitt@xxxxxxxxxxxxx wrote:
>>> I've made a BMP image format creating module for fun.
>>>
>>> I maintain a 640x480 24-bits per pixel buffer and then write the data
>>> out to a file.
>>>
>>> At first I used a reg array, but came to find that each element of such
>>> a structure
>>> is expressed in vvp assembly as distinct reg. This made the vvp assembly
>>> 32 MB
>>> and unrunnable.
>>
>> Now independent of all the above, I'm surprised that 32Meg makes
>> a vvp file "unrunnable". I can believe "slow to load", but unless
>> you are very memory constrained, it shouldn't be that much slower
>> then in older snapshots before exploded arrays.
>>
>> Try "vvp -v foo.vvp" to get a bit more detail what might be
>> going on.
>
>
> Here are the results from
> (1) Large reg (byte) array : reg [7:0] data
> [0:sizeImage-1]; // sizeImage = 640*480*3 bytes
> (2) Large reg vector : reg [sizeImage*8-1:0] data;
>
>
> (1) (a) Running iverilog produces in 11.6 seconds the file a.out, which
> is 35 MB:
>
> Using language generation: IEEE1364-2001+Extensions,specify,xtypes
> PARSING INPUT
> LOCATING TOP-LEVEL MODULES
> test
> ... done, 0.02 seconds.
> ELABORATING DESIGN
> ... done, 0.68 seconds.
> RUNNING FUNCTORS
> -F cprop ...
> -F nodangle ...
> ... 1 iterations deleted 0 dangling signals and 0 events. (count=0)
> ... done, 0.01 seconds.
> CODE GENERATION -t dll
> ... invoking target_design
> ... done, 11.6 seconds.
> STATISTICS
> lex_string: add_count=44 hit_count=123
>
>
> (1) (b) Running vvp -v a.out takes 1.22 hours to compile
> and 15.3 seconds to run (fill all locations and write file).
>
> Compiling VVP ...
> Compile cleanup...
> ... Linking
> ... Removing symbol tables
> ... 0 functors
> 0 table
> 0 bufif
> 0 resolv
> 0 variable
> ... 901 opcodes (16384 bytes)
> ... 921630 nets
> ... 0 memories
> ... 5 scopes
> ... 4404.64 seconds, 0.0/0.0/0.0 KBytes size/rss/shared
> Running ...
> ... 15.3602 seconds, 0.0/0.0/0.0 KBytes size/rss/shared
> Event counts: (event pool = 0)
> 20007 thread schedule events
> 0 propagation events
> 0 assign events
> 0 other events
>
>
>
>
> (2) (a) Running iverilog produces in 0.03 seconds the file a.out, which
> is 32 KB:
>
> Using language generation: IEEE1364-2001+Extensions,specify,xtypes
> PARSING INPUT
> LOCATING TOP-LEVEL MODULES
> test
> ... done, 0.01 seconds.
> ELABORATING DESIGN
> ... done, 0.01 seconds.
> RUNNING FUNCTORS
> -F cprop ...
> -F nodangle ...
> ... 1 iterations deleted 0 dangling signals and 0 events. (count=0)
> ... done, 0 seconds.
> CODE GENERATION -t dll
> ... invoking target_design
> ... done, 0.03 seconds.
> STATISTICS
> lex_string: add_count=47 hit_count=123
>
>
> (1) (b) Running vvp -v a.out takes 0.02812 seconds to compile
> and 11.7084 seconds seconds to run (fill all locations and write
> file).
>
> Compiling VVP ...
> Compile cleanup...
> ... Linking
> ... Removing symbol tables
> ... 0 functors
> 0 table
> 0 bufif
> 0 resolv
> 0 variable
> ... 907 opcodes (16384 bytes)
> ... 33 nets
> ... 0 memories
> ... 5 scopes
> ... 0.02812 seconds, 0.0/0.0/0.0 KBytes size/rss/shared
> Running ...
> ... 11.7084 seconds, 0.0/0.0/0.0 KBytes size/rss/shared
> Event counts: (event pool = 0)
> 20007 thread schedule events
> 0 propagation events
> 0 assign events
> 0 other events
>
> In other words, exploding the arrays has a significantly bad impact on
> performance.
>
> As comparison:
> import time
> time1=time.time(); a = range(1024*768*3*8); print time.time() - time1
>
> gives:
>
> 1.99313998222 seconds
>
> and:
>
> time1 = time.time()
>
> for i in xrange(1024*768*3*8):
> a[i] = 0;
>
> print time.time() - time1
>
> gives:
>
> 13.961877107620239 seconds.
>
> Why not go ahead and compile vvp assembly?
> What makes python faster?
>
> Thanks for your time.
>
>
> _______________________________________________
> geda-user mailing list
> geda-user@xxxxxxxxxxxxxx
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
>
--
Steve Williams "The woods are lovely, dark and deep.
steve at icarus.com But I have promises to keep,
http://www.icarus.com and lines to code before I sleep,
http://www.picturel.com And lines to code before I sleep."
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user