Проблема:
Разработать проект, быстро обрабатывающий большое колво массивов (скажем 256) большого размера (скажем 2048х2048). Для ускорения решено было использовать ресурсы видеокарты.
ПО:
Microsoft Visual Studio .NET
Microsoft SDK DirectX
Язык:
C#
Есть у кого-нибуть опыт работы с "сабжем"? А то я даже не то что не знаю с чего начать, я даже не знаю как передать массив на обработку видеокарте... Как его там представить и т. д...
Здравствуйте, Muxa, Вы писали:
M>Проблема: M>Разработать проект, быстро обрабатывающий большое колво массивов (скажем 256) большого размера (скажем 2048х2048). Для ускорения решено было использовать ресурсы видеокарты. M>ПО: M>Microsoft Visual Studio .NET M>Microsoft SDK DirectX M>Язык: M>C#
Hello, "Muxa" > Проблема: > Разработать проект, быстро обрабатывающий большое колво массивов (скажем > 256) большого размера (скажем 2048х2048). Для ускорения решено было > использовать ресурсы видеокарты. > ПО: > Microsoft Visual Studio .NET > Microsoft SDK DirectX > Язык: > C# > > Есть у кого-нибуть опыт работы с "сабжем"? А то я даже не то что не знаю с > чего начать, я даже не знаю как передать массив на обработку видеокарте... > Как его там представить и т. д...
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, Muxa, Вы писали:
A>5 октября Managed DirectX благополучно сдох.
Можно пояснить для тех, кто не в теме? Сдох = выпустили XNA и он безнадежно устарел, сдох = больше не поддерживается, сдох = все программы на нем написанные внезапно перестали работать?
Здравствуйте, Красин, Вы писали:
К>Можно пояснить для тех, кто не в теме? Сдох = выпустили XNA и он безнадежно устарел, сдох = больше не поддерживается, сдох = все программы на нем написанные внезапно перестали работать?
сдох = все программы на нем написанные внезапно перестали работать
Сырая. Примеров мало, примеры без напильника на 64-битной машине не запустились.
На не слишком хороших карточках выигрыш дает небольшой. На моей видюхе GeForce 7300 GS расчет суммы стал рентабельным лишь при максимальном размере массива 4096x4096. При одноразовом вычислении выигрыш в полтора раза, при многократном вычислении — в 5 раз. Т.е. смысл применять либу есть, но на ограниченном круге задач. Как они говорят — там где вычислений много, а данные гонять туда-сюда особо не надо.
Очень простой интерфейс библиотеки. В принципе, "сел и поехал".
Идет работа со вторыми шейдерами. Минус: тормоза, мало возможностей. Плюсы: запускается почти на любой видеокарте.
Нельзя запустить программу прямо на видеокарточке. У Microsoft Research в России был проект компилятора IL->шейдеры, который позволял сильно больше (и по возможностям, и по скорости), чем этот Accelerator, но, к сожалению, человек не стал доводить это до отторгаемого состояния.
Запостил им feedback-а, будем ждать новых версий и новых DX10/SM4 карточек.
Пример программы, использующей GPU:
PA.InitGPU();
float [,] a = new float[4096, 4096];
for (int i = 0; i < a.GetLength(0); i++)
for (int j = 0; j < a.GetLength(1); j++)
a[i,j] = i+j;
float sum;
using (DFPA fpa = new DFPA(a))
{
FPA result = PA.Sum(fpa);
float[] b;
PA.ToArray(result, out b);
sum = b[0];
}
PA.UnInit();
Console.WriteLine("sum = {0}", sum);
Managed DirectX 2.0 beta expires on October 5th 2006. I guess
VD>>Ключевое слово здесь "beta". А все релизы просто обязаны работать.
А>А разве майкрософтовцы Managed DirectX 2.0 зарелизят когда-нибудь?
А какая разница? Главное, что слова "сдох = все программы на нем написанные внезапно перестали работать" не соотвествуют действительности и старый код со старыми версиями будет прекрасно работать.
А новый код, если он хочет воспользоваться новыми возможностями, должен использовать новый продукт.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, adontz, Вы писали:
VD>>Ключевое слово здесь "beta". А все релизы просто обязаны работать.
A>А релизов, Влад, нету и уже никогда не будет.
И что, что не будет? Ты то сказал что?
сдох = все программы на нем написанные внезапно перестали работать
Эти слова значат, что код написанный с использованием MDX старых версий прекратит работать. Это явная лож.
Вообще не понимаю зачем развивать истерию? Ну, создали они новый продукт включающий старый. Ну, не выйдет новых версий старгого продукта. Ну, и что?
Все приложения будут прекрасно работать. А те кто умудрился перескочить на бэту знали на что шли.
В общем, получи еще один заслуженный минус. В этот раз за извращение чужих слов и включение дурака.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Эти слова значат, что код написанный с использованием MDX старых версий прекратит работать. Это явная лож.
Влад, ты совершенно не в теме. Программы написанные на старых версия Managed DirectX перестали работать. Если бы вместотого чтобы высказывать свои предположения под видом истины, ты потрудился бы разобраться в вопросе, то не нёс бы бред. Для этого достаточно было пройти по ссылке которую я дал http://www.gamedev.ru/flame/forum/?id=54778
и прочитать что там написано
VD>Вообще не понимаю зачем развивать истерию?
До того как ты пришёл всё было вполне в рамках. Истерика у тебя.
VD>Ну, создали они новый продукт включающий старый.
Убеждаемся что Влад сперва говорит, а потом изучает тему разговора. XNA не включает DirectX.
VD>Ну, не выйдет новых версий старгого продукта. Ну, и что?
А то что готовые бинарники начали кидать Microsoft.DirectX.TimebombException.
VD>Все приложения будут прекрасно работать.
Да, щас. Ещё одни мечты, которые ты выдаёшь за действительность?
VD>А те кто умудрился перескочить на бэту знали на что шли.
Бета эта прекрасно работала и все ждали релиза. Релиз этот обещали. А сейчас нет релиза, нельзя продолжать пользоватся бетой и есть куча кода с которым не ясно что делать.
VD>В общем, получи еще один заслуженный минус. В этот раз за извращение чужих слов и включение дурака.
Ром, поддерживать и развивать твою очердную осеннюю истерику я не имею никакого желания.
Предлагаю расслабиться и радоваться жизнью.
А тем кто переходит на бэты должны извлечь урок из этого случая и четко понимать, что создавая коммерческий продукт на бэтах они нехило рискуют. Этот случай конечно крайний, но и такие случаются.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.