--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
On Feb 17, 2016 11:33 AM, "Russ Cox" <r...@golang.org> wrote:
> As I said, I personally have no problem assuming that both BE and LE are Power8. Let's see if anyone objects and if so what the objections are.
My only concern is that it's hard to get access to power8 machines, esp. big endian ones.
I certainly welcome a new big endian builder though, the powermac is just too noisy.
--
Jeff Scheel and I discussed machines with Brad F. last Friday, due to the fact that your ppc64le builder has gone away.
Jeff has set up some instances at OSU, which can be BE or LE. You may have tried to use this in the past and had
issues but hopefully those are now resolved. Please try those and let us know if there are problems. The information
about those was sent to Brad but I believe he is on vacation this week.
I can leave ppc64 as compatible with the old instruction set it uses now, which means for some functions it
could be significantly slower than it should be, or if possible, could there be a new GOARCH value or
other environment variable to indicate BE with a current instruction set?
--
1) Implementing CL 22772 in a different way for ppc64be and ppc64le, conditioned on the architecture.
2) Doing assembly changes with #ifdefs around power8 instructions, with fallback to power5 instructions. In assembly we have the architecture as a macro we can check.
1) Implementing CL 22772 in a different way for ppc64be and ppc64le, conditioned on the architecture.Re-implementing CL 22772 using the same method used for mips64 should be straightforward. I can do it at some point this week if no-one beats me to it.
However I would suggest that, unless uint64 to float64 conversions are considered performance critical, we stick to one implementation. Maintaining two implementations, particularly when there is no big endian ppc64 builder, seems to me like something to be avoided. I'm happy to be persuaded otherwise though.2) Doing assembly changes with #ifdefs around power8 instructions, with fallback to power5 instructions. In assembly we have the architecture as a macro we can check.
AFAICT the only new instructions added to the assembly since go 1.6 are STBCCC (stbcx) and LBAR (lbarx). These were added to optimise/simplify the Or8 and And8 functions in CL 22549. Since the old code was endianness dependent it already had two implementations so we could just add back the big endian implementation for ppc64 more or less unchanged (presumably this is what Lynn is thinking of doing).
> Some further optimizations are being considered for ppc64le for Go 1.8 that use power8 instructions, so I'd like to know if maintaining power5 compatibility
> will continue to be required.
Wouldn't it be just possible to guard these instructions with additional #ifdefs?
--
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
We have made a decision, concerning both A-EON and AmigaKit. The decision we made is grounded in our experience during the last 8 months in regards to both companies. As a result we have made the choice to no longer support A-EON or AmigaKit in any way, shape or form.We are still here and "WILL" be carrying more stuff soon. However no more X5000 or A1222 or, frankly anything produced from either company.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
First of all, my answer will be brief as I’m currently on mobile.
Having said that, I find the requirements a bit strange. How exactly am I supposed to measure the number of active ppc64 users? You know, this isn’t possible as Linux distributions usually don’t phone home like Windows does. Plus, there are many Linux users around the world in third-world countries for whom a 10-year-old computer is the best they can afford.
I also don’t really understand why you consider it so much of a burden to continue to provide support for POWER5. There are other compiler projects like the Free Pascal Compiler which have much less manpower yet the they manage to maintain architecture support for even older architectures like m68k or 8086.
Reading answers like yours from Google is always very frustrating and disappointing, to be honest. Google is such a large company with much more resources than most other companies writing software. Google profits from the work by the community on large scale with lots of community developers spending tons of their freetime for free to improve open source.
Google always claims to be an open source company and all about community, but then constantly puts out statements like yours come which read like „We won’t do that because we can’t earn money with that!“.
Sorry, but I can’t be anything but frustrated. If you don’t want to work with the community, then heck, just make this whole language closed source and sell it for money. At least you would be honest about your intentions about making money instead of providing something to the open source community to make programmers and users live easier.
So, with the decision to drop POWER5 support in the big-endian ppc64 port, Go will
effectively cut off all end users who run Go on ppc64 and becomes an enterprise-only
language on ppc64.
First of all, my answer will be brief as I’m currently on mobile.Having said that, I find the requirements a bit strange. How exactly am I supposed to measure the number of active ppc64 users?
You know, this isn’t possible as Linux distributions usually don’t phone home like Windows does. Plus, there are many Linux users around the world in third-world countries for whom a 10-year-old computer is the best they can afford. You’re only seeing this from the Western world where the majority of users can afford always buying the latest and greatest hardware, ignoring that there are countries in the world where the situation is much different.
Heck, there are 7 billion people on this planet. Do you really think there is just one users running Linux on POWER5 hardware? You know, not everyone can read all issues on github or read all messages on this mailing list.
I also don’t really understand why you consider it so much of a burden to continue to provide support for POWER5. There are other compiler projects like the Free Pascal Compiler which have much less manpower yet the they manage to maintain architecture support for even older architectures like m68k or 8086.
When it comes to availability, POWER8 hardware is probably unaffordable for most users because IBM doesn’t manage to scale the hardware down enough. Heck, when talking about the number of users and availability of hardware, Go should be Windows x86 only because that’s what most people run on the planet.
Hi,
In order to fully optimize the generated code for the Power GOARCHes (ppc64 & ppc64le) for the latest
processors, I need to be able to use some of the instructions from the more recent instruction sets,
some of which don't exist on older processors.
Doing this for GOARCH=ppc64le is not an issue since that can only be run on power8 or later.
What are the expectations/requirements for the instruction set used for ppc64 (BE)? I have not found any
golang documentation that mentions the instruction set used for either Power GOARCH value.
With gcc the mcpu option can be used to identify the instruction set to use. I asked a question about this
a few months ago and got a variety of responses that mostly told me the golang community doesn't like
switches.
I plan to start using power8 instructions for ppc64le.
As I have mentioned in my other mail to Bret. I have heard that
Google was offered a SPARC-T7 server for hosting to set up a
CI server for Solaris/sparc64 and that was allegedly rejected with
the statement that sparc64 isn't relevant enough.
On 06/16/2017 02:26 PM, Lynn Boger wrote:
> Support for the ppc64 v1 ABI was never added to golang. That means the types of linking modes that can be used with golang on ppc64 big endian are limited,
> preventing many of the commonly used Go applications to build or run on ppc64 big endian. None of the newer buildmodes (pie, shared, etc.) are supported on
> ppc64 big endian because of this. While there have been a few complaints on this, there haven't been many. To me that is an indicator of how golang on
> ppc64 big endian is used. I believe if there were serious users for ppc64 big endian, there would have been more requests for full linker support.
At least checking for packages with "golang" in their name, there don't seem to be many Go
packages on ppc64 which fail to build. In fact, I can only count four:
glaubitz@wuiet:~$ wanna-build --arch ppc64 --list build-attempted | grep -i golang
misc/golang-github-docker-docker-credential-helpers_0.5.0-2 by buildd_ppc64-kapitsa [extra:uncompiled:calprio{32}:days{39}]
misc/golang-github-docker-libnetwork_0.8.0-dev.2+git20170202.599.45b4086-1 by buildd_ppc64-ookuninushi [extra:uncompiled:calprio{32}:days{24}]
misc/dh-make-golang_0.0~git20161120.0.71f5e23-1 by buildd_ppc64-ookuninushi [extra:uncompiled:bp{-10000}:calprio{-9968}:days{96}]
misc/golang-gogoprotobuf_0.3+git20170120.144.265e960d-1 by buildd_ppc64-kapitsa [extra:uncompiled:bp{-10000}:calprio{-9968}:days{96}]
glaubitz@wuiet:~$
> golang for ppc64 big endian was always documented as an "experimental port" and has never been available on the golang.org/dl website.
Being able to download a binary build isn't necessary when Fedora, Debian and openSUSE are
building Golang packages for ppc64 by default.
> gccgo is a good option, and it can be targeted for power5 or power8.
But is it 100% on par with Golang? gccgo isn't of much use if I can
only build a fraction of the important Go packages like Docker, rkt
or Kubernetes with it.
Ian
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.