Привіт Гість ( Вхід | Реєстрація )

 
Closed TopicStart new topic
> Новичкам: как подключить свою видеокарту ATI к проекту?, Инструкция в картинках
nikelong
Feb 8 2010, 00:15
Пост #1


Тера ранчер
**********

Група: Trusted Members
Повідомлень: 12 443
З нами з: 19-March 05
Користувач №: 92
Стать: Чол





Подключаем видеокарту ATI к проекту Milkyway@home

Захотел тут на досуге написать короткий мануал, как подключить видеокарту ATI к расчетам в проекте Milkyway@home
Простой, с картинками, чтобы новичку было нетрудно во всем этом разобраться.

Вопрос: какие видеокарты могут считать задания этого проекта?
Ответ: все, которые умеют совершать вычисления с двойной точностью. На данный момент это:
3850 3870 3850X2 3870X2 4730 4770 4830 4850 4870 4890 4850X2 4870X2 Firestream 9100\9200 series
Не работает на: 5770

Итак, начнем издалека, с нуля.
  1. У вас дрова на видяху какой версии? Если не 8.12 или 9.11+ то ставим новые (скачать можно с game.amd.com например).

  2. Загрузим BOINC-менеджер (а вдруг его у Вас еще нет?) http://boinc.berkeley.edu/dl/ (долго листаем вниз, до какой-нибудь последней версии, например boinc_6.10.32_windows_intelx86.exe). Да даже если у Вас он и есть, но версии ниже 6.10.хх - то советую обновится (!)

  3. Настроим его (как это сделать хорошо и с картинками я описал тут). Главное - боинк должен быть настроен без протект моде (!)

  4. Подключимся к проекту: "сервис" ---> "подключится к проекту или к менеджеру проектов". Вводим адрес сервера http://milkyway.cs.rpi.edu/milkyway/, свои e-mail и пароль - вуаля, Вы уже в проекте! Ждите когда клиент "подхватит" ваш ник в проекте - и закрывайте его.

  5. Идем теперь на сайт проекта, заходим в свою панель управления (ссылка Your account - view stats, modify preferences внизу слева. Шоб попасть туда вводим те самые e-mail и пароль из предыдущего пункта).

  6. Выбираем Preferences for this projec Настройки MilkyWay@home и редактируем их:



    Дада, всего то нужно, шоб стояла одна галка напротив Use ATI GPU if present

  7. Потом заглядываем в профиль нашей команды ---> ТУТ и присоединяемся к ней. Вы же будете считать за команду Украины, так ведь?

  8. Теперь идем на сайт www.arkayn.us и загружаем оптимизированный клиент. Да, там их много, поэтому приведу в пример себя: имея Intel Core 2 Quad и ATI 4850 я выбрал SSE2 ATI:



  9. В загруженном архиве лежит три файла: app_info.xml, astronomy_0.20b_ATI_SSE2_ati.exe, brook32.dll - сохраним их, они на еще понадобятся.

  10. Останавливаем БОИНК-менеджер (если запущен). Идем в C:\ProgramData\BOINC\projects\milkyway.cs.rpi.edu_milkyway (у меня на seven именно здесь расположен каталог с данными о БОИНК-проектах) и удаляем все что там лежит (если не пусто). И копируем сюда наши три файла: app_info.xml, astronomy_0.20b_ATI_SSE2_ati.exe, brook32.dll

  11. Открываем app_info.xml и видем там примерно следующее:
    (Show/Hide)

    <app_info>
    <app>
    <name>milkyway</name>
    </app>
    <file_info>
    <name>astronomy_0.20b_ATI_SSE2_ati.exe</name>
    <executable/>
    </file_info>
    <file_info>
    <name>brook32.dll</name>
    <executable/>
    </file_info>

    <app_version>
    <app_name>milkyway</app_name>
    <version_num>20</version_num>
    <flops>1.0e11</flops>
    <avg_ncpus>0.05</avg_ncpus>
    <max_ncpus>1</max_ncpus>
    <coproc>
    <type>ATI</type>
    <count>1</count>
    </coproc>
    <cmdline></cmdline>
    <file_ref>
    <file_name>astronomy_0.20b_ATI_SSE2_ati.exe</file_name>
    <main_program/>
    </file_ref>
    <file_ref>
    <file_name>brook32.dll</file_name>
    </file_ref>
    </app_version>

    </app_info>

    Ищем строки....
    <coproc>
    <type>ATI</type>
    <count>1</count>
    </coproc>

    и меняем <count>1</count> на <count>0.33</count>
    Теперь видеокарта считает три задания одновременно и загружена на 97-99%

  12. Запускаем БОИНК-менеджер. Все, теперь у Вас все работает. Можно посмотреть статистику, или почитать чтото полезное в нашем разделе форума.


    Степень загрузки видеокарты можно посмотреть утилитой GPU-Z:



    (скриншот не мой, я просто разместил объяву но дает представление о том где искать строку GPU Load sarcastic.gif )
Больше информации по теме можно прочесть в ЭТОЙ ветке нашего форума.

А под спойлером - официальный текст ридми из архива с клиентом:
(Show/Hide)

==========================================================================================

Milkyway@home GPU application for double precision capable ATI cards
(HD3800, HD4700, HD4800 and HD5800 series as well as Firestream 9100 and 9200 series)

==========================================================================================

Code: Gipsel
Test: HiRN, Emploi, Indiana_74 and other people of Team Planet3DNow!, www.planet3dnow.de

==========================================================================================



System requirements:

- x86 CPU running Win32 or Win64 (Windows7 may require a workaround, see below)
- ATI Radeon HD3800, HD4700/HD4800 and HD5800 series or
ATI Firestream 9100/9200 series card
- correctly installed Catalyst 8.12 or up (see below which application version you need)
- BOINC client 6.10.x or higher for ATI support, but works also with older versions,
see below the changelog how to change the supplied app_info.xml for older clients


Usage:

- Read this file carefully!
- If problems arise, read it again wink.gif
- installed like any optimized app using the anonymous platform mechanism
- stop BOINC completely (stop the service if you are running a protected mode installation)
- copy the content of the appropriate folder of the zip file (3 files) to your Milkyway
folder (location may vary)
- restart BOINC
- enjoy the incredible crunching speed



One can configure the app through some parameters in the supplied app_info.xml.
This is done by editing the line

<cmdline></cmdline>

There are several options one can put in there, the order does not matter. If the same argument
is given twice, the last one counts. Remember that for editing the app_info.xml one should take
the same precautions as for the installation of the application, i.e. one should stop BOINC
completely and restart it afterwards.

Options:

kernel frequency: f (default 30)
The application determines the size of the work packages sent to the GPU in a dynamic manner. It
tries to get the number of executed packages per second above the value specified here by
splitting them to smaller ones. The OS is completely blocked from accessing the graphics card for
the duration of one package leading to a somewhat sluggish behaviour of the user interface.
Limiting the size and therefore reducing the execution time per package creates more opportunities
for the OS to slip in between two work packages and to react to user input. The default value of
30 Hz is tuned for usability of the system. Reducing it could increase the throughput of the app
slightly.

Example:
<cmdline>f10</cmdline>
The app will try to run 10 work packages per second (limits the execution time to 100ms or shorter).


Wait factor: w (default 1.0)
The app tries to release the CPU during the the GPU computations. It does so by predicting
the runtime for the GPU calls and send the CPU thread to sleep for that time. One can manually
correct the prediction of the application with this factor. When raising it, the CPU thread
sleeps longer, decreasing the value will lead to some faster polling. Setting this value to 0.0
turns off the release of the CPU. Default is of course a value of 1.0.
If you see a low GPU load, you can try to decrease it (if you have a load of 80%, set it to 0.8).
If you see a high CPU load, a slight increase of this value may help. Increase it too much and it
will affect the crunching speed. You could use this for throttling of the GPU in case the high
GPU load leads to a very sluggish behaviour of the user interface or even VPU recover events.
Setting w1.1 could improve the situation (see also the f, b, and p options).

Example:
<cmdline>w1.3</cmdline>
This would increase the sleep time by 30% in relation to the prediction.


Priority: p (default 2)
All BOINC applications normally run with the lowest possible priority to not disturb other
applications. This can lead to a low GPU load, as it may be not possible to fire up the next tasks
if all cores of the CPU are under load. Raising the priority may help here. BOINC recommends a
slightly increased priority for GPU applications. This setting is the default. Possible values:
p0: idle priority, used by CPU BOINC applications
p1: normal priority in idle priority class (below normal), this is recommended for BOINC GPU
applications, but apears to be not enough to enable millisecond polling of the GPU with Vista
p2: normal priority in normal priority class, the default
p3: normal priority in high priority class, use with care!
The priority will affect how much time it takes for the the app to get back control if it releases
its time slice (see also option b).

Example:
<cmdline>p3</cmdline>
This raises the priority to high (not recommended).


Polling behavior for the GPU within the Brook runtime: b (default 0)
See the option w for starters. If that time has elapsed, the GPU polling starts. This can be done
by continously checking if the task has finished (b-1), enabling the fastest runtimes, but potentially
creating a high CPU load (a bit dependent on driver version). Second possibility is to release the time
slice allotted by the OS, so other apps can run (b0). This is the default value. The catch is that there
is some interaction with the priority. The time slice is only released to other tasks of the same
priority. So raising the priority effectively disables the release and the behavior is virtually
identical to setting this parameter to -1. If a raised priority and a low CPU time is wanted, one may
set it at to 1. This suspends the task for at least 1 millisecond, enabling also tasks of lower priority
to use the CPU in the meantime. This can also help to get a smoother system behaviour. One can use b2 or
b3 if one wants reduce the polling frequency even more.
Possible values:
b-1: busy waiting
b0: release time slice to other tasks of same priority (default)
b1, b2 or b3: release time slice for at least 1, 2, or 3 milliseconds respectively
See also options p and w.

Example:
<cmdline>b-1</cmdline>
Enable busy waiting (no release of the time slice during polling).


The options can be combined in arbitrary order. Therefore the following argument list is also valid:
<cmdline>f40 w1.1 p1 b1</cmdline>
(frequency 40Hz, wait factor 1.1, priority set to below normal, and CPU friendly polling of the GPU)


Deprecated options (use with extreme care, will likely be removed in future versions), this should
be configured now directly with the new ATI aware clients

Number of concurrent WUs: n (default 3)
It is possible to define the maximum number of concurrently running WUs per GPU. Default value is
three. If the BOINC client schedules more WUs to run, they are put to a wait state and not crunched
until a GPU finishes another WU. Running more than a single WU can raise the efficiency of the GPU
as the remaining CPU calculations for one WU can be hidden during the wait for the GPU of another
WU. More than 2 WUs don't help anymore and running too many WUs concurrently first slow down the
calculation and finally crash if there is not enough memory. As a rule of thumb 256MB on a graphics
card are sufficient for 3 WUs. But as mentioned, more than 2 won't help either way. If the high GPU
load leads to a very sluggish behaviour of the user interface or even VPU recover events, limiting
the app to one WU (n1) could improve the situation (look also into the w and f options).
Do not use it with an ATI aware BOINC client! It should be ignored in that case. If you run more
than one GPU project (Collatz and Milkyway), this will be a shared setting and should be the same
for both in all cases!

Example:
<cmdline>n2</cmdline>
The app will run a maximum of two WUs per GPU.


Exclusion of GPUs: x (default none)
If a certain GPU should not be used by the app, one can exclude it. The GPU number has to be in
the range 0..31. The first GPU in the system has the number 0. This option can be used multiple
times. Per default, all double precision capable ATI GPUs are used. You don't have to exclude
cards supporting only single precision, it is done automatically. Do not use it with an ATI aware
BOINC client! It should be ignored in that case. But there may be some unwanted side effects.

Example:
<cmdline>x1 x2</cmdline>
The app will not use the second and the third GPU in the system.


Known issues:

- not running with a protected mode (service) installation of BOINC under Vista/Windows7
- not running when machine is accessed via a remote desktop connection (use VNC
*without mirror driver* instead)
- graphics driver stops to respond (leeding to 2s freezes and/or VPU recover events) on some
OS/driver combinations if certain GPU monitoring tools are running, these include GPU-Z and the
Catalyst Control Center
- appears to run only with Catalyst 8.12 driver on some systems, WindowsXP versions (32 and 64bit)
of Catalyst 9.3 and up are known to be problematic, but are running under Vista though
- Some Vista/Win7 drivers (around Cat 9.5) have a bug in the CAL compiler giving the error message
"Failed to create Program" in the task details, updating to Cat9.9 fixes this
- somehow sluggish reactions of the Windows user interface



=========================================================================================

Changelog:

=========================================================================================


0.20b: 6th Oct 2009
- created versions linked against the amdcal* as well as the atical* libraries,
DON'T MIX UP THE DIFFERENT BROOK32/64 DLL FILES!
- improved compatibility with the 6.10.x BOINC clients, some command line options should
not be used with the new clients!
- more command line options to control the priority and the GPU polling
- updated GPU detection to include the new HD5800/5700 lines

0.20: 23th Sep 2009
- changed the included brook dlls to static linking to the MFC, removes the dependency
on the MSVC runtime, application itself remains unchanged
- silent update

0.20: 13th Sep 2009
- slight tuning of the likelihood calculation to exactly match the results of my
0.20 CPU variant

0.20.alpha: 4th Sep 2009
- rework of the GPU integration code:
x fewer instructions needed which get better packed to the instruction slots
x background integral calculation needs ~35% less flops, and 45% less cycles
x stream integrals need 10% less flops, but 20% less cycles
x accumulates more in graphics RAM, fewer reductions but more RAM needed
x fewer transfers to the graphics card RAM, reduces overhead and may help stability
- tweaked precision of the likelihood calculation (idea from the SP version)
- as some complained about 0.19g being slow, more emphasis on speed, that means
GUI responsivity may be worse, see the command line options for changing that
- uses boinc_critical_sections so the app isn't interrupted while it owns a GPU
- some modification of the BOINC API lib so the app still obeys resume/abort commands
while using critical sections (noone has thought an app could spend 99% within wink.gif
- declared the app as GPU app for the new 6.10.x clients in the included app_info.xml,
one has likely to remove that <coproc></coproc> statement if one uses older versions
- limited distribution for testing

0.19g: 6th Aug 2009
- increased priority for application

0.19f: 5th Jun 2009
- fixed support for WUs with three streams

0.19f.b: 4th Jun 2009
- does not block other WUs from running when one WU (gracefully) crashes

0.19f.a: 8th Apr 2009
- output of GPU time instead of CPU time as "official" time for the WU
- not public

0.19e: 12th Mar 2009
- new scheduling system with dynamic granularity of GPU tasks for a better responding system
- new command line option (f) to tune the granularity of the GPU tasks
- extended diagnostic output to stderr.txt like GPU time (visible under task details)

0.19d: 26th Feb 2009
- multi GPU support (still experimental, can be turned off by exclusion of all but one GPUs in
app_info.xml)
- release of the CPU during GPU calculations, CPU load down to ~10% of one core or less

0.19c: 25th Feb 2009
- multi GPU and CPU release test, limited publication
- added support for command line options (GPU choice, CPU release, max number of WUs in flight)

0.19b: 23th Feb 2009
- added GPU detection

0.19: 18th Feb 2009
- added CPU detection (name and clock speed) and output of CPU and wallclock time for the
crunched WU
- added support for Win32 systems, before only Win64 was supported
- saved ~1% of instructions and some registers in GPU code (~1% performance improvement expected)

0.17: 5th Feb 2009
- added support for multiple stream WUs

0.16.V3: 28th Jan 2009
- second public test release, correctly working WU scheduling

0.16.V2: 27th Jan 2009
- first public test release, improved WU scheduling
- still crashing quite often when scheduled to run more than one instance

0.16: 26th Jan 2009
- first test release to run in BOINC Client, not public

0.11: 18th Jan 2009
- initial test release generating first valid results running offline on GPU, not public

0.07: 7th Jan 2009
- initial test release running correct with CPU backend of Brook, not public


=========================================================================================

=========================================================================================

Configuration of the number of concurrent WUs with new BOINC clients (6.10.3 and up):

The included app_info.xml declares the app as GPU app for the new 6.10.x clients. This is done
with a <coproc></coproc> statement. This statement also determines how much of a GPU the
application is upposed to use. If it uses less than a full GPU the client will start several WUs
for each detected GPU. Search for the following lines in the app_info.xml:
<coproc>
<type>ATI</type>
<count>1</count>
</coproc>
Changing the count value to 0.5 will run two WUs per GPU, a value of 0.33 three WUs.

=========================================================================================

Configuration for older BOINC clients (before 6.10.x):

The included app_info.xml declares the app as GPU app for the new 6.10.x clients. This is done
with a <coproc></coproc> statement, which may confuse older versions as they don't recognize the
type of required GPU. Theses clients may refuse to run the app in such a case. To get it running,
just remove the lines
<coproc>
...
</coproc>
and everything between those tags. If it is more than once in the .xml file, you have to remove
all instances. After that you should adjust the value <avg_ncpus>0.05</avg_ncpus> (just above the
coproc statement) to something higher (depends on your needs, but I would recommend 0.5 or even 1).

=========================================================================================

Note on Windows 7:

Some early Catalyst drivers do not install the CAL libraries on Windows 7. One has to extract them
from the driver package (usually using the expand command) and put them in the Windows\system32
folder. The needed files are (the suffix "64" applies only to 64Bit systems):

amdcalrt.dll or amdcalrt64.dll
amdcalcl.dll or amdcalcl64.dll
amdcaldd.dll or amdcaldd64.dll

=========================================================================================

Note on Catalyst driver versions:

ATI/AMD renamed the CAL libraries with their later driver releases. You have to run the right
version which fits to the names of the CAL libraries of the driver release you have installed.
Catalyst 8.12 and 9.1 use the amd prefixed names, later ones use ati prefixed names (CAL 1.4).

If you choose the right version, there shouldn't be any need to meddle with the dll files. For
Catalyst 8.12 and 9.1 use the application variants with "_amd.exe" at the end, for newer drivers
simply use the files ending with "_ati".
But if you want to run the version designed for amd prefixed dll names to run with later drivers,
duplicate the following files in your Windows\system32 folder (the suffix "64" applies only to
64Bit systems):

aticalrt.dll or aticalrt64.dll
aticalcl.dll or aticalcl64.dll
aticaldd.dll or aticaldd64.dll

Now Rename the copies to

amdcalrt.dll or amdcalrt64.dll
amdcalcl.dll or amdcalcl64.dll
amdcaldd.dll or amdcaldd64.dll

The simplest way to do that is using the console (command prompt). Start -> execute, type "cmd",
press enter wink.gif. Type in the following two commands:

cd %systemroot%\system32
copy atical*.dll amdcal*.dll

That's all. You should have now six dll files in your Windows\system32 folder, three named
amdcal*.dll and three with the name atical*.dll. A simple rename of atical*.dll to amdcal*.dll
is not sufficient!



=========================================================================================

Copyright notice

=========================================================================================

The Milkyway@home application was originally developed at the Rensselaer Polytechnic Institute's
departments of Computer Science and Physics, Applied Physics and Astronomy. Please note that
later versions of the Milkyway@home application code are distributed under the terms of the GPL.
See http://milkyway.cs.rpi.edu/milkyway/forum_thread.php?id=576 for details.

Just some framework of the original code is left. I substituted all computationally demanding
parts with my own versions or with calls to functions running on the GPU. I shared most of my
modifications with the project staff (I would not have needed, as I modified a version that were
not under the restrictions of the GPL) and plan to do so with the GPU part when it is ready. So
don't demand the release of the full source code, I will not do it for the time being.


The zip file contains a modified version (allowing the use of multiple GPUs and release of the CPU
during GPU computations) of the Brook+ runtime library (brook.dll) distributed by AMD as part of
the Stream SDK 1.3. Therefore I'm supposed to include the following notice:

Copyright © 2008, Advanced Micro Devices, Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of Advanced Micro Devices, Inc nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


drinks2.gif
 


UPD10.09.2010

Уже проект повернулся к кранчеру лицом: достаточно иметь АТИ видеокарту и в своем профиле на сайте указать"принимать задания ГПУ"- и всё, гпу задания к вам сами пойдут.




Це повідомлення відредагував nikelong: Sep 10 2010, 12:50
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Користувачів переглядають дану тему (2 Гостей і 0 Прихованих Користувачів)
0 Користувачів:

 



- Lo-Fi Версія Поточний час: 19th March 2024 - 06:40

Invision Power Board v1.3.3 © 1996 IPS, Inc.