Powered by LiveJournal.com
You are viewing the most recent 25 entries.
31st May 2019
I'm writing the blog in English because I type twice as fast this way than in Russian (yes I am improving...), and 90% of my friends and : friends
can read English any way. I answer comments in the same language they are posted.
I am trying not to post anything related to my employer, but if I do so, this expresses only my own views and does not represent an official position of my employer.
When I post about some technical topic which seems non trivial and is related to my employer's product, don't expect it to be inside information. If I post about it, it means that this info is already public. Usually I do not post any personal information or anything that is related to my family.
All photos are mine, and I allow anyone to copy, change, do anything you please with them. I don't post "friends only".
Useful tags are: software
and trip report
19th October 2016
Intel Processor Trace on Joule
I just checked Andi Kleen's github repos for IPT, and it works perfectly on Joule. Unlike most experimental code, this one works out of the box. What I did not expect, I started full trace on stream, and stream results did not change! :
It means that on Apollo Lake Atom platform, IPT is 0% intrusive - a very good sign!
P.S. Processor trace is the future of low level performance profiling.
11th October 2016
Trip report: Torino
I am travelling to customers as usual, but since Jacob was born I no longer have extra time to explore, and trying to schedule trips to the minimum. This time I had slightly more time than usual and spent couple of hours walking around Torino. :
I like a walkable city center very much. It is huge (bigger than in Milano and not as crowded as in Rome) but nice and comfortable. All these small shops selling different types of weird stuff. Like one in front of my hotel sells only tableware for pets.
And food was good too:( Read more...Collapse )
10th October 2016
3d scanning and VR
This weekend I tried to get Yulia into VR. So I took a Realsense camera, and tried scanning her with 3D systems Sense. I failed, it almost worked but stalled so often! Then I installed ItSeez3D scanner. It was much better, but still you need a model to stand still for 2 minutes, and I guess it only works with Lenin mausoleum guards. :
Still I got an obj; and tried composing a simple WebVR page. It worked, but it was awkward. Then I uploaded to sketchfab, and finally I was walking around virtual Yulia wearing my Oculus Rift. Model was not perfect but better than nothing. Verdict: it is not consumer ready yet, but very close. Once everyone will have a VR headset (most likely google style), ppl will routinely scan their 3D models and special moments in VR format.
5th October 2016
Russian high schools rating 2016
I read a Russian high school : rating
, they just published a fresh one for 2016.
My alma mater this time is #55. (Slightly dropped from #51 in 2015).
Then I tried looking for the school #40, Nizhny Novgorod, but did not find it anywhere in the list. I remember that in late 90s, there were more smarter kids graduating #40 than my school, so my first thought was "Sic transit gloria mundi".
But then I looked at the rating formula, and it is clear how my school could had surpassed #40. One of the key metrics is the enrollments rate to top 20 Russian Universities. Most of these top20 are in Moscow and St. Petersburg, except for Ekatirinburg, Tomsk, Novosibirsk and Kazan. But University of Nizhny Novgorod did not make it to top20. So all folks who graduate #40 and make it to a local University do not improve the score for #40.
There is obviously no top University in Cheboksary, so my fellow alumnus typically go to Moscow, St. Petersburg and Kazan once they graduate the school.
4th October 2016
Good SPDK intro
SPDK is DPDK for storage. My team mate just published a good : intro
article. SPDK is so DPDK, that it does not just use the same approach we use to process 100+Gb/sec of traffic on few cores, but needs DPDK for almost everything .. except storage ;)
2nd October 2016
On Joule power consumption
I just made my first measurement. :
Joule, currently the most powerful wearable computer, works for nine hours from 2.4Ah 3C LiPo battery; wifi was on and streaming, with moderate CPU load.
I guess I'd need to buy 3.9Ah for twelve hours. Also I hope a less sophisticated carrier board, when available, would help.
1st October 2016
I am no longer working on this type of stuff, but still like it a lot so got one just to play at home. (Everything is great in this board except the price)
30th September 2016
My brother's work
I liked this one: :
And it is not blocked in Germany by youtube as usual.
28th September 2016
2 годика и 3 месяца: :
> Папа, покажи мне сейчас! На компьютере, видео!
> Какое? Мультик про трех поросят, или семерых козлят?
> Нет! Видео как комбайн собирает хлеб!
Откуда он знает про комбайн и хлеб? Мы не рассказывали... В садике если и рассказывали, то по-немецки.
21st September 2016
On Vive and Oculus
Here is my take after couple of months of playing with VR: :
Vive, Oculus at al are cool, but they moved VR to a wrong direction. There should be no feedback from headset movements, just like it was in VR from 90s. The problem should be solved not from a technical setup perspective as now with sensors, but from bio-medical perspective, e.g. using a drug that temporarily weakens some links to cerebellum. So one can lie wearing a headset, and experience all kinds of movements in an open world. The only physical feedback loop that is absolutely necessary is eye tracking.
12th September 2016
Got back from a customer
Why 90% or my customers have R&D offices in the middle of nowhere? :
I had a nice view from a hotel room, but to get there we had to drive for 1.5 hours on country roads after we left an autobahn. (Achievement unlocked - overtaking at 240kph and seeing a middle finger from a driver behind (he opened a window at 220kph, a brave man!)).
Now I am back, taking a 4U server from a rack to the lab and back and thinking about what if I was not 72Kg/182cm but a bit slimmer built? A 4U server with an open case sounds like a small airplane starting... Good I am alone in the lab now.
3rd September 2016
I am interviewing ppl for a position in our team (sorry job post is internal only, so all candidates are experienced engineers who already work here). :
The job is all about s/w performance measurements and optimisations, so for a start, I am asking a question:
"There is a ~50% performance difference between a single Nehalem x86 core running at 2Ghz and single Skylake x86 core running at 2Ghz when running one of SPECint sub-benchmarks. Why?"
29th August 2016
I am investigating a performance issue reported by a customer, as usual. Somewhere mid-way, when I had a solid reproducible (as I thought), I noticed a strange thing: :
The workload was processing traffic at 44Gb/sec when it came to saturation (there were free CPU cycles, plenty of memory and PCIe throughput, so I had to find what is a limiting factor). For a start, I wanted to compare Vtune profile of 43Gb/sec (slightly below saturation), and 45Gb/sec (slightly above). What I noticed was that both profiles are the same, and there is no saturation at 45Gb/sec. So I increased a dial at my traffic generator, and found that when I run Vtune collector, my application starts losing packets at 48Gb/sec, not 44Gb/sec. Wtf? Quantum effect - observer affects measurement, and helps a lot.
Before recommending a customer to run a vtune collector forever (kidding), I double checked my setup and found that one of the processing threads was running at a wrong NUMA node. When I moved it to the right one, the saturation happened at 48Gb/sec no matter if I was profiling the SUT or not. Pfff.
28th August 2016
At a playground today, Jacob is 2 years and 2 months old. A little 3 year old boy comes, attracted by Jacob's colorful toys. :
Jacob> Мальчик, привет! Это Яшины игрушки, Яша не хочет делиться. Нельзя брать эти игрушки. Нельзя!
me> Яша, мальчик не понимает по русски. Говори по немецки.
Jacob> Hallo мальчик! А Кошка по немецки - Katze! У меня есть кошка, а по немецки кошка - Katze. Мальчик, ты понимаешь, Katze?
18th August 2016
Just not to forget
To create a cuda/tensorflow docker image that works on cuda8/1070, get cuda docker image, and run a script: : ( Read more...Collapse )
I am too lazy to turn it into a proper docker config.
17th August 2016
А чо, так можно было?
I just had the best experience ever in optimizing stuff for customers. If I measure by ROI, it greatly exceeds anything I did in my ~11 years of full time software performance work.. :
I got a customer call about a performance issue yesterday. A s/w engineer told me that he has a benchmark that uses his library and he absolutely needs to make it faster by N%. He used Intel Vtune to profile it, found that one of the functions in his library is the worst hotspot; it has CPI of 10+ and all kinds of stalls. Unfortunately the function is a big one so he does not know where to look. So I told him - "If you have Vtune results opened, double click on the function name.". So he did, and promised to call me today after he meditates a bit over results.
Today he called me back and told there is no issue any more - he had fixed everything.
So estimating the ROI: R - performance issue is resolved. I - nearly 0 (10 minutes phone call with a trivial suggestion ;) Of course I'll still report it to my boss as a "helped customer X to fix performance issue that helped project Y".
16th August 2016
Рыжики в лесу есть, но мы нашли только ежевику, малину, много белых груздей (собирать не стали), и, на фото - :
3rd August 2016
Here is a simple patch I made at work last week (the code below is not real): :
int insert_packet_hdr_to_ring_buffer(ring_buffer *buf, packet_hdr *pkt)
// here goes a complex logic for lock-free ringbuffer,
// in the end we have ringbuffer pointers updated and in *pkt_ptr there is a pointer
// to store the packet header
- *pkt_ptr = *pkt;
+ memcpy(pkt_ptr, pkt, packet_len);
This change brought ~5% speedup to the benchmark, replacing copying structure that spans on 2 cache lines element by element to SIMD copy from libc.
28th July 2016
Cool stats! Way to go. :
Originally posted by vit_r
Пришёл журнал германского общества информатиков. В статье, описывающей рынок труда диаграмма.
В индустрии с немецким паспортом 636 тысяч работников и 51 тысяча - без. Из них 51% не из ЕС.
5500 - Индия
2800 - Турция
2000 - Китай
8800 - прочие
Но первой идёт одна великолепная строчка:
7100 - Asylzugangsländer*
(Страны из которых приезжают беженцы)
А теперь смотрим список этих стран по сноске (*)
- Российская Федерация
Короче, поздравляю всех отмеченных. (Беларуси нет. Видимо, попала в «прочие»)
22nd July 2016
A good cyberpunk book in Russin
"Бинарная плащаница" is a nice cyberpunk novel. It is a sequel/fanfic for "The enclaves" series by Panov. I think it is almost better than original series because it does not focus on a wrong kind of mysticism. I highly recommend it but only if you liked the originals. Unfortunately, it is impossible to read the book w/o good understanding of "The enclaves" universe and a plot of at least 2 last books of the series.
20th July 2016
Freediving in Croatia
The weather was terrible and I caught cold, so I was only able to go freediving 3 times during last week in Pula. :
Ppl were having fun. I was just passing this place on my way to reefs and caves.( Read more...Collapse )
All pics are in the album
, not many this time.
19th July 2016
Now I had more time to play with my new Rift. :
1. Order of magnitude better immersion than with smartphone VR. With good content, immersion is nearly perfect.
2. When using WASD/controller for movement, I get sick quickly. For other means of transportations (teleports), it is all fine.
3. SDK works flawlessly, but even basic code in C++ seems too bloated.
4. It is very annoying that the controller works in SDK and "shell", but not in applications. It is a known problem everyone complains about, there are tons of workarounds but none works for me.
5. One thing that is missing is a generic 3-d world visualisation framework/API. There are some file system browsers, and that is it.
P.S. It is still an NBT. Not a huge one, but very important.
11th July 2016
Just got back from Zurich. It was my third time there, and the first time when I actually liked the city. Small detail: they seed numerous kinds of wild weeds and flowers all over tiny spots in the city center. :
We went there for our friend's wedding actually.
That was my first experience as a wedding photographer and I managed to make ~10 decent pics (not including one above). It was especially difficult to be both a photographer and a wedding witness in a city hall ;)