Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need Sparc and PowerPC Support #177

Open
megapyhor opened this issue Jun 26, 2017 · 10 comments
Open

Need Sparc and PowerPC Support #177

megapyhor opened this issue Jun 26, 2017 · 10 comments

Comments

@megapyhor
Copy link

No description provided.

@megapyhor
Copy link
Author

I can provide access to necessary architectures

@psychocrypt
Copy link
Collaborator

Do you mean OpenPower?
It is intresting but I need to say that I am not sure if the community with such system architectures is large enough. The point is that the port will cost a lot of time and IMO the time will be better invested in porting the miner to arm.

Could you point out why this system could be a good miner architecture. I know that Power8 has hardware AES units but I don't know the throughput.

@megapyhor
Copy link
Author

@MostParsingVex
Copy link

MostParsingVex commented Aug 21, 2017

SPARC processors since T4 have included AES instructions. https://blogs.oracle.com/danx/sparc-t4-openssl-engine

@SIN3R6Y
Copy link

SIN3R6Y commented Nov 14, 2017

So i've actually started working on this for sparc64. Getting around the SSE2 requirements is easy enough by incorporating https://github.com/nemequ/simde. In my testing this provide no performance penalty on my i7 7700K as it simply forwards native instructions if available.

The next major issue is the aes-ni instructions. It seems they are being called directly in cryptonight_aesni.h. Is there a reason not to use the OS's built in cyrpto API's and let the kernel figure out hardware acceleration? Or does this result in a performance penalty @psychocrypt

@oforpertainingtothesun
Copy link

I've written some code in cpuminer-multi to take advantage of the Sparc T4 AES instructions which I could port to XMR-Stak? I used cpuminer-multi as I'm building on Solaris 11.3 which is stuck in the past as far as compiler support goes. My Sparc T4-1 system currently only does 30-50h/s on 8 virtual cores but I've not done much optimisation yet.

Can you tell me what build setup you plan to use so I can duplicate it? I can see that Solaris 11.3 can supposedly do gcc 5.1... but I couldn't figure out the crazy package masking system to get it to work.

@yuhong
Copy link

yuhong commented Jan 15, 2018

@SIN3R6Y: AFAIK the AES used in Monero is different from normal AES.

@SIN3R6Y
Copy link

SIN3R6Y commented Jan 18, 2018

@yuhong it is, they are calling the cpu instructions directly rather than going through the kernel api. Perhaps this provides some cross platform functionality?

@yuhong
Copy link

yuhong commented Jan 20, 2018

The point is that the one used in Monero is slightly different, so simply feeding a key to a standard AES code isn't enough.

@oforpertainingtothesun
Copy link

@megapyhor I've made the necessary changes to the PPCle conversion in this repository here:

https://github.com/oforpertainingtothesun/xmr-stak-sparc

It will also work for PPC big endian (as the original PPC conversion doesn't) so could be used (slowly) on Power 7 and earlier or on AIX.

Apologies for the lengthy build requirements, seems like Oracle have made a veritable dogs dinner of their GCC builds and don't appear to contribute much to GNU binutils. I can produce a binary release if you need me to including the GCC libs.

Out of interest, what (vaguely) are your Sparc machines normally doing? My day-job involves tooling for these machines and we're looking at supporting migration paths from Sparc to Linux on either x86 or PPCbe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants