[pypy-commit] extradoc extradoc: work on slides
fijal
noreply at buildbot.pypy.org
Mon Feb 20 23:29:35 CET 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: extradoc
Changeset: r4092:dc5e0b3c78dc
Date: 2012-02-20 23:28 +0100
http://bitbucket.org/pypy/extradoc/changeset/dc5e0b3c78dc/
Log: work on slides
diff --git a/talk/sea2012/talk.rst b/talk/sea2012/talk.rst
--- a/talk/sea2012/talk.rst
+++ b/talk/sea2012/talk.rst
@@ -1,3 +1,5 @@
+.. include:: beamerdefs.txt
+
Fast numeric in Python - NumPy and PyPy
=======================================
@@ -19,7 +21,7 @@
* A framework for writing efficient dynamic language implementations
-* An open source project with a lot of volunteer effort
+* An open source project with a lot of volunteer effort, released under the BSD license
* I'll talk today about the first part (mostly)
@@ -28,16 +30,16 @@
* An **efficient just in time compiler** for the Python language
-* Relatively "good" on numerics (compared to other dynamic languages)
+* Relatively "good' on numerics (compared to other dynamic languages)
* Example - real time video processing
-* Some comparisons
+* XXX some benchmarks
Why would you care?
-------------------
-* "If I write this stuff in C/fortran/assembler it'll be faster anyway"
+* *If I write this stuff in C/fortran/assembler it'll be faster anyway*
* maybe, but ...
@@ -46,10 +48,14 @@
* Experimentation is important
-* Implementing something faster, in human time, leaves more time for optimizations and improvements
+* Implementing something faster, in **human time**, leaves more time for optimizations and improvements
* For novel algorithms, being clearly expressed in code makes them easier to evaluate (Python is cleaner than C often)
+|pause|
+
+* Sometimes makes it **possible** in the first place
+
Why would you care even more
----------------------------
@@ -66,17 +72,17 @@
* Next year a new generation of GPUs come along
-* Your algorithms are no longer optimize
+* Your algorithms are no longer optimized
|pause|
-* Alternative - express your algorithms
+* Alternative - **express** your algorithms
* Leave low-level details for people who have nothing better to do
|pause|
-* Like me (I don't know enough physics to do the other part)
+* .. like me (I don't know enough physics to do the other part)
Numerics in Python
------------------
@@ -119,19 +125,23 @@
* Stuff is reasonably fast, but...
-* Only if you don't actually write much Python
+|pause|
+
+* Only if you don't actually write much **Python**
* Array operations are fine as long as they're vectorized
* Not everything is expressable that way
-* Numpy allocates intermediates for each operation, trashing caches
+* Numpy allocates intermediates for each operation, suboptimal
Our approach
------------
* Build a tree of operations
+XXX a tree picture
+
* Compile assembler specialized for aliasing and operations
* Execute the specialized assembler
@@ -141,9 +151,14 @@
* ``a``, ``b``, ``c`` are single dimensional arrays
-* ``a + a`` would generate different code than ``a + b``
+* ``a+a`` would generate different code than ``a+b``
-* ``a + b * c`` is as fast as a loop
+* ``a+b*c`` is as fast as a loop
+
+Performance comparison
+----------------------
+
+XXX
Status
------
@@ -204,7 +219,26 @@
* We did not spend a whole lot of time dealing with the low-level optimizations
+* Automatic vectorization over multiple threads
+
+* SSE, GPU, dynamic offloading
+
+* Optimizations based on machine cache size
+
+* We're running a fundraiser, make your employer donate money
+
Extra - SSE preliminary results
-------------------------------
XXX
+
+Q&A
+---
+
+* http://pypy.org/
+
+* http://buildbot.pypy.org/numpy-status/latest.html
+
+* http://morepypy.blogspot.com/
+
+* Any questions?
More information about the pypy-commit
mailing list