--- Log opened Fri May 09 00:00:40 2014 | ||
-!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has joined #shogun | 00:08 | |
-!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has quit [Client Quit] | 00:10 | |
-!- khalednasr [~k.nasr92@41.69.183.238] has quit [Quit: Leaving] | 00:38 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 01:49 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has joined #shogun | 01:51 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 01:51 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has quit [Quit: Leaving.] | 02:21 | |
-!- pickle27 [~pickle27@192.0.136.118] has joined #shogun | 02:45 | |
shogun-buildbot | build #1 of nightly_fedora is complete: Failure [failed git] Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_fedora/builds/1 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Wu Lin <yorker.lin@gmail.com>, khalednasr <k.nasr92@gmail.com>, Viktor Gal <viktor.gal@maeth.com> | 03:00 |
---|---|---|
-!- soumyaC [uid15286@gateway/web/irccloud.com/x-cillcushvctzxqji] has quit [Quit: Connection closed for inactivity] | 03:36 | |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 04:15 | |
-!- pickle27 [~pickle27@192.0.136.118] has quit [Quit: Leaving] | 04:48 | |
-!- thoralf [~thoralf@91-66-177-150-dynip.superkabel.de] has joined #shogun | 10:17 | |
thoralf | Hey GUIs | 10:17 |
thoralf | (and CLIs) | 10:17 |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 10:49 | |
-!- soumyaC [uid15286@gateway/web/irccloud.com/x-hccjlqffpfaqjoji] has joined #shogun | 10:56 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has joined #shogun | 11:58 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:58 | |
lambday | HeikoS: hey! | 12:07 |
lambday | HeikoS: check this out! https://github.com/lambday/shogun-linalg/blob/master/src/test.cpp#L31 | 12:07 |
lambday | HeikoS: it can take SGVector, eigen3 vectors viennacl vectors | 12:08 |
lambday | all we gotta do is to call linalg::dot(a,b) | 12:08 |
lambday | :d | 12:08 |
lambday | and just reran the benckmark - mean 0.000004770994186, var 0.000000000000533 | 12:09 |
lambday | crazy fast! | 12:09 |
lambday | 1,000,000 sized vectors, mean over 1000 iterations | 12:09 |
-!- thoralf [~thoralf@91-66-177-150-dynip.superkabel.de] has quit [Quit: Konversation terminated!] | 12:41 | |
@HeikoS | lambday: benchmark comparing against what? | 12:42 |
lambday | HeikoS: the runtime alternative implementation that I had | 12:43 |
@HeikoS | what were the results there again? | 12:43 |
lambday | the one I just pasted is for the new design we have | 12:43 |
@HeikoS | lambday: sorry for being confused, just read about kernels ;) | 12:43 |
lambday | haha :D | 12:44 |
@HeikoS | how much is the difference? | 12:44 |
lambday | HeikoS: pretty huge actually! | 12:44 |
@HeikoS | two orders of magnitude? | 12:44 |
lambday | HeikoS: could you please try to run on your machine? | 12:44 |
@HeikoS | that seems weird, doesnt it? | 12:44 |
lambday | more than that! | 12:44 |
lambday | kind of... | 12:44 |
-!- thoralf [~thoralf@91-66-177-150-dynip.superkabel.de] has joined #shogun | 12:44 | |
lambday | HeikoS: could you please run this? https://github.com/lambday/shogun-linalg | 12:45 |
lambday | (I pushed some changes recently - so please pull) | 12:45 |
@HeikoS | lambday: just started | 12:45 |
* lambday nailbiting | 12:46 | |
@HeikoS | btw the compile command in the readme doesnt work, I have to put -l shogun to the end | 12:46 |
@HeikoS | heiko@heiko-ThinkPad-T440s:~/git/shogun-linalg$ ./test | 12:46 |
@HeikoS | mean 0.000005961656570, var 0.000000000005047 | 12:46 |
@HeikoS | mean 0.000011920928955, var 0.000000000000000 | 12:46 |
@HeikoS | is that the right compile command? | 12:46 |
@HeikoS | g++ -O3 -std=c++0x -I./src/ -I/usr/include/eigen3 -lshogun -o test src/test.cpp -l shogun | 12:46 |
lambday | there will be 3 results | 12:46 |
lambday | yes | 12:47 |
@HeikoS | lambday: ah yeah, sorry | 12:47 |
@HeikoS | heiko@heiko-ThinkPad-T440s:~/git/shogun-linalg$ ./test | 12:47 |
@HeikoS | mean 0.000005961656570, var 0.000000000005047 | 12:47 |
@HeikoS | mean 0.000011920928955, var 0.000000000000000 | 12:47 |
@HeikoS | mean 0.000005771160126, var 0.000000000003758 | 12:47 |
@HeikoS | so whats what there? | 12:47 |
lambday | yeah!! see! same result | 12:47 |
lambday | the first one is globally set backend (eigen3) | 12:47 |
lambday | for dot | 12:47 |
lambday | 2nd one is for globally set backend (eigen3) for sum | 12:47 |
lambday | 3rd one is explicitly set backend eigen3 for dot | 12:47 |
@HeikoS | I see | 12:48 |
@HeikoS | cool | 12:48 |
lambday | and now run this one (the earlier implementation that we had) | 12:48 |
lambday | (runtime one) | 12:48 |
@HeikoS | I remember like only two zeros for the runtime one? | 12:48 |
@HeikoS | ok | 12:48 |
@HeikoS | what to add? | 12:48 |
lambday | that's not in this code :D | 12:48 |
lambday | just a sec | 12:48 |
@HeikoS | ah I see | 12:48 |
lambday | HeikoS: https://gist.github.com/lambday/5d936749a1aa26e50beb | 12:49 |
lambday | dot_factory_benckmark.cpp | 12:49 |
lambday | compile it with g++ -std=c++0x -I/usr/include/eigen3 -lshogun dot_factory_benchmark.cpp | 12:49 |
@HeikoS | lambday: compiling ... | 12:49 |
lambday | there would be a warning but ignore that :D | 12:49 |
lambday | gonna take a while! | 12:50 |
@HeikoS | yeah saw it | 12:51 |
lambday | how much? | 12:52 |
@HeikoS | running :) | 12:52 |
@HeikoS | seems to run on two cpu? | 12:52 |
lambday | (sorry about the mistake in readme.. changing) | 12:52 |
@HeikoS | lambday: no worries | 12:52 |
lambday | two? | 12:52 |
@HeikoS | 50% of 4 cpu | 12:52 |
@HeikoS | maybe its another process | 12:52 |
@HeikoS | though doesnt look like | 12:52 |
lambday | phew! | 12:53 |
@HeikoS | lambday: how log does it run? | 12:53 |
lambday | err... 3-4 mins | 12:53 |
@HeikoS | aaah | 12:53 |
lambday | (so you can imagine that the other one is indeed better) | 12:53 |
@HeikoS | I compile shogun in the back | 12:53 |
lambday | :D | 12:53 |
@HeikoS | that takes lots of cpu | 12:53 |
@HeikoS | restarting | 12:53 |
lambday | ohhh | 12:53 |
@HeikoS | haha | 12:53 |
@HeikoS | 0.06 was the mean :) | 12:53 |
lambday | 0.06 | 12:54 |
@HeikoS | lambday: but these new hashwell cpus are really bad when multiple things are running | 12:54 |
@HeikoS | my old thinkpad was way faster | 12:54 |
lambday | 430? | 12:54 |
@HeikoS | t440s | 12:54 |
lambday | I am using 430 | 12:54 |
@HeikoS | yeah | 12:54 |
@HeikoS | that has the old core 2 ones | 12:54 |
@HeikoS | the 440s is way slower | 12:54 |
@HeikoS | (though runs for 7 hrs :) ) | 12:54 |
lambday | with wifi on?? | 12:54 |
lambday | :-o | 12:54 |
@HeikoS | yes | 12:54 |
lambday | whoa! | 12:55 |
@HeikoS | not with cpu intense stuff of course and not full screen brightness, but to work its fine | 12:55 |
@HeikoS | lambday: what do you got for the runtime example? | 12:55 |
@HeikoS | lambday: man | 12:55 |
@HeikoS | heiko@heiko-ThinkPad-T440s:~/git/shogun-linalg$ ./a.out | 12:55 |
@HeikoS | mean 0.063714141607285, var 0.000017001427689 | 12:55 |
lambday | ugly as shit! | 12:55 |
lambday | :D | 12:55 |
@HeikoS | comparing to | 12:55 |
@HeikoS | mean 0.000005961656570, var 0.000000000005047 | 12:55 |
@HeikoS | is that the same operation on the same or comparable data? | 12:55 |
lambday | I wonder what the hell is going on there!! | 12:55 |
lambday | just check the main function for a bit! | 12:56 |
@HeikoS | yeah did, looks the same right? | 12:56 |
lambday | exactly same unless I missed some obvious thing | 12:56 |
lambday | yeah!!!! | 12:56 |
lambday | :-/ | 12:56 |
@HeikoS | lambday: man! | 12:56 |
@HeikoS | so the only difference here are these v calls | 12:56 |
lambday | should be! | 12:56 |
@HeikoS | lambday: that 10000 | 12:57 |
@HeikoS | factor | 12:57 |
@HeikoS | *crazy* | 12:57 |
lambday | I thought with modern arch it doesn't matter much | 12:57 |
lambday | ohhh sorry sorry | 12:57 |
lambday | you didn't compile the last one with -O3 | 12:57 |
@HeikoS | ah | 12:57 |
lambday | ah crap! | 12:57 |
* lambday nailbiting again! | 12:57 | |
@HeikoS | lambday: phew | 12:57 |
@HeikoS | thats actually good | 12:58 |
@HeikoS | otherwise I would have been confused | 12:58 |
lambday | now we'll see the actual difference | 12:58 |
@HeikoS | lambday: ok | 12:58 |
@HeikoS | heiko@heiko-ThinkPad-T440s:~/git/shogun-linalg$ ./a.out | 12:58 |
@HeikoS | mean 0.001409775972366, var 0.000000014521595 | 12:58 |
@HeikoS | so thats about 10 times faster | 12:58 |
lambday | 10 times?? | 12:59 |
lambday | no | 12:59 |
@HeikoS | but the difference is still 1000 right? | 12:59 |
lambday | ohh yeah | 12:59 |
@HeikoS | to the compile time version | 12:59 |
@HeikoS | mmmh | 12:59 |
lambday | yeah | 12:59 |
@HeikoS | lambday: I am still suspicious | 12:59 |
@HeikoS | I mean how can that be? | 12:59 |
lambday | HeikoS: umm when I ran it earlier it was something around v | 12:59 |
@HeikoS | this means that one v-call costs as much as 1000 dot product operations | 12:59 |
lambday | mean 0.000607864618301, var 0.000000004135587 | 12:59 |
@HeikoS | so whats the difference on your system? | 13:00 |
@HeikoS | I mean anything from factor 10 makes sense to take the compile time pain (which is not that much) for | 13:00 |
-!- lambday_ [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 13:01 | |
lambday_ | HeikoS: sorry got dc | 13:01 |
lambday_ | HeikoS: on my machine its still 500x | 13:01 |
lambday_ | how come this new code is ultra fast? | 13:01 |
@HeikoS | lambday_ weird | 13:01 |
lambday_ | I mean, as long as I was using dot<float, SGVector<float>>(a, b) | 13:01 |
lambday_ | it was like 10 times faster | 13:02 |
@HeikoS | what did you change? | 13:02 |
lambday_ | but just now I added this dot(a,b) | 13:02 |
lambday_ | wait let me show | 13:02 |
lambday_ | its kinda creepy | 13:02 |
lambday_ | HeikoS: https://github.com/lambday/shogun-linalg/blob/master/src/linalg/modules/redux.h#L18 | 13:02 |
lambday_ | so it infers about t | 13:02 |
lambday_ | T | 13:02 |
lambday_ | and works with SGVector and Eigen3 vector both | 13:03 |
lambday_ | so say I have VectorXd a, b; | 13:03 |
lambday_ | I can use linalg::dot(a,b) | 13:03 |
lambday_ | (although I haven't pushed that code to the repo but locally tested) | 13:03 |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 13:03 | |
lambday_ | it inters about T in the runtime | 13:03 |
lambday_ | oops | 13:03 |
lambday_ | compile time!! | 13:03 |
-!- lambday_ is now known as lambday | 13:04 | |
lambday | infers* | 13:04 |
@HeikoS | lambday_ ehm what? could you repeat, I got confused :) | 13:04 |
lambday | HeikoS: so I mean | 13:05 |
lambday | linalg::dot(..) can work both with SGVectors as params and even Eigen3 vectors as params | 13:05 |
lambday | so in shogun we'll be all over just be using linalg::dot | 13:05 |
lambday | even with direct eigen3 vectors it would work | 13:06 |
lambday | and so with viennacl vectors | 13:06 |
lambday | so I don't need to know about how those backend dot calls look like - I'll just be using linalg::dot | 13:06 |
lambday | talked with lisitsyn on this yesterday for a while | 13:07 |
-!- soumyaC [uid15286@gateway/web/irccloud.com/x-hccjlqffpfaqjoji] has quit [Quit: Connection closed for inactivity] | 13:16 | |
@HeikoS | lambday: okay! | 13:18 |
@HeikoS | lambday: thats amazing in fact | 13:18 |
@HeikoS | very clean | 13:18 |
lambday | HeikoS: yeah - so basically we drop the template arg requirement while calling these methods | 13:18 |
@HeikoS | lambday: so given the discussions with the others, what about pushing this into Shogun now? :) | 13:18 |
lambday | yeah and super easy to use | 13:18 |
@HeikoS | lambday: does the compile time blow up this way? | 13:18 |
lambday | HeikoS: I think I can - although wiking didn't seem very convinced | 13:19 |
lambday | I personally find no issues with this - except a bit tricky code but super simple API | 13:19 |
lambday | HeikoS: it will - but not exponentially | 13:20 |
@HeikoS | lambday: well the tricky code is inside shogun | 13:20 |
lambday | yeah | 13:20 |
@HeikoS | lambday: ok | 13:20 |
lambday | so I'll start sending patches then? | 13:20 |
@HeikoS | lambday: with wiking, did you discuss with him? | 13:20 |
lambday | HeikoS: no I tagged him on a few posts but may be he's busy | 13:21 |
@HeikoS | lambday: we should totally listen to his concerns, but I am not completely sure currently what they are | 13:21 |
@HeikoS | lambday: did you talk about this? | 13:21 |
lambday | HeikoS: as far as I understood - he was worried about compiled versions of shogun - say shogun-linalg-eigen3, shogun-linalg-viennacl | 13:22 |
lambday | but we have that for eigen3 already | 13:22 |
lambday | and those who wants to play the code should run cmake on their own | 13:22 |
@HeikoS | lambday: ah yes | 13:22 |
lambday | not download from repo | 13:22 |
@HeikoS | lambday: so this is really an issue | 13:22 |
@HeikoS | shogun-binary | 13:22 |
lambday | debian/rhel repo I mean | 13:22 |
@HeikoS | which backend do we choose? | 13:22 |
lambday | so can't we just port eigen3 version for packaging like we do | 13:23 |
@HeikoS | lambday: yeah currently we also have that | 13:23 |
@HeikoS | lambday: so in fact if we just say global backend is eigen3, nothing changes | 13:23 |
lambday | yeah | 13:23 |
@HeikoS | lambday: though the combinations are quite a few | 13:23 |
lambday | HeikoS: with added flexibility - if you take the pain to build yourself :D | 13:23 |
@HeikoS | lambday: but we dont want to do that, have mybrid shogun binaries | 13:23 |
@HeikoS | lambday: what about builds? | 13:24 |
@HeikoS | lambday: we need to make sure that all work | 13:24 |
@HeikoS | lambday: so travis would go for shogun::eigen | 13:24 |
@HeikoS | and the buildbot could maybe do a GPU version | 13:24 |
@HeikoS | lambday: but the gpu stuff is not there yet | 13:24 |
lambday | yeah buildbot should check all | 13:24 |
@HeikoS | lambday: buildbot has no GPU ;) | 13:24 |
lambday | haha but opencl code works with cpu as well | 13:25 |
lambday | so it can check whether it builds right | 13:25 |
@HeikoS | lambday: so the way I see this is that we make eigen3 the default and that replaces all existing binaries | 13:25 |
@HeikoS | and then we can add one more if we have say vienna cl | 13:25 |
@HeikoS | lambday: ah I see | 13:25 |
@HeikoS | wiking: ^ | 13:25 |
lambday | HeikoS: yeah that sounds good | 13:25 |
@HeikoS | so I think it doesnt blow up things too much | 13:25 |
@HeikoS | lambday, wiking we have more possibilities, but these did not even exist yet, so no need to put all of them in binaries, | 13:25 |
@HeikoS | and the main use case is easy, maybe one more | 13:26 |
@HeikoS | lambday: so I would say, go for the patches - yorkerlin will be thankful too | 13:26 |
lambday | HeikoS: may be a feature branch | 13:26 |
lambday | or develop? | 13:27 |
@HeikoS | lambday: and feel free to open an issue on github where you ask people to replace c++-loop dot products (or even eigen ones) with the new calls (entrance task). and put a (growing) list of supported operations | 13:27 |
@HeikoS | lambday: feature branch | 13:27 |
@HeikoS | lambday: for now | 13:27 |
lambday | HeikoS: okay | 13:27 |
@HeikoS | lambday: then change a few things to use that ( I will help) | 13:27 |
lambday | HeikoS: alright :) | 13:27 |
@HeikoS | lambday: and once say dot, sum, cholesky, SVD, eig is in, we can merge it | 13:27 |
@HeikoS | (with one used example each, passing unit tests, etc) | 13:28 |
lambday | HeikoS: yeah that sounds better | 13:28 |
lambday | HeikoS: so I mean how to I send PRs to other branches in upstream? | 13:28 |
lambday | HeikoS: or I have to directly have to push to some upstream? | 13:29 |
lambday | git push upstream feature_linalg | 13:29 |
@HeikoS | lambday: ehm | 13:30 |
@HeikoS | lambday: I think you should just push to your fork | 13:30 |
@HeikoS | a new branch in your fork | 13:30 |
lambday | HeikoS: yeah alright | 13:31 |
lambday | HeikoS: actually that's better | 13:31 |
lambday | HeikoS: we can discuss there also | 13:31 |
@HeikoS | then you can send PRs against the same branch in upstream | 13:31 |
lambday | okay! | 13:31 |
lambday | alright | 13:31 |
@HeikoS | so same model, just that you dont touch/send PRs against develop but say linalg | 13:31 |
lambday | alright | 13:31 |
@HeikoS | lambday: cool man! | 13:32 |
@HeikoS | lambday: just reading your type inference stuff | 13:32 |
lambday | HeikoS: had to make it this way for eigen3.. takes a hell lot of template args :D | 13:32 |
lambday | HeikoS: and viennacl also takes two | 13:33 |
lambday | I gotta adjust it a bit for viennacl | 13:33 |
lambday | brb with a cup of tea | 13:34 |
lambday | back | 13:37 |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 13:46 | |
-!- HeikoS [~heiko@0541877d.skybroadband.com] has quit [Ping timeout: 240 seconds] | 13:56 | |
shogun-buildbot | build #117 of osx2 - python is complete: Failure [failed examples and unit tests] Build details are at http://buildbot.shogun-toolbox.org/builders/osx2%20-%20python/builds/117 blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Wu Lin <yorker.lin@gmail.com>, khalednasr <k.nasr92@gmail.com> | 15:32 |
-!- sonne|osx [~sonne@89.204.139.51] has joined #shogun | 15:33 | |
-!- sonne|osx [~sonne@89.204.139.51] has quit [Quit: sonne|osx] | 15:41 | |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 16:06 | |
-!- HeikoS [~heiko@pat-191-250.internal.eduroam.ucl.ac.uk] has joined #shogun | 17:09 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:09 | |
-!- HeikoS [~heiko@pat-191-250.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 17:16 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has joined #shogun | 17:21 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:21 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 17:26 | |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 17:27 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has joined #shogun | 17:27 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:27 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 17:33 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has joined #shogun | 17:41 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:41 | |
-!- yorkerlin [c0008056@gateway/web/freenode/ip.192.0.128.86] has joined #shogun | 17:44 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 17:51 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 18:11 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has joined #shogun | 18:20 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:20 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has quit [Client Quit] | 18:21 | |
@wiking | thoralf: ping | 18:26 |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has joined #shogun | 18:31 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:31 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has quit [Client Quit] | 18:33 | |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has joined #shogun | 18:42 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:42 | |
-!- Steve___ [32cbf032@gateway/web/freenode/ip.50.203.240.50] has joined #shogun | 18:49 | |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 18:49 | |
Steve___ | Can anyone help with an issue I'm having in Cygwin with shogun cmake? | 18:50 |
-!- HeikoS [~heiko@nat-8-102.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.] | 18:52 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 18:53 | |
-!- Steve___ [32cbf032@gateway/web/freenode/ip.50.203.240.50] has quit [Quit: Page closed] | 18:56 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has joined #shogun | 18:58 | |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 19:01 | |
-!- yorkerlin [c0008056@gateway/web/freenode/ip.192.0.128.86] has quit [Quit: Page closed] | 19:12 | |
-!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has joined #shogun | 19:24 | |
-!- lisitsyn [~qdrgsm@188-122-242-81.clients.tlt.100megabit.ru] has joined #shogun | 19:24 | |
lisitsyn | lambday: hey | 19:25 |
lisitsyn | I have seen this crazy thing :) | 19:25 |
lambday | lisitsyn: hey! | 19:25 |
lambday | lisitsyn: I was wishing that you would | 19:25 |
lambday | lisitsyn: please check the 2nd one | 19:26 |
lisitsyn | this is going complicated but it works and we are cool then | 19:26 |
lisitsyn | let me check again | 19:26 |
lambday | lisitsyn: please check the simplified one | 19:26 |
lambday | lisitsyn: which just assumes that the first template arg is actually the scalar type | 19:26 |
lambday | lisitsyn: currently I pushed this simplified one to my shogun-linalg repo and it works fine | 19:28 |
lisitsyn | lambday: why int...? | 19:29 |
lambday | lisitsyn: well I changed it later... for Eigen3 its int.. for ViennaCL its unsigned int... | 19:29 |
-!- thoralf [~thoralf@91-66-177-150-dynip.superkabel.de] has quit [Quit: Konversation terminated!] | 19:29 | |
lisitsyn | hmm can we forget about these variadic useless-for-us-things? | 19:29 |
lisitsyn | I mean can we avoid declaring it int | 19:30 |
lambday | so please check this https://github.com/lambday/shogun-linalg/blob/master/src/linalg/modules/redux.h | 19:30 |
lisitsyn | ahh | 19:30 |
lambday | lisitsyn: oh that too did | 19:30 |
lambday | wait | 19:30 |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 19:30 | |
lambday | lisitsyn: https://github.com/lambday/shogun-linalg/blob/master/src/linalg/impl/redux.h#L31 | 19:30 |
lambday | but specialization has to be done | 19:31 |
lisitsyn | hmm | 19:31 |
lambday | (don't mind the `sum` method - I have updated only the dot | 19:31 |
lisitsyn | okay let me think what can be improved | 19:32 |
lambday | lisitsyn: yes please | 19:32 |
lambday | the outcome is already sexy as fuck!! https://gist.github.com/lambday/5ef302d76b334517647e#file-test_vector2-cpp-L53 :D | 19:32 |
lisitsyn | lambday: the thing is currently we'd have to put a shitload of code to do some say 'norm' operation | 19:32 |
lisitsyn | yeah this is much better indeed | 19:33 |
lambday | works seamlessly with eigen3 vectors as well | 19:33 |
lambday | lisitsyn: well, just a bit copy paste | 19:33 |
lambday | in impl we're going to add backend specific stuffs | 19:33 |
lambday | and in module we're adding these wrappers | 19:34 |
lisitsyn | lambday: Info thing is most confusing for me | 19:35 |
lisitsyn | wish it was hidden somehow | 19:35 |
lambday | lisitsyn: is there any way? | 19:35 |
lisitsyn | lambday: I don't know yet | 19:36 |
lambday | ummm | 19:36 |
lambday | lisitsyn: you mean you wanna get rid of this totally - some soln which works for whichever extra info the backend vector class have? | 19:37 |
lisitsyn | yeah | 19:37 |
lisitsyn | just forget about all the 2nd and 3rd and whatever parameters | 19:37 |
lisitsyn | can we do that? | 19:37 |
lambday | lisitsyn: you can - you're the magician :D | 19:38 |
lambday | but seriously I don't know how! | 19:38 |
lambday | typedefs? | 19:38 |
lisitsyn | lambday: no idea yet :) let me clone and play with your thing | 19:40 |
lambday | lisitsyn: yes | 19:40 |
lisitsyn | lambday: write makefiles ;) | 19:41 |
lambday | lisitsyn: hah yeah :D | 19:41 |
lisitsyn | default: | 19:42 |
lisitsyn | g++ -O3 -std=c++0x -I./src/ -I/usr/include/eigen3 -D<OPTIONS> -o test src/test.cpp -lshogun | 19:42 |
lisitsyn | lambday: use this ;) | 19:42 |
lambday | :D | 19:42 |
lambday | OPTION should be changed | 19:42 |
lambday | I was thinking of writing a cmakefile.txt but then thought its just a prototype :D | 19:43 |
lisitsyn | haha | 19:44 |
lisitsyn | lambday: did you know | 19:44 |
lisitsyn | sometimes you can use | 19:44 |
lisitsyn | T....... | 19:44 |
lisitsyn | :D | 19:44 |
lisitsyn | I didn't know about that | 19:44 |
lambday | what the | 19:44 |
lambday | what does it even mean? | 19:44 |
lisitsyn | this is VERY variadic | 19:44 |
lisitsyn | :D | 19:44 |
lambday | man! | 19:45 |
lambday | c++ is going crazy! | 19:45 |
lisitsyn | lambday: I guess this is like variadic function arguments with variadic template parameters | 19:45 |
lisitsyn | but it's gonna be quite advanced stuff | 19:45 |
lambday | ah | 19:45 |
lambday | phew! | 19:45 |
lisitsyn | lambday: okay so I get the problem | 19:50 |
lambday | lisitsyn: what is it | 19:50 |
lisitsyn | tricky thing | 19:50 |
lisitsyn | I mean int vs typename | 19:50 |
lambday | lisitsyn: how to resolve this? | 19:51 |
lisitsyn | lambday: never had this so don't know | 19:51 |
lambday | lisitsyn: I tried for a few hours then gave up | 19:51 |
lisitsyn | lambday: damn this is another edge where different semantics meet | 19:53 |
lisitsyn | like template value parameter | 19:53 |
lisitsyn | and template type parameter | 19:53 |
lisitsyn | :D | 19:53 |
lambday | yep! | 19:53 |
lambday | I found no better soln than template <class Info,template <class,Info...> class Vector,class T,enum Backend,Info... I> | 19:54 |
lambday | then specialize | 19:54 |
lisitsyn | lambday: what about thing that obtains scalar from SGVector/Vector? | 19:54 |
lambday | lisitsyn: that can always be done | 19:55 |
lambday | lisitsyn: I did that | 19:55 |
lisitsyn | won't it simplify things? | 19:55 |
lambday | lisitsyn: but looked scary | 19:55 |
lisitsyn | hmm do you have some gist of that? | 19:55 |
lambday | oh no that too I have int... | 19:55 |
lambday | lisitsyn: https://gist.github.com/lambday/9dbda55fa7af5d1a34cf | 19:55 |
lisitsyn | lambday: I don't remember how C++ acts if you pass a templated type to non-templated typename | 19:56 |
lisitsyn | is this a problem? | 19:56 |
lambday | lisitsyn: as in passing SGVector<T> as some class Vector | 19:57 |
lisitsyn | template <typename T> .. | 19:57 |
lambday | lisitsyn: can be done | 19:57 |
lisitsyn | but you call it with | 19:57 |
lisitsyn | <SGVector<T>> | 19:57 |
lisitsyn | does it work? | 19:57 |
lambday | yep it does | 19:57 |
lambday | let me check | 19:57 |
lisitsyn | then we won't have these ints? | 19:57 |
lambday | lisitsyn: yeah here https://github.com/lambday/shogun-linalg/blob/master/src/linalg/impl/redux.h#L37 | 19:58 |
lambday | umm | 19:58 |
lisitsyn | lambday: I can't compile this last gist | 19:59 |
lisitsyn | can you? | 19:59 |
lambday | lisitsyn: yeah because I compiled it with changed SGVector :P | 19:59 |
lambday | with the value_type in there | 19:59 |
lisitsyn | ahh | 19:59 |
lisitsyn | got it | 19:59 |
lisitsyn | okay let me try to simplify that | 20:02 |
lisitsyn | ohhhh | 20:04 |
lisitsyn | ohhh | 20:04 |
lisitsyn | now I see | 20:04 |
lisitsyn | :D | 20:04 |
lisitsyn | lambday: I stopped at specializing | 20:04 |
lisitsyn | how to specialize without T :D | 20:04 |
lambday | lisitsyn: trying locally too :D | 20:04 |
lambday | lisitsyn: I don't think we can :D | 20:05 |
lambday | nah man! | 20:06 |
lambday | no hope! | 20:06 |
lisitsyn | lambday: yeah I can't see any way | 20:06 |
lambday | phew! | 20:06 |
lambday | I could totally use a full bottle of rum right now | 20:06 |
lisitsyn | lambday: once we need to put SGVector here | 20:07 |
lisitsyn | we need its type again | 20:07 |
lambday | lisitsyn: yeah! | 20:07 |
lambday | was just going to change that then realized | 20:07 |
lisitsyn | however | 20:07 |
lisitsyn | ok let me try | 20:07 |
lisitsyn | last chance | 20:07 |
-!- pickle27f [~pickle27@216.191.231.218] has joined #shogun | 20:08 | |
lambday | go for it! | 20:09 |
lisitsyn | lambday: we are deffs walking on the edge of C++ :D | 20:09 |
lambday | lisitsyn: :D | 20:09 |
lisitsyn | last time I was on it I had a lot of compiler internal errors | 20:09 |
lisitsyn | :D | 20:09 |
lambday | lisitsyn: tell me about it - took hours to get this one compiling! | 20:10 |
lisitsyn | lambday: I think I have an idea | 20:10 |
lambday | tell me | 20:11 |
lambday | !! | 20:11 |
lisitsyn | lambday: but we need something else not type_traits | 20:11 |
lambday | lisitsyn: what? | 20:11 |
lisitsyn | lambday: something that can choose anything-of-X-or-Y | 20:11 |
lisitsyn | like T::X or T::Y | 20:12 |
lisitsyn | either defined of them | 20:12 |
lisitsyn | see what I mean? | 20:12 |
lambday | not exactly | 20:12 |
lisitsyn | in eigen3 we have scalar | 20:12 |
lisitsyn | and here we have value_type | 20:12 |
lisitsyn | so we need a thing | 20:12 |
lisitsyn | that can get either T::Scalar | 20:12 |
lisitsyn | or T::value_type | 20:12 |
lambday | if it was just two the IF<..> thing would have worked | 20:12 |
lisitsyn | well maybe there is a way | 20:13 |
lambday | lisitsyn: but even with that IF thing, how do you specialize? | 20:15 |
lambday | recursive IF ... | 20:16 |
lisitsyn | lambday: not clear for me yet | 20:16 |
lisitsyn | lambday: I have 3 errors :D | 20:16 |
lisitsyn | type/value mismatch | 20:16 |
lambday | what did you change? | 20:17 |
lisitsyn | a bunch of things | 20:17 |
lambday | ah is there any online codepad sort of thing where we can share live code like google doc? | 20:17 |
lisitsyn | basically I am trying to postpone real reference to SGVector<T> to the very last moment | 20:17 |
lisitsyn | hmm yeah there is a bunch of them | 20:17 |
lisitsyn | let me try some thing and we will see | 20:18 |
lisitsyn | lambday: I give up :D | 20:27 |
* lambday cries | 20:27 | |
lisitsyn | lambday: it took me some variadic templates again | 20:28 |
lisitsyn | no simplification | 20:28 |
lambday | but if we can minimize the number of places its going to be used | 20:28 |
lambday | lisitsyn: then that's better | 20:28 |
lambday | lisitsyn: could you please show me your current code? | 20:29 |
lisitsyn | lambday: it doesn't work still but yeah sure | 20:29 |
lisitsyn | https://gist.github.com/lisitsyn/7ad1882f6be8e0ff4108 | 20:30 |
lisitsyn | the idea was to postpone declaration of Vector as template | 20:30 |
lisitsyn | but not sure it works | 20:30 |
lisitsyn | it seems it doesn't | 20:31 |
lisitsyn | due to these additional template parameters | 20:31 |
-!- khalednasr [~k.nasr92@41.69.144.155] has joined #shogun | 20:34 | |
lambday | lisitsyn: yeah! impossible to specialize the type_traits now | 20:34 |
lisitsyn | lambday: ok our last resort to simplify it is macro | 20:37 |
lambday | aw, man! | 20:37 |
lisitsyn | lambday: otherwise if someone put int instead of unsigned int | 20:38 |
lisitsyn | or something like that by mistake | 20:38 |
-!- lisitsyn [~qdrgsm@188-122-242-81.clients.tlt.100megabit.ru] has quit [Ping timeout: 276 seconds] | 20:43 | |
-!- parijat [671b082a@gateway/web/freenode/ip.103.27.8.42] has quit [Ping timeout: 240 seconds] | 20:48 | |
-!- lisitsyn [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has joined #shogun | 20:55 | |
lambday | lisitsyn: I give up! | 20:58 |
lambday | lisitsyn: can't be done! | 20:58 |
lisitsyn | lambday: yeah same thing here | 20:58 |
lambday | lisitsyn: ah | 20:59 |
lambday | lisitsyn: so what about this macro thing? | 20:59 |
lisitsyn | lambday: well you could try to reduce the verbosity of these arguments of death | 20:59 |
lisitsyn | < ... > int whatever | 20:59 |
lisitsyn | :D | 21:00 |
lambday | that's tough too :D | 21:01 |
lambday | one macro per method? | 21:01 |
lambday | nooooo | 21:01 |
lambday | lisitsyn: http://games.usvsth3m.com/2048/boobs-edition-21/ :P | 21:05 |
lisitsyn | lambday: hah | 21:05 |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 240 seconds] | 21:09 | |
-!- abinash_panda [012616d8@gateway/web/freenode/ip.1.38.22.216] has joined #shogun | 21:18 | |
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun | 21:19 | |
-!- thoralf [~thoralf@91-65-137-23-dynip.superkabel.de] has joined #shogun | 21:40 | |
abinash_panda | thoralf: Hi ! | 21:40 |
thoralf | Hey! ;) | 21:40 |
thoralf | I'm just writing a reply. | 21:40 |
thoralf | abinash_panda: Is it possible that the document you sent me is empty? | 21:41 |
abinash_panda | thoralf: Ok | 21:41 |
abinash_panda | thoralf: Yeah. I would be completing the document now. Just writing the document. | 21:41 |
thoralf | abinash_panda: What's your local time right now? | 21:50 |
abinash_panda | thoralf: Its 1:20 AM | 21:50 |
thoralf | And what are your working hours? | 21:50 |
thoralf | i.e. the hours you're planning to be awake and working on shogun ;) | 21:51 |
abinash_panda | thoralf: I am fine with working from anytime between 6 AM upto 11 PM. | 21:51 |
thoralf | 6am - 11pm is 2:30am - 7:30pm here. | 21:52 |
thoralf | My working hours are 10am-8pm; so it's 1:30pm-11:30pm your time. | 21:53 |
thoralf | You're having lunch when I wake up. ;) | 21:55 |
abinash_panda | thoralf: Yeah, I would be having a lunch when you wake up :) | 21:58 |
thoralf | https://www.wolframalpha.com/input/?i=berlin+varanasi | 21:58 |
thoralf | Bookmark it, so you know how late it's here. | 21:59 |
abinash_panda | thoralf: I have bookmarked it. | 21:59 |
abinash_panda | thoralf: You could see the temperature difference. Its really hot over here | 22:00 |
thoralf | lol | 22:01 |
thoralf | 32?, that's pretty much. | 22:01 |
abinash_panda | One of my friend did his summer internship at Berlin. He used to tell about the temperature over there. I envy you ;) | 22:03 |
-!- pickle27f [~pickle27@216.191.231.218] has quit [Ping timeout: 240 seconds] | 22:04 | |
-!- pickle27_ [~pickle27@216.191.231.218] has joined #shogun | 22:04 | |
thoralf | abinash_panda: I know it's already late, it's okay if you answer my mail tomorrow. | 22:15 |
thoralf | abinash_panda: Tomorrow we should talk about how we proceed, okay? | 22:15 |
abinash_panda | thoralf: Yeah. Fine :) | 22:16 |
abinash_panda | thoralf: I would try my best to be available during night :). I would be completing the schedule early in the morning. | 22:16 |
thoralf | abinash_panda: I joining between 10am and 1pm. | 22:17 |
abinash_panda | thoralf: Ok :) | 22:18 |
thoralf | Good night! | 22:18 |
abinash_panda | Good night | 22:18 |
-!- abinash_panda [012616d8@gateway/web/freenode/ip.1.38.22.216] has quit [] | 22:19 | |
-!- thoralf [~thoralf@91-65-137-23-dynip.superkabel.de] has quit [Quit: Konversation terminated!] | 22:19 | |
-!- pickle27_ [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 22:36 | |
-!- pickle27_ [~pickle27@216.191.231.218] has joined #shogun | 22:38 | |
-!- pickle27_ [~pickle27@216.191.231.218] has quit [Quit: This computer has gone to sleep] | 22:54 | |
-!- PirosB3 [~pirosb3@cpc4-newt31-2-0-cust631.newt.cable.virginm.net] has quit [Quit: PirosB3] | 23:05 | |
lisitsyn | khalednasr: hey | 23:09 |
khalednasr | lisitsyn, hey | 23:09 |
lisitsyn | khalednasr: good you asked :) | 23:09 |
lisitsyn | I think Theo seems to be busy | 23:09 |
khalednasr | yeah | 23:09 |
lisitsyn | khalednasr: ok maybe we should just wait a bit | 23:11 |
lisitsyn | khalednasr: if it is not critical we could postpone until he gets time | 23:12 |
khalednasr | lisitsyn, yeah sure | 23:12 |
lisitsyn | this is important as he is the domain expert here | 23:12 |
lisitsyn | I can only say things about engineering :D | 23:12 |
khalednasr | I'll start working on the class diagram meanwhile | 23:13 |
-!- lisitsyn1 [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has joined #shogun | 23:15 | |
lisitsyn1 | khalednasr: back :D | 23:16 |
lisitsyn1 | khalednasr: ok what about monday as theo said? | 23:16 |
khalednasr | lisitsyn1, I'm free Monday night | 23:16 |
lisitsyn1 | khalednasr: yeah works-for-me as well | 23:16 |
-!- lisitsyn [~qdrgsm@5-28-31-38.clients.tlt.100megabit.ru] has quit [Ping timeout: 276 seconds] | 23:17 | |
-!- besser82 [quassel@fedora/besser82] has quit [Read error: Connection reset by peer] | 23:27 | |
-!- chakri [srichakrad@gateway/shell/bnc4free/x-jsuuiymjsakguetl] has quit [Remote host closed the connection] | 23:27 | |
-!- besser82 [quassel@fedora/besser82] has joined #shogun | 23:51 | |
-!- mode/#shogun [+o besser82] by ChanServ | 23:51 | |
-!- khalednasr [~k.nasr92@41.69.144.155] has quit [Quit: Leaving] | 23:59 | |
--- Log closed Sat May 10 00:00:42 2014 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!