libera/#clasp - IRC Chatlog
Search
14:08:53
Bike
ok, first stream bug detected: you're allowed to open a stream with an element type like (unsigned-byte 37), and if you write to that clasp crashes
14:24:49
Bike
drmeister: would there be any problem with only supporting binary stream element types of, say, ([un]signed-byte n) for n = 8,16,32,64
14:32:27
Bike
"FIXME: let's do it the hard way, then (but ignore things like endianness, efficiency, and the necessary doupling between these and the output routines)." okay, maybe it's not supported very well
16:16:20
Bike
i ask because if i'm reading correctly, there's no conforming way in C++ to convert a signed integer to an unsigned integer of the same size without runtime cost, until C++20. i'm not sure though. that seems weird
16:55:36
drmeister
Only supporting binary stream elements of 8,16,32,64 would not be adequate. You can make those optimized though.
16:57:30
Bike
do you just mean larger widths still divisible by 8, or do i need to figure out how to read and write 37 bit integers
17:02:23
drmeister
Bottom of page 324 - that's how I read it. But I think we don't let this influence us. Any weird bit width would be the responsibility of the programmer.
17:02:32
Bike
"Data are stored in a continuous stream of bits, with no delimiters", and it specifically contemplates 1 and 2 bits
17:03:56
Bike
so i'd guess how that code would actually be written is reading 8-bit bytes, or something, and then parsing those appropriately
17:09:39
Bike
okay. so i'll at least extend it to do any number of 8-bit bytes (below, i don't know, 1024). then maybe think about arbitrary bit widths. that's gonna be weird though.
17:24:41
Bike
old code reading 1M ub32s: 0.257s. writing: 0.269s. new code: reading 0.057s, writing 0.060s
17:27:35
Bike
that is, it read(2)s once for each ub32. so a million read(2)s. the old code would do four million.
17:46:36
drmeister
It has a command line tool to gather data and a GUI for visualizing the data. It support Windows, Linux and FreeBSD.
17:47:19
drmeister
It has flame charts but you need to use the GUI to generate them from the data the CLI tool gathers. AFAIK
17:51:27
drmeister
It's probably why AMD perf support is weak - they put their energy into their own tool.
17:52:57
drmeister
My problem with it is I have to get X-windows working on zeus to visualize flame graphs.
17:53:32
drmeister
OR install Windows and use Linux subsystem for Windows to generate data and Windows to visualize it.