Giter Site home page Giter Site logo

power8-crypto's Introduction

This is the Unoffical Guide to POWER8 in-core crypto. The document is a collection of field notes to help implementers cut-in POWER8 cryptography support. The notes are from our experience with implementing POWER8 for AES-Instrinsics and SHA-Instrinsics.

If you want to contribute to the book then clone the repository, make pull requests and open bug reports. Techinical editing is especially welcomed. We would be happy to take contributions and add additional authors.

If you only want the field notes then download power8-crypto.pdf. It is the compiled book with information that is missing from the IBM documents. If you find errors or omissions then make pull requests and open bug reports.

The book is built using DocBook. The instructions to setup DocBook on Ubuntu 16.04, 18.04 and 20.04 with Apache FOP 2.8 are available at https://github.com/noloader/Dockbook-Install.

power8-crypto's People

Contributors

noloader avatar wschmidt-ibm avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

power8-crypto's Issues

Vector dereferences section

The discussion in the "Vector derefences" section describes language from the OpenPOWER ELFv2 ABI document that has been recently superceded by errata. We independently discovered that this language is contrary to the C specification (the described casts are undefined behavior) while doing some optimization work for aligned pointers. Unfortunately the document is in process of being moved from the "public review" section to a published resource, so the link to it is 404ing today. It should soon be available, though, at https://openpowerfoundation.org/?resource_lib=openpower-elfv2-errata-elfv2-abi-version-1-4. The gist of the changes are to walk back all discussions of using the dereference operator for unaligned loads and stores; vec_xl, vec_xst, vec_xl_be, vec_xst_be are the proper ways of using them. I'm sorry that you ran afoul of this problem before we got the errata published.

Const pointer performance

I find this performance loss for const performance (end of chapter 2) to be quite mysterious. If I understand correctly, if you replace the second vec_ld argument with (const uint8_t*)mem_addr, there is performance loss? Is this true using the /opt/latest gcc compiler? Assuming so, could you please open a GCC bugzilla for this? The Power-specific code doesn't care about this, so I would assume the parser is somehow creating code that the optimizers don't handle well when the const token is present, and I can't see a valid reason for that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.