On 12/12/16 4:58 PM, Relja Ljubobratovic wrote:
Hey guys,
We have just published another post on "Writing efficient numerical code
in D", to Mir's Blog[1]. In this post we are focusing on
mir.ndslice.algorithm usage in DCV[2], computer vision library that has
recently joined libmir organization. We've had great success in
optimizing DCV's algorithms mostly by replacing loop-style code with
mir.ndslice.algorithm multidimensional iteration utilities[3], and we
thought it was worth blogging about.
Any grammar (or any other type of) fix report is greatly appreciated!
Also, we'd like to ask Mike Parker to forward this to reddit if it's not
too much trouble? :) Maybe only wait few days so we could weed out some
mistakes from the text.
Cheers,
Relja
[1]
http://blog.mir.dlang.io/ndslice/algorithm/optimization/2016/12/12/writing-efficient-numerical-code.html
[2] https://github.com/libmir/dcv
[3] https://github.com/libmir/dcv/pull/58
This is awesome! Mike, could you please post to reddit about 11 hours
from now if possible.
I'm about to fall asleep, but I made a quick pass through the piece.
Here are a few nits:
* "In this post I’d like give" -> "This post gives"
* "module equipped with" -> "module that provides"
* "it’s usage" -> "its usage"
* "Note: It is assumed the reader is already somewhat familiar with
ndslice package [1]." -> "This article assumes the reader has a cursory
understanding of the ndslice package. If not, please consult this
post/doc/webpage/etc before returning here."
* "What does it offer?" -> "What does mir.ndslice.algorithm offer?"
* "its integrated seamlessly" -> "it is integrated seamlessly"
* "by that allowing more natural flow of processing pipeline" -> "which
makes for elegantly flowing processing pipelines"
* "One of key components to make code based" -> "One key component that
makes code based"
* "LLVM based D compiler" -> "the LLVM based D compiler"
* "kernels you write" -> "computation kernels written by the end user"
* "else turned on" -> "turned on"
* ", by Johan Engelen" -> remove the comma
* "we’ve been actively refactoring" -> define the team; so far the
article referred to the author as a single person
* "with mir.ndslice.algorithm equivalent" -> "with mir.ndslice.algorithm
equivalents"
* align numbers in html tables to the right
* "As you can see, speedups" -> "Speedups"
* "as I’ll show you in this post" -> "as shown below"
* "take a look at PR" -> "take a look at the pull request"
* "Discalmer" -> "Disclaimer"
* "mind DCV project" -> "mind the DCV project"
* "showing power" -> "showing the power"
* "dive into implementation" -> "dive into the implementation"
* "without extensive optimization techniques applied" -> "without
extensive optimizations"
* "In future we’ll focus" -> "A future post will focus"
* "first we’ll take a look" -> "first let's take a look"
* "basic principle how it can efficiently replace loop-based code" ->
"basic principle of replacing loop-based code with pipelines efficiently"
* "… This code" -> "This code"
* "apply given kernel" -> "apply the given kernel"
* "To bring this example more down to earth" -> "To make the example
more concrete"
* "As you can see, we are replacing" -> "The pipeline version replaces"
* "with few magic calls" -> "with a few magic calls"
* "And as you may have noticed, at" -> "At"
* "I get ~10x speedup" -> there's been a bunch of "we" and now getting
back to "I" is surprising. You may want to make a pass making sure the
use of person is consistent.
* "that variant written" -> "that the variant written"
* "syntax, and are" -> "syntax and are"
* "this is most basic binarization" -> "this is a most basic binarization"
* "Special part to care about, related to lockstep, is that byElement
call on each input Slice" -> "The call to byElement inside lockstep is
worth special attention"
* "We can notice right away there’s a change" -> "First off, there's a
change"
* "requires this so" -> "assumes that is the case"
* "We can also notice byElement" -> "Notably, byElement"
* "examine performance differences" -> "compare the impact of these
changes on performance"
* "On my machine" -> "On a Core i7 laptop with xyz GB or RAM and xyz
other relevant parameters..."
* "result is following" -> "the results are as follows"
* "with very little effort using" -> "with very little effort by using"
* "and it’s submodules" -> "and its submodules"
* "coming for some numerical computing" -> "having an interest in
numerical computing"
* "would have to be introduced to ndslice" -> "should take a close look
at ndslice"
I suggest making two passes through the piece: (a) one pass should
reduce fillers that are abundant ("as you can see", "as I'll show you",
"as said in the docs"...) A few are fine (perhaps 2-3 in the whole
article. Then (b) one pass looking for unified use of "I" (most likely:
the author, use sparingly), "you" (the reader, use sparingly), and "we"
(most likely: the author and reader looking together at something).
The results are terrific, congrats Ilya and Relja!
Andrei