|
|
Message-ID: <CAAepdCbnWanK_u7LbiPcuMqjgkOrGNLsVtvsbXUobRiVTOJdGw@mail.gmail.com>
Date: Mon, 23 Sep 2013 13:00:41 +0200
From: Rafael Waldo Delgado Doblas <lord.rafa@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: Rafael's weekly report #14
Hello Alexander,
2013/9/21 Solar Designer <solar@...nwall.com>
> Rafael,
>
> On Wed, Sep 18, 2013 at 10:28:16PM +0200, Rafael Waldo Delgado Doblas
> wrote:
> > As I couldn't debug the asm code I cleaned a little bit the code and I
> > added a user friendly way to compile the code.
>
> I took a look at your committed code as of a few hours ago, and tried
> building and running it (the C code only for now, as I take it the asm
> is in a non-working state anyway). Here are some observations, in
> arbitrary order:
>
> 1. EPIPHANY-README is the right kind of documentation, thank you!
> A minor correction: s/SUDO -E/sudo -E/ as otherwise it is unclear that
> you're referring to the uppercase "-E". Also, maybe wrap the lines at
> 79 chars, as some other documentation files in cgminer appear to do
> (albeit not consistently).
>
I will do it.
> 3. Somehow the performance is a lot worse than it used to be. With a
> default build, I got only around 300 h/s; we used to have ~1300 h/s.
> What is causing this slowdown (some compiler flags set for debugging?
> some code change?) and can you please correct it?
>
Mmm, I checked it and it worked fine to me. Are you compiling with the flag
EPIPHANY_DEBUG? This flag drains a lot of performance because it compute
scrypt with ARM even if you don't use the option -D. I could add a
conditional to avoid compute scrypt with ARM if option -D it's not present
but as this code it's only for debug Epiphany code, I decided don't do it.
> 4. I think epiphany-salsa208.S could nicely stay with the underscore
> between 20 and 8, or did this somehow not work?
>
Ok I will do it, I renamed this file because anyother uses underscores but
I think that this looks better with the underscore.
> 5. You're still not using any macros in the .S file. Do you have some
> non-committed version that does use macros (but is buggy, as you
> mentioned)? Is the committed asm code supposed to be in a working
> state, then (but is just slow)?
>
Yes it is. As GSoC it's about to finish I commited a working version but I
have another one with macros but still buggy.
6. Your reintroduced C code for salsa20_8() is no longer indented.
> Please correct that.
>
Wops, I will do it.
> > Today I'm going to debug the asm
>
> Any luck with that? It's been another 3 days. From the amount of time
> this is supposedly taking you, it feels like you're approaching this asm
> problem in some weird way. When I asked you what the purpose of your
> non-macro-using asm code was, you said that it was a starting point for
> further work on the asm code - if so, you should be able to convert it
> to use of macros step-by-step, with testing after every step, and then
> it'd be fairly easy for you to spot the occasional errors that you'll be
> making (not a lot of code changes to review for each error).
> Personally, I think you'd do it even quicker by starting with extensive
> use of macros instead of the fully expanded version you wrote, but since
> you already have it anyway, you may as well use it to simplify your work
> on the macros.
>
> After you're using macros to the maximum reasonable extent, sacrificing
> performance even, it should similarly not be too difficult for you to
> start moving to larger macros step-by-step, only as needed for better
> instruction scheduling. You'd similarly test after making each change,
> so that you don't have a lot of changes to review for any errors
> whenever the changed code fails test.
>
> Can you describe your approach?
>
Well I have grouped the R calls by displacement in 4 macros. In order to
compute the columns and rows with the same macro I use a function that
exchange the registers.
>
> > El 17/09/2013 02:31, "Rafael Waldo Delgado Doblas" <lord.rafa@...il.com>
> > escribi?:
> > > Problems:
> > > 1. I couldn't find a way to compile cgminer with a-gcc and
> epiphany-scypt
> > > with e-gcc using autotools and only one call to autogen.sh and make. I
> will
> > > write a bash script to do it but would be nicer if someone can help me
> with
> > > this.
>
> I'm sorry we didn't get around to helping you on this sub-task.
> I think it could be as simple as having some make rules pre-written in
> Makefile.am, but I am not sure. I am not familiar with autotools.
>
It's ok, after I checked autotools doc, I couldn't see how to do it then
maybe it's not possible.
BTW, have you fixed your host side C code not to segfault when the
> Epiphany code hasn't been compiled? Can you make it print a reasonable
> error message, please?
>
Mmm, I have added this. Doesn't it worked? I will check it ASAP.
strcpy(fullpath, cgminer_path);
strcat(fullpath, "epiphany-scrypt.srec");
if (e_load_group(fullpath, dev, 0, 0, rows, cols, E_FALSE) == E_ERR) {
applog(LOG_ERR, "Error: Could not load epiphany-scrypt.srec on Epiphany.");
applog(LOG_ERR, " Is epiphany-scrypt.srec in cgminer directory?.");
return false;
}
> > > 2. Implemented macros and instruction schedule in epiphany asm but I
> have
> > > some bugs to fix.
>
> When did you realize you had bugs to fix? Do you have a code version
> with macros, but without instruction scheduling - as I had requested?
> (I asked that you commit this one first, before instruction scheduling,
> and only then add instruction scheduling with a separate commit.)
>
> > > Priorities:
> > > 1. Debug asm. Hopefully tomorrow will be fixed.
>
> Was it?
>
Unfortunately no, I hadn't time due I had a job interview the last Friday
and I needed to prepare it. I have attached the current buggy code.
> > > 2. Implement a end user friendly script to compile cgminer.
>
> OK. Mostly done.
>
> > > 3. Move to the new task related with jumbo.
>
> Actually, I thought that this new task would be more of a "filler" for
> when you're "idle" waiting for my feedback on your current main task, so
> you would not exactly "move" to it after finishing the current task, but
> rather you'd work on both.
>
> Anyhow, what's the current status on it?
>
Hello, I have implemented the interleaving of 2 and I copy get_hash* and
binary_hash* functions from lotus5 (changing crypt_key[] array size). I
have doubts about get_hash* and binary_hash* functions why are there 7 and
what do they do?.
Best regards,
Rafa.
Content of type "text/html" skipped
Download attachment "epiphany-salsa20_8.S" of type "application/octet-stream" (3797 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.