Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 26 Jul 2013 01:45:12 +0100
From: Rafael Waldo Delgado Doblas <>
Subject: Re: Rafael's weekly report #6


2013/7/26 Solar Designer <>
> Please post these separately, not as "replies" to the thread that
> started with your weekly report.  Please use message Subject of
> "Parallella: Litecoin mining", so that it'd be easy for Yaniv to spot
> these messages and comment where relevant.

I will do that with the next.

Does this mean that you have a cut-down cgminer tree now, which you'll
> use as a base for your development on Parallella?  Did you have to
> produce such a tree?  Couldn't you simply build the existing cgminer
> (the last CPU-enabled version) on Parallella (on ARM for now)?  Did you
> make those changes to speedup test builds, expecting that you'd need to
> do many of those?

I did that in order to get a better knowledge about how cgminer works. Also
I did it to find why scrypt support can't be compiled without OpenGL even
if there a CPU version of the Algorithm. Finally I did a couple of
modifications to allow it. Since CGMiner uses automake is not that much
useful cut-down CGMiner only to get a speed up compilation but was easier
for me focus in what is relevant for my task. I will merge again this
cut-down version with the full version when I finish the implementation.

Thanks to this now I know that on the file driver-cpu.c there is this

struct device_api cpu_api = {
    .dname = "cpu",
    .name = "CPU",
    .api_detect = cpu_detect,
    .reinit_device = reinit_cpu_device,
    .thread_prepare = cpu_thread_prepare,
    .can_limit_work = cpu_can_limit_work,
    .thread_init = cpu_thread_init,
    .scanhash = cpu_scanhash,

This struct is the door between the driver and the rest of cgminer, and is
present in each driver.

The functions:
    .api_detect = cpu_detect, // Detect how many cpus there in the system,
16 in Epiphany
    .reinit_device = reinit_cpu_device,
    .thread_prepare = cpu_thread_prepare, // Will load a scrypt on a
Epiphany core.
    .can_limit_work = cpu_can_limit_work, // I think that this function can
be safely removed.
    .thread_init = cpu_thread_init, // Will start Epiphany core.

Will work on Parallella host, they are the functions that will prepare
Parallella Ephipany to work.

And this function:
    .scanhash = cpu_scanhash,

Will be executed in Parallella Ephipany and return a hash to Parallella

>  Priorities:
> > 1. Get a detailed decryption of Scrypt.c. (I have sent a mail to
> cKolivas).
> > 2. Move Scrypt.c to Epiphany.
> > 3. Get one instance of Scrypt runing on one Ephipany core.
> > 3. Expand to the rest of cores.
> OK, but what are you referring to by Scrypt.c?  There's no file by that
> name in cgminer tree; the closest match is scrypt.c (with lowercase "s").

yes I mean scrypt.c

> What questions did you have for Con Kolivas?

I ask about the functions scrypt_outputhash and scanhash_scrypt I need info
about the description, parameters and return value. The rest of the
functions looks like the scrypt implementation.



Content of type "text/html" skipped

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.