OLD | NEW |
1 ########################## | 1 ########################## |
2 Frequently Asked Questions | 2 Frequently Asked Questions |
3 ########################## | 3 ########################## |
4 | 4 |
5 .. contents:: | 5 .. contents:: |
6 :local: | 6 :local: |
7 :backlinks: none | 7 :backlinks: none |
8 :depth: 2 | 8 :depth: 2 |
9 | 9 |
10 This document answers some frequently asked questions about Native | 10 This document answers some frequently asked questions about Native |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 * **Portability:** Developers and users don't need to worry about | 58 * **Portability:** Developers and users don't need to worry about |
59 already-released applications not working on new hardware: PNaCl | 59 already-released applications not working on new hardware: PNaCl |
60 already supports all architectures NaCl does, and as PNaCl evolves it | 60 already supports all architectures NaCl does, and as PNaCl evolves it |
61 gains support for new processors and fully uses their capabilities. | 61 gains support for new processors and fully uses their capabilities. |
62 | 62 |
63 .. TODO Expand on the PNaCl performance section in another document, and | 63 .. TODO Expand on the PNaCl performance section in another document, and |
64 .. link to it here. How does one profile PNaCl code? What are common | 64 .. link to it here. How does one profile PNaCl code? What are common |
65 .. causes of slowness? How can code be made faster? What's the best way | 65 .. causes of slowness? How can code be made faster? What's the best way |
66 .. to use Pepper's asynchronous APIs? What do I need to know about | 66 .. to use Pepper's asynchronous APIs? What do I need to know about |
67 .. threads and inter-thread communications? Can I use SIMD or other | 67 .. threads and inter-thread communications? Can I use SIMD or other |
68 .. processor-specific instructions? What aboutt he GPU? | 68 .. processor-specific instructions? What about the GPU? |
69 | 69 |
70 For more details, refer to the :doc:`history behind and comparison of | 70 For more details, refer to the :doc:`history behind and comparison of |
71 NaCl and PNaCl <nacl-and-pnacl>`. | 71 NaCl and PNaCl <nacl-and-pnacl>`. |
72 | 72 |
73 When should I use Native Client? | 73 When should I use Native Client? |
74 -------------------------------- | 74 -------------------------------- |
75 | 75 |
76 The following are some typical use cases. For details, see the | 76 The following are some typical use cases. For details, see the |
77 :doc:`Technical Overview <overview>`. | 77 :doc:`Technical Overview <overview>`. |
78 | 78 |
(...skipping 27 matching lines...) Expand all Loading... |
106 | x86-64 | 25% | | 106 | x86-64 | 25% | |
107 +--------+-----+ | 107 +--------+-----+ |
108 | ARM | 10% | | 108 | ARM | 10% | |
109 +--------+-----+ | 109 +--------+-----+ |
110 | 110 |
111 Note that benchmark performance is sometimes bimodal, so different use | 111 Note that benchmark performance is sometimes bimodal, so different use |
112 cases are likely to achieve better or worse performance than the above | 112 cases are likely to achieve better or worse performance than the above |
113 averages. For example floating-point heavy code usually exhibits much | 113 averages. For example floating-point heavy code usually exhibits much |
114 lower overheads whereas very branch-heavy code often performs worse. | 114 lower overheads whereas very branch-heavy code often performs worse. |
115 | 115 |
| 116 Note that PNaCl supports performance features that are often used in |
| 117 native code such as :ref:`threading <language_support_threading>` and |
| 118 :ref:`Portable SIMD Vectors <portable_simd_vectors>`. |
| 119 |
116 For details, see: | 120 For details, see: |
117 | 121 |
118 * `Adapting Software Fault Isolation to Contemporary CPU Architectures | 122 * `Adapting Software Fault Isolation to Contemporary CPU Architectures |
119 <https://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf>`_ (PDF). | 123 <https://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf>`_ (PDF). |
120 * `Native Client: A Sandbox for Portable, Untrusted x86 Code | 124 * `Native Client: A Sandbox for Portable, Untrusted x86 Code |
121 <http://research.google.com/pubs/pub34913.html>`_ (PDF). | 125 <http://research.google.com/pubs/pub34913.html>`_ (PDF). |
122 | 126 |
123 If your code isn't performing as close to native speed as you'd expect, | 127 If your code isn't performing as close to native speed as you'd expect, |
124 :doc:`let us know <help>`! | 128 :doc:`let us know <help>`! |
125 | 129 |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 NPAPI is not supported by the Native Client SDK, and is `deprecated in | 268 NPAPI is not supported by the Native Client SDK, and is `deprecated in |
265 Chrome | 269 Chrome |
266 <http://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html>`_
. | 270 <http://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html>`_
. |
267 | 271 |
268 Does Native Client support SIMD vector instructions? | 272 Does Native Client support SIMD vector instructions? |
269 ---------------------------------------------------- | 273 ---------------------------------------------------- |
270 | 274 |
271 Native Client currently supports SSE on x86 and NEON on ARM. Support for | 275 Native Client currently supports SSE on x86 and NEON on ARM. Support for |
272 AVX on x86 is under way. | 276 AVX on x86 is under way. |
273 | 277 |
274 Portable Native Client should support SIMD vectors in the near future. | 278 Portable Native Client supports portable SIMD vectors, as detailed in |
| 279 :ref:`Portable SIMD Vectors <portable_simd_vectors>`. |
275 | 280 |
276 Can I use Native Client for 3D graphics? | 281 Can I use Native Client for 3D graphics? |
277 ---------------------------------------- | 282 ---------------------------------------- |
278 | 283 |
279 Yes. Native Client supports `OpenGL ES 2.0 | 284 Yes. Native Client supports `OpenGL ES 2.0 |
280 <https://www.khronos.org/opengles/>`_. | 285 <https://www.khronos.org/opengles/>`_. |
281 | 286 |
282 To alert the user regarding their hardware platform's 3D feature set | 287 To alert the user regarding their hardware platform's 3D feature set |
283 before loading a large NaCl application, see :doc:`Vetting the driver in | 288 before loading a large NaCl application, see :doc:`Vetting the driver in |
284 Javascript <devguide/coding/3D-graphics>`. | 289 Javascript <devguide/coding/3D-graphics>`. |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 you're loading the correct ``.nexe`` file by building a separate | 567 you're loading the correct ``.nexe`` file by building a separate |
563 ``.nexe`` for each architecture, and using a ``.nmf`` manifest file to | 568 ``.nexe`` for each architecture, and using a ``.nmf`` manifest file to |
564 let the browser select the correct ``.nexe`` file. Note: the need to | 569 let the browser select the correct ``.nexe`` file. Note: the need to |
565 select a processor-specific ``.nexe`` goes away with Portable Native | 570 select a processor-specific ``.nexe`` goes away with Portable Native |
566 Client. | 571 Client. |
567 * If things still aren't working, :doc:`ask for help <help>`! | 572 * If things still aren't working, :doc:`ask for help <help>`! |
568 | 573 |
569 .. _CORS: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing | 574 .. _CORS: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing |
570 .. _naclports: https://code.google.com/p/naclports | 575 .. _naclports: https://code.google.com/p/naclports |
571 .. _Crouton: https://github.com/dnschneid/crouton | 576 .. _Crouton: https://github.com/dnschneid/crouton |
OLD | NEW |