| Index: native_client_sdk/src/doc/faq.rst
|
| diff --git a/native_client_sdk/src/doc/faq.rst b/native_client_sdk/src/doc/faq.rst
|
| index 67f356c7f1e2245b43c23974498a62370f9a1a1c..ee6ee512f0d7f42cbef14a6e479c1fa44a777fe9 100644
|
| --- a/native_client_sdk/src/doc/faq.rst
|
| +++ b/native_client_sdk/src/doc/faq.rst
|
| @@ -63,7 +63,11 @@ Portable Native client further enhances the above:
|
| gains support for new processors and fully uses their capabilities.
|
|
|
| .. TODO Expand on the PNaCl performance section in another document, and
|
| -.. link to it here.
|
| +.. link to it here. How does one profile PNaCl code? What are common
|
| +.. causes of slowness? How can code be made faster? What's the best way
|
| +.. to use Pepper's asynchronous APIs? What do I need to know about
|
| +.. threads and inter-thread communications? Can I use SIMD or other
|
| +.. processor-specific instructions? What aboutt he GPU?
|
|
|
| For more details, refer to the :doc:`history behind and comparison of
|
| NaCl and PNaCl <nacl-and-pnacl>`.
|
| @@ -91,29 +95,40 @@ When should I use Portable Native Client?
|
| See :doc:`NaCl and PNaCl <nacl-and-pnacl>`. In short: PNaCl works on the
|
| open web whereas NaCl only works on the Chrome Web Store.
|
|
|
| -How fast does code run in Native Client?
|
| -----------------------------------------
|
| +How fast does code run in Portable Native Client?
|
| +-------------------------------------------------
|
|
|
| -Fast! Benchmarks on x86-32 measured an average performance overhead of
|
| -less than 5% compared to native C/C++ on applications such as Quake,
|
| -bzip2, and Google Earth. For details of those benchmarks, see `Native
|
| -Client: A Sandbox for Portable, Untrusted x86 Code
|
| -<https://src.chromium.org/viewvc/native_client/data/docs_tarball/nacl/googleclient/native_client/documentation/nacl_paper.pdf>`_
|
| -(PDF).
|
| +Fast! The SPEC2k benchmarks (C, C++ and floating-point benchmarks) give
|
| +the following overhead for optimized PNaCl compared to regular optimized
|
| +LLVM:
|
| +
|
| ++--------+-----+
|
| +| x86-32 | 15% |
|
| ++--------+-----+
|
| +| x86-64 | 20% |
|
| ++--------+-----+
|
| +| ARM | 10% |
|
| ++--------+-----+
|
|
|
| -Benchmarks on x86-64 and ARM measured an average performance overhead of
|
| -less than 5% on ARM and 7% on x86-64; however, benchmark performance was
|
| -bimodal for x86-64, so different use cases are likely to achieve either
|
| -significantly better or significantly worse performance than that
|
| -average. For details, see `Adapting Software Fault Isolation to
|
| -Contemporary CPU Architectures
|
| -<https://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf>`_ (PDF).
|
| +Note that benchmark performance is sometimes bimodal, so different use
|
| +cases are likely to achieve better or worse performance than the above
|
| +averages. For example floating-point heavy code usually exhibits much
|
| +lower overheads whereas very branch-heavy code often performs worse.
|
|
|
| -.. TODO Update performance numbers.
|
| +For details, see:
|
| +
|
| +* `Adapting Software Fault Isolation to Contemporary CPU Architectures
|
| + <https://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf>`_
|
| + (PDF).
|
| +* `Native Client: A Sandbox for Portable, Untrusted x86 Code
|
| + <https://src.chromium.org/viewvc/native_client/data/docs_tarball/nacl/googleclient/native_client/documentation/nacl_paper.pdf>`_
|
| + (PDF).
|
|
|
| If your code isn't performing as close to native speed as you'd expect,
|
| :doc:`let us know <help>`!
|
|
|
| +.. TODO Link to the non-existent performance page! (see above todo).
|
| +
|
| Why use Portable Native Client instead of *<technology X>*?
|
| -----------------------------------------------------------
|
|
|
| @@ -151,11 +166,8 @@ develop on ChromeOS with `Crouton
|
| self-hosting a full development environment on Portable Native Client.
|
|
|
| Any editor+shell combination should work as well as IDEs like Eclipse,
|
| -Visual Studio with the `Native Client Add-In
|
| -<https://developers.google.com/native-client/dev/devguide/devcycle/vs-addin>`_
|
| -on Windows, or Xcode on Mac OSX.
|
| -
|
| -.. TODO: update link to Visual Studio when ReST-ified.
|
| +Visual Studio with the :doc:`Native Client Add-In
|
| +<devguide/devcycle/vs-addin>` on Windows, or Xcode on Mac OSX.
|
|
|
| I'm not familiar with native development tools, can I still use the Native Client SDK?
|
| --------------------------------------------------------------------------------------
|
| @@ -184,10 +196,8 @@ to consider Native Client for standardization.
|
|
|
| We consistenly try to document our design and implementation and hope to
|
| standardize Portable Native Client when it gains more traction. A good
|
| -example is our `PNaCl bitcode reference manual
|
| -<http://www.chromium.org/nativeclient/pnacl/bitcode-abi>`_.
|
| -
|
| -.. TODO Update the above bitcode-abi link to a :doc: once 3693 is fixed.
|
| +example is our :doc:`PNaCl bitcode reference manual
|
| +<reference/pnacl-bitcode-abi>`.
|
|
|
| What are the supported instruction set architectures?
|
| -----------------------------------------------------
|
| @@ -274,12 +284,8 @@ Yes. Native Client supports `OpenGL ES 2.0
|
|
|
|
|
| To alert the user regarding their hardware platform's 3D feature set
|
| -before loading a large NaCl application, see `Vetting the driver in
|
| -Javascript
|
| -<https://developers.google.com/native-client/devguide/coding/3D-graphics>`_.
|
| -
|
| -.. TODO Update link to point to the right place in the document once
|
| -.. it's ReST-ified.
|
| +before loading a large NaCl application, see :doc:`Vetting the driver in
|
| +Javascript <devguide/coding/3D-graphics>`.
|
|
|
| Some GL extensions are exposed to Native Client applications, see the
|
| `GL ES 2 file
|
|
|