CPU with MMX/SSE/... and Dynamic CPU optimizations
-
DarkDragon
- Addict

- Posts: 2348
- Joined: Mon Jun 02, 2003 9:16 am
- Location: Germany
- Contact:
CPU with MMX/SSE/... and Dynamic CPU optimizations
Hello,
Once upon a time when we all were a bit younger, there was a question about those optimizations like "Are they implemented? I can't see any difference." and the answer was "This option is there for future libraries and for userlibraries". Well now, what is the status on this? Are some purebasic libraries optimized for those options? Which ones?
Regards,
Daniel
Once upon a time when we all were a bit younger, there was a question about those optimizations like "Are they implemented? I can't see any difference." and the answer was "This option is there for future libraries and for userlibraries". Well now, what is the status on this? Are some purebasic libraries optimized for those options? Which ones?
Regards,
Daniel
bye,
Daniel
Daniel
- Psychophanta
- Always Here

- Posts: 5153
- Joined: Wed Jun 11, 2003 9:33 pm
- Location: Anare
- Contact:
Hmm.. tho it could be handy if we could make a list of functions that would benefit from such optimizations. Thinking for the moment mostly about the graphic, sprite and eventually compression functions. But maybe somone with more inside-knowledge has some suggestions - it would afterall make PB even faster, especially since things like SSE and MMX are out quiet a while now.
Cheers,
Thalius
Cheers,
Thalius
"In 3D there is never enough Time to do Things right,
but there's always enough Time to make them *look* right."
"psssst! i steal signatures... don't tell anyone!
"
but there's always enough Time to make them *look* right."
"psssst! i steal signatures... don't tell anyone!
Disable
Maybe that CPU Optimizations dropdown should be disabled then with the default "All CPU" always selected? Otherwise it gives a false impression and only causes confusion?
-
DarkDragon
- Addict

- Posts: 2348
- Joined: Mon Jun 02, 2003 9:16 am
- Location: Germany
- Contact:
- Michael Vogel
- Addict

- Posts: 2867
- Joined: Thu Feb 09, 2006 11:27 pm
- Contact:
Since PB4.3 is available, I'm not sure if user libraries are useful. I try to avoid using them where possible, because nobody can tell if the lib will work with future releases of Purebasic.
For example, the PBOSL does not work (completely) under PB4.30! It was a brave idea to bring good routines from a couple of good programmers into one lib - but using functions of the lib may cause problems when Purebasic will be developed further.
I would propose on of these three possibilities for library functions:
- transform them to Purebasic includes
- something like a "PB certified library" quality sign which guarantees a (high chance) of future compatibility
- integrate important functions in the Purebasic standard libs
Okay, these things may have nothing to do with CPU optimization directly. But when developing a library function I would think twice before working hours and hours for getting it some milliseconds faster if can't be aware that the library will work in future versions of Purebasic as well.
For example, the PBOSL does not work (completely) under PB4.30! It was a brave idea to bring good routines from a couple of good programmers into one lib - but using functions of the lib may cause problems when Purebasic will be developed further.
I would propose on of these three possibilities for library functions:
- transform them to Purebasic includes
- something like a "PB certified library" quality sign which guarantees a (high chance) of future compatibility
- integrate important functions in the Purebasic standard libs
Okay, these things may have nothing to do with CPU optimization directly. But when developing a library function I would think twice before working hours and hours for getting it some milliseconds faster if can't be aware that the library will work in future versions of Purebasic as well.
-
DarkDragon
- Addict

- Posts: 2348
- Joined: Mon Jun 02, 2003 9:16 am
- Location: Germany
- Contact:
Well, you are not right, because you just know Tailbite. Those normal libraries (Even from PBOSL) have always worked, just those tailbite libraries not.Michael Vogel wrote:Since PB4.3 is available, I'm not sure if user libraries are useful. I try to avoid using them where possible, because nobody can tell if the lib will work with future releases of Purebasic.
bye,
Daniel
Daniel
PBOSL is opensource so if something breaks on PB update you just need to recompile it.
User libraries are good as long as the author updates it. Or better if they also share the sourcecode/includefile.
User libraries are good as long as the author updates it. Or better if they also share the sourcecode/includefile.
[Registered PB User since 2006]
[PureBasic 6.20][SpiderBasic 2.2]
[RP4 x64][Win 11 x64][Ubuntu x64]
I agree, if PBOSL isn't keeping up then that just implies that there isn't enough effort going into it anymore. That may be because some of the parts of it are obsolete now with new versions and should be dropped. If the parts that aren't needed ARE dropped then supporting the rest would not be so hard perhaps.
I think that new people to PB aren't hearing about PBOSL much and it may not clear how to get involved to update it.
Theres been a lot of activity from PB lately so I think peoples minds are focused on getting their features that way but things may slow down again from time to time.
DLLs are also a possibility. I know a lot of people don't like the extra baggage but they are a bit more compiler version proof. Just a thought. Personally I'm an include fan formost but DLLs are a good way to isolate some standard routines into a logical module (network functions like ping, trace etc, search routines and string functions, math and large nums) etc
I think that new people to PB aren't hearing about PBOSL much and it may not clear how to get involved to update it.
Theres been a lot of activity from PB lately so I think peoples minds are focused on getting their features that way but things may slow down again from time to time.
DLLs are also a possibility. I know a lot of people don't like the extra baggage but they are a bit more compiler version proof. Just a thought. Personally I'm an include fan formost but DLLs are a good way to isolate some standard routines into a logical module (network functions like ping, trace etc, search routines and string functions, math and large nums) etc
Paul Dwyer
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
-
DarkDragon
- Addict

- Posts: 2348
- Joined: Mon Jun 02, 2003 9:16 am
- Location: Germany
- Contact:
No I don't think you understand it.
PBOSL is not ONE Library, PBOSL are about 20-30 Libraries which are independent from each other. And some are built with C/C++, some with ASM, some with PureBasic and the inofficial PureBasic Add-On Tailbite.
Well and when you create a library with C/C++ or ASM you don't need to recompile it every PB version. With PureBasic and Tailbite, you need to recompile it.
------------------------------------
In the next version of PBOSL, PureBasic libraries will be delivered as includes (so we don't need to tailbite them all the time) and just those, written in C or Assembler will be real libraries. But as you are inable to wait (like a child always crying: "Are we there, yet?" ... 1 minute later ... "Are we there, yet?" ... 1 minute later ... "Are we there, yet?") you can take the sources and use them.
We are just making sure the global variables won't hit your sources (Me) and we make them 64bit compatible (Rings). And we are changing the license maybe (Because people don't like LGPL).
Ignorant people ... ohh how I hate 'em.
PBOSL is not ONE Library, PBOSL are about 20-30 Libraries which are independent from each other. And some are built with C/C++, some with ASM, some with PureBasic and the inofficial PureBasic Add-On Tailbite.
Well and when you create a library with C/C++ or ASM you don't need to recompile it every PB version. With PureBasic and Tailbite, you need to recompile it.
------------------------------------
In the next version of PBOSL, PureBasic libraries will be delivered as includes (so we don't need to tailbite them all the time) and just those, written in C or Assembler will be real libraries. But as you are inable to wait (like a child always crying: "Are we there, yet?" ... 1 minute later ... "Are we there, yet?" ... 1 minute later ... "Are we there, yet?") you can take the sources and use them.
We are just making sure the global variables won't hit your sources (Me) and we make them 64bit compatible (Rings). And we are changing the license maybe (Because people don't like LGPL).
Ignorant people ... ohh how I hate 'em.
bye,
Daniel
Daniel
no one mentioned anything about not being able to waitDarkDragon wrote:... But as you are inable to wait ...
Ignorant people ... ohh how I hate 'em.
Paul Dwyer
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
-
DarkDragon
- Addict

- Posts: 2348
- Joined: Mon Jun 02, 2003 9:16 am
- Location: Germany
- Contact:
pdwyer wrote:no one mentioned anything about not being able to waitDarkDragon wrote:... But as you are inable to wait ...
Ignorant people ... ohh how I hate 'em.
We are working on it implies with your sentence, that we aren't working hard/fast enough.if PBOSL isn't keeping up then that just implies that there isn't enough effort going into it anymore.
Like the modus ponens afaik.
bye,
Daniel
Daniel
ahh, you misunderstand me,
I'm not talking about people sitting around holding their breath. I'm refering to the level of cooperation and involvement from the community at large in the opensource work. (or atleast my perception of it)
I'm not talking about people sitting around holding their breath. I'm refering to the level of cooperation and involvement from the community at large in the opensource work. (or atleast my perception of it)
Paul Dwyer
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
“In nature, it’s not the strongest nor the most intelligent who survives. It’s the most adaptable to change” - Charles Darwin
“If you can't explain it to a six-year old you really don't understand it yourself.” - Albert Einstein
Re: Disable
I kinda like this idea, MMX and SSE variants should still be supported in the compiler tough. But I do not see any point in having the choice in the IDE any more.USCode wrote:Maybe that CPU Optimizations dropdown should be disabled then with the default "All CPU" always selected? Otherwise it gives a false impression and only causes confusion?
So my suggestion is to default it to "Dynamic CPU" instead and remove the choice from the IDE. (and maybe put the "none" "user mode" "admin mode" in it's place as a drop down list)

