hughperkins / DeepCL

OpenCL library to train deep convolutional neural networks
Mozilla Public License 2.0
865 stars 199 forks source link

An attempt to fix the error with reading the input from binary stream #86

Closed merceyz closed 7 years ago

merceyz commented 7 years ago

An attempt to fix the error with reading the input from binary stream

hughperkins commented 7 years ago

Can you outline your concept of why you feel this is different/better than the original version? I cant quite see how the change might fix the issue? Also, I think I'd like to see an explanation of what you feel the issue is.

merceyz commented 7 years ago

As i said in the description it was an "attempt". It's not much different but i was hoping it could do the trick as when we filtered out X bytes to make it work i thought something might be wrong in the reading of the input or converting from the bytes to the float. If not i'm sorry for wasting your time with this

However unable to compile (even though i followed your instructions) i had no way of testing my theory.

Both of them (my code and yours) return the same results in my tests however i did not benchmark your code. The for loop is extremely slow at 69093ms when ran 1 million times. Replacing it with memcpy results in a execution time of 1047ms.

This pull request was an attempt at fixing a problem that i do not know where is nor how to do as i don't know c++.

hughperkins commented 7 years ago

Well, thank you for converting my one line of code that runs in ~1second into 10 lines that run in 70 seconds :-P

I think let's continue with diagnosis. However, I will go from my end. I will try sending byte values 10, 12, and 13 into deepcl, and see what happens. If this crashes deepcl, I will fix this. If deepcl handles them ok, I shall leave you to look into how to send these characters to stdout in c# without causing something strange to happen to them en-route :-)

merceyz commented 7 years ago

Well, thank you for converting my one line of code that runs in ~1second into 10 lines that run in 70 seconds :-P

You're most welcome :laughing:, optimized it also used ~1 second ^^

I will try sending byte values 10, 12, and 13

If you look at my comment on the issue you see i said it also crashed when filtering out those