--- Log opened Fri Jun 15 00:00:50 2018 | ||
-!- shogun-buildbot [~shogun-bu@7nn.de] has quit [Ping timeout: 265 seconds] | 03:07 | |
-!- shogun-buildbot [~shogun-bu@7nn.de] has joined #shogun | 03:12 | |
-shogun-buildbot:#shogun- Build nightly stretch deb #130 is complete: Success [build successful] - http://buildbot.shogun-toolbox.org:8080/#builders/38/builds/130 | 05:03 | |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4294 synchronized by FaroukY | 09:34 |
---|---|---|
-!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has joined #shogun | 10:02 | |
Farouk | wiking: hi | 10:52 |
@wiking | Farouk, helo | 11:12 |
Farouk | wiking hey | 11:16 |
Farouk | is upstream/develop currently stable? | 11:16 |
@wiking | mmm lemme check | 11:16 |
@wiking | should be | 11:16 |
@wiking | but you can check it here | 11:16 |
@wiking | http://buildbot.shogun-toolbox.org:8080 | 11:16 |
Farouk | Hmm, maybe I did sth wrong in the rebase, nevermind then, Thanks! | 11:18 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: ZNC 1.7.0 - https://znc.in] | 11:20 | |
-!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has quit [Ping timeout: 260 seconds] | 11:34 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 11:37 | |
-!- mode/#shogun [+o wiking] by ChanServ | 11:37 | |
-!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has joined #shogun | 11:46 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:46 | |
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 12:53 | |
Farouk | wiking: are we having a call now? | 13:00 |
@wiking | Farouk, should | 13:03 |
@wiking | but i didn't realise that it's overlapping | 13:03 |
@wiking | how's your +1 hour from now on | 13:03 |
@wiking | i. mean i can chat/type but not really in person yet | 13:03 |
Farouk | Hmm, Egypt plays in 1 hour for the worldcup so I was going out to see that :) | 13:04 |
Farouk | we can chat if you'd like | 13:04 |
@wiking | ahhaha | 13:04 |
@wiking | ok | 13:04 |
@wiking | how about after the match? | 13:04 |
Farouk | Yea sure that works for me :)) | 13:05 |
@wiking | cool | 13:05 |
@wiking | lets talk then | 13:05 |
@wiking | and sorry | 13:05 |
Farouk | alright, will ping u in irc | 13:05 |
Farouk | no worries | 13:05 |
@wiking | kk | 13:05 |
@wiking | yallah :) | 13:05 |
Farouk | Hahahaha just saw this, yallah :)) | 13:09 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4335 synchronized by shubham808 | 14:27 |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4335 synchronized by shubham808 | 15:53 |
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 16:35 | |
-!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has quit [Read error: No route to host] | 18:17 | |
-!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has joined #shogun | 18:17 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:18 | |
-!- HeikoS [~heiko@host81-157-196-115.range81-157.btcentralplus.com] has quit [Quit: Leaving.] | 18:34 | |
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 19:09 | |
Farouk | wiking: hi | 19:09 |
@wiking | Farouk, helo | 19:30 |
@wiking | whatsup | 19:30 |
Farouk | wiking: hey, I'm back, up for a quick chat? | 19:30 |
@wiking | i'm just checking now the new commits | 19:30 |
Farouk | wiking: alright then, let me know once you're done, we can discuss on GHangout | 19:32 |
-!- Farouk_ [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 19:36 | |
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 19:38 | |
Farouk_ | wiking: now | 19:43 |
Farouk_ | ? | 19:43 |
@wiking | ok | 19:48 |
@wiking | so | 19:48 |
@wiking | i'm jsut wondering about these updates | 19:48 |
@wiking | one is | 19:48 |
@wiking | as fernando says' there's a problem with having references as member vars | 19:49 |
@wiking | but then again | 19:49 |
@wiking | idk atm | 19:49 |
@wiking | whether this whole cost function story should be exposed to swig i.e. python | 19:49 |
@wiking | but i guess yes | 19:49 |
Farouk_ | Well I read that using reference members can act as aggregation instead of composition | 19:49 |
Farouk_ | cause I feel the lifetime of the parameters don't depend on the lifetime of the cost function | 19:50 |
@wiking | yep | 19:50 |
@wiking | that's for sure | 19:50 |
@wiking | ok | 19:50 |
@wiking | so about the unit test | 19:50 |
@wiking | i guess now that works nicely? | 19:51 |
@wiking | you had the question of linalg::scale gpu | 19:51 |
@wiking | the thing is that if you wanna do gpu | 19:51 |
@wiking | that means you cannot use Stan :) | 19:51 |
Farouk_ | yes and also wanna discuss the thread safe thingie | 19:51 |
@wiking | because stan doesn't work with gpu | 19:51 |
@wiking | http://discourse.mc-stan.org/t/stan-on-the-gpu/326 | 19:52 |
@wiking | https://github.com/stan-dev/math/pull/655 | 19:52 |
@wiking | :) | 19:52 |
Farouk_ | but average_gradients is SGVector<float64_t> | 19:52 |
Farouk_ | so it should support linalg no? | 19:52 |
Farouk_ | its not stan | 19:52 |
@wiking | yeah i men | 19:53 |
@wiking | if you wanna do that | 19:53 |
@wiking | that means | 19:53 |
@wiking | that you need to first trigger of moving the SGVector to gpu | 19:53 |
@wiking | to_gpu | 19:53 |
@wiking | of linalg | 19:53 |
@wiking | and then if you call linalg::scale | 19:53 |
@wiking | it'll automatically do the right thing | 19:54 |
@wiking | but to be able to test it | 19:54 |
@wiking | make sure that a) you have a gpu b) that you have viennacl :) | 19:54 |
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has joined #shogun | 19:56 | |
Farouk | wiking: Sorry got disconnected | 19:56 |
@wiking | no worries | 19:56 |
@wiking | have you seen the messages? | 19:56 |
@wiking | or should i copy-paste? | 19:56 |
Farouk | copy paste | 19:56 |
@wiking | <Farouk_> so it should support linalg no? | 19:57 |
@wiking | [19:52] <Farouk_> its not stan | 19:57 |
@wiking | [19:52] <wiking> yeah i men | 19:57 |
@wiking | [19:52] <wiking> if you wanna do that | 19:57 |
@wiking | [19:52] <wiking> that means | 19:57 |
@wiking | [19:52] <wiking> that you need to first trigger of moving the SGVector to gpu | 19:57 |
@wiking | [19:53] <wiking> to_gpu | 19:57 |
@wiking | [19:53] <wiking> of linalg | 19:57 |
@wiking | [19:53] <wiking> and then if you call linalg::scale | 19:57 |
@wiking | [19:53] <wiking> it'll automatically do the right thing | 19:57 |
@wiking | [19:53] <wiking> but to be able to test it | 19:57 |
@wiking | [19:54] <wiking> make sure that a) you have a gpu b) that you have viennacl :) | 19:57 |
-!- Farouk_ [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 19:57 | |
Farouk | Hmmm | 19:57 |
@wiking | you can check | 19:57 |
@wiking | tests/unit/mathematics/linalg/operations/Viennacl_operations_unittest.cc | 19:57 |
@wiking | that has a lot of tests | 19:58 |
Farouk | do you think there is overhead? Like just moving the parameters on gpu to scale? | 19:58 |
Farouk | or its worth it? | 19:58 |
@wiking | mmmm | 19:58 |
@wiking | it's quite a lot of overhead | 19:58 |
@wiking | to copy back and forth | 19:58 |
@wiking | memory | 19:58 |
@wiking | but i mean you can test it | 19:58 |
@wiking | and see how it works | 19:58 |
Farouk | Alright then | 19:59 |
@wiking | you can even use this https://github.com/shogun-toolbox/shogun/blob/develop/doc/readme/DEVELOPING.md#benchmark | 19:59 |
@wiking | there's couple of examples how to do this | 19:59 |
@wiking | (benchmarking) | 19:59 |
@wiking | that way you can have a correct understanding | 19:59 |
@wiking | when it 'starts' to be worth to move things to gpu | 19:59 |
@wiking | basically the thing is that depending on the size of the data | 19:59 |
@wiking | it's worth or not to move things to gpu | 20:00 |
Farouk | Yep, alright I'll give benchmarking a try | 20:00 |
@wiking | after a certain threshold if your data is that big | 20:00 |
@wiking | the copying will be insignificant | 20:00 |
@wiking | compared to scaling | 20:00 |
Farouk | alright (y), is there a linalg operation for adding too? | 20:01 |
Farouk | two SGVectors | 20:01 |
Farouk | if so I can replace the += in the loop with that operation | 20:01 |
@wiking | yes | 20:02 |
@wiking | linalg::add | 20:02 |
@wiking | chec | 20:02 |
@wiking | k | 20:02 |
@wiking | LinalgNamespace.h | 20:02 |
@wiking | it has a nice doxygen doc for each operation | 20:02 |
@wiking | add(const SGVector<T>& a, const SGVector<T>& b, SGVector<T>& result, | 20:03 |
@wiking | T alpha = 1, T beta = 1) | 20:03 |
@wiking | what it does is | 20:03 |
@wiking | * Performs the operation result = alpha * a + beta * b on vectors. | 20:03 |
Farouk | Alright, I'll give linalg a try tomorrow. | 20:03 |
Farouk | try to replace as many operations as possible with it and compare it | 20:04 |
Farouk | Also, I wanna talk about the thread safe thingie. | 20:04 |
@wiking | yeah it's best to use benchmark | 20:04 |
@wiking | framework to do that | 20:04 |
@wiking | note that basically whatever you do in the unit test | 20:04 |
@wiking | that should be sufficient to benchmark things | 20:04 |
@wiking | :) | 20:04 |
@wiking | ok so what about threadsafety | 20:04 |
Farouk | Alright :) | 20:04 |
@wiking | and where exactly/? | 20:04 |
Farouk | safe pr line 101 | 20:05 |
Farouk | same* | 20:05 |
@wiking | leme check | 20:05 |
@wiking | ah | 20:06 |
@wiking | yeah you mean the story of updating a param | 20:06 |
@wiking | and then calling get_gradient | 20:06 |
@wiking | p | 20:07 |
@wiking | ok | 20:07 |
@wiking | so i wondering | 20:07 |
Farouk | yea | 20:07 |
@wiking | *wonder | 20:07 |
@wiking | why it isn't a function param | 20:07 |
@wiking | of get_gradient(index) | 20:07 |
Farouk | Because there were other classes that expected the interface to be get_gradient() with no args, I thought about overriding but not sure if that's the way to go | 20:08 |
Farouk | or putting like a default argument as index=-1 | 20:08 |
Farouk | and use m_index_of_sample if its -1, or index if it is given | 20:08 |
Farouk | but felt its not very clean | 20:08 |
@wiking | mmm | 20:08 |
@wiking | is get_average_gradient | 20:09 |
@wiking | a virtual method? | 20:09 |
Farouk | yea | 20:09 |
@wiking | mmmm | 20:09 |
@wiking | i mean | 20:09 |
@wiking | here in | 20:09 |
@wiking | StanFirstOrderSAGCostFunction::get_average_gradient | 20:10 |
@wiking | you call get_gradient() on yourself? | 20:10 |
@wiking | right? | 20:10 |
@wiking | what you could do is that you simply add a method | 20:10 |
@wiking | that is get_gradient(index) | 20:10 |
@wiking | which is a private fucntion | 20:10 |
@wiking | so that's only accessible from within StanFirstOrderSAGCostFunction | 20:10 |
@wiking | and then you dont need to do the trick of | 20:11 |
Farouk | I see, and route get_gradient() to get_gradient(m_index_of_sample) | 20:11 |
@wiking | auto old_index_sample = m_index_of_sample; | 20:11 |
@wiking | i though rather | 20:11 |
@wiking | that you dont use m_index_of_sample | 20:11 |
@wiking | to iterate thorugh the samples | 20:11 |
@wiking | but rather just do a for(i...) | 20:12 |
@wiking | and then call get_gradient() | 20:12 |
@wiking | get_gradient(i) | 20:12 |
@wiking | and then you dont touch at all m_index_of_sample | 20:12 |
Farouk | I see, yea that makes sense | 20:12 |
@wiking | as that one you anyways just stash | 20:12 |
@wiking | and then restore once you computed the avg gradient | 20:12 |
@wiking | and basically the get_gradient() virtual method | 20:12 |
@wiking | is actually as you said nothing else | 20:13 |
@wiking | but just a call get_gradient(m_index_of_sample) | 20:13 |
Farouk | yea that makes more sense now | 20:13 |
@wiking | cool | 20:13 |
@wiking | Farouk, how's the blog post going? | 20:13 |
@wiking | do you need me to review it | 20:13 |
@wiking | plz send me a version asap | 20:13 |
Farouk | Well it's public now but I still want to add more "explanations to it" as I jumped lots of things | 20:14 |
Farouk | the second blog post that is | 20:14 |
@wiking | cool | 20:14 |
@wiking | cna you give me alink plz | 20:14 |
Farouk | also I wrote a new example and cookbook for a meta example: LeastSquareRegression | 20:14 |
@wiking | greaat have u pushed the pr? | 20:15 |
Farouk | but I haven't sent a pr because I tried rebasing with upstream/develop and its failing the make | 20:15 |
@wiking | mmmm | 20:15 |
Farouk | that's why I asked u today wheather upstream/dev was stable | 20:15 |
@wiking | mmm | 20:15 |
@wiking | it shoudl be | 20:15 |
@wiking | but paste your error | 20:15 |
@wiking | in pastebin | 20:15 |
Farouk | I reset hard to upstream/develop | 20:15 |
@wiking | maybe i can help | 20:15 |
Farouk | Yea sure, but I am on windows now, once I login to the Ubuntu I'll paste it | 20:16 |
@wiking | kk | 20:17 |
Farouk | link is here for blog post, I also updated it in the NumFocus spread sheet: | 20:17 |
Farouk | https://medium.com/@eyfmharb/how-to-build-a-neural-network-framework-like-tensorflow-in-c-part-1-56f54c672852 | 20:17 |
@wiking | perfect | 20:18 |
@wiking | i'll go through it | 20:18 |
@wiking | lemme know about your error | 20:18 |
@wiking | i'll be here for a while | 20:18 |
Farouk | yea will do | 20:18 |
Farouk | wiking: Do you have any comments on my pace for the last two days? | 20:25 |
@wiking | yeah regarding the cookbook | 20:25 |
@wiking | it's fine to send it in | 20:26 |
@wiking | even if it fails :) | 20:26 |
Farouk | Alright, I'll push it now with ci skip, is that okay? | 20:26 |
@wiking | we'll go though it and help and Heiko will have the time to look at it as well | 20:26 |
@wiking | yep | 20:26 |
@wiking | that's perfect | 20:26 |
@wiking | :) | 20:26 |
Farouk | Alright I'll turn on ubuntu and push it now | 20:26 |
@wiking | Farouk, other than that just keep up the pace | 20:26 |
Farouk | Alright thanks | 20:27 |
@wiking | nw | 20:27 |
@wiking | sorry about the 1pm meeting | 20:27 |
@wiking | and about the match :( | 20:27 |
Farouk | Yess :( 1 goal in the 89th minute | 20:27 |
Farouk | a slap to the face :3 | 20:27 |
@wiking | yeah | 20:27 |
@wiking | who's next ? | 20:28 |
Farouk | Next is SaudiArabia I think | 20:28 |
Farouk | should be okay ;) | 20:28 |
@wiking | ah there's hope then :))0 | 20:28 |
@wiking | :> | 20:28 |
Farouk | :)) | 20:28 |
Farouk | Alright, I'll close now cause I'll restart to Ubuntu | 20:28 |
@wiking | kk | 20:29 |
@wiking | ttyl | 20:29 |
-!- Farouk [33267174@gateway/web/freenode/ip.51.38.113.116] has quit [Ping timeout: 260 seconds] | 20:33 | |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4337 opened by FaroukY | 20:41 |
-!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has joined #shogun | 20:41 | |
@sukey | [https://github.com/shogun-toolbox/shogun] Pull Request https://github.com/shogun-toolbox/shogun/pull/4337 synchronized by FaroukY | 20:43 |
-!- Farouk [9cc42279@gateway/web/freenode/ip.156.196.34.121] has quit [Ping timeout: 260 seconds] | 20:50 | |
-!- witness_ [uid10044@gateway/web/irccloud.com/x-xnffkzlqadgordek] has joined #shogun | 21:59 | |
--- Log closed Sat Jun 16 00:00:52 2018 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!