Как использовать DbContext.Database.SqlQuery (sql, params) с хранимой процедурой? EF Code First CTP5

Я не эксперт CUDA,---я разрабатывал с Потоком AMD SDK, какой AFAIK примерно сопоставим.

можно отключить сторожевой таймер Windows, но это высоко не рекомендовано по причинам, которые должны быть очевидными. Для отключения его Вы нуждаетесь к regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Watchdog\Display\DisableBugCheck, создаете REG_DWORD и устанавливаете его на 1. Вы, возможно, также должны сделать что-то в панели управления Nvidia. Ищите некоторую ссылку на "Восстановление VPU" в документах CUDA.

Идеально, необходимо смочь расстаться операции ядра в несколько передает по данным для разбивания его в операции, которые работают в ограничении по времени.

, С другой стороны, можно разделить проблемную область так, чтобы она вычислила меньше выходных пикселей на команду. Т.е. вместо того, чтобы вычислить 1 000 000 выходных пикселей одним махом, выпуск 10 управляет к gpu для вычислений 100,000 каждый.

основная единица, которая должна соответствовать в интервале времени, не является Вашим целым приложением, но выполнением единственного буфера команд. В Потоке AMD SDK длинная последовательность операций может быть разбита в несколько интервалов времени путем явного сбрасывания очереди команды с CtxFlush () вызов. Возможно, CUDA имеет что-то подобное?

Вы должны не , должны считать все Ваши данные назад и вперед через шину PCIX на каждом интервале времени; можно оставить структуры, и т.д. в gpu локальной памяти; у Вас просто есть некоторые буферы команд, завершенные иногда, чтобы доказать ОС, что Вы не застреваете в бесконечном цикле.

Наконец, GPU быстры , поэтому если бы Ваше приложение не может сделать полезную работу в тех 5 или 10 секунд, я взял бы это в качестве знака, что что-то неправильно.

[РЕДАКТИРУЮТ март 2010 для обновления: ] (устаревший снова, посмотрите обновления ниже для новой информации) , ключ реестра выше является устаревшим. Я думаю, что это было ключом для 64-разрядного Windows XP. Существуют новые ключи реестра для Vista и Windows 7. Можно найти их здесь: http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx или здесь: http://msdn.microsoft.com/en-us/library/ee817001.aspx

[РЕДАКТИРУЕТ апрель 2015 для обновления: ] Это становится действительно устаревшим. Самому легкому способу отключить TDR для программирования Cuda, принимая Вас установили инструменты NVIDIA Nsight, должен открыть Nsight Monitor, нажать на "Nsight Monitor options", и под "Общим" набором "WDDM TDR включил" ко лжи. Это изменит настройки реестра для Вас. Близко и перезагрузка. Любое изменение в установке реестра TDR не вступит в силу, пока Вы не перезагрузите.

[РЕДАКТИРУЮТ август 2018 для обновления:] , Хотя инструменты NVIDIA позволяют отключать TDR теперь, тот же вопрос важен для разработчиков AMD/OpenCL. Для тех: текущая ссылка, которая документирует настройки TDR, в https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys

240
задан marc_s 29 January 2014 в 02:50
поделиться

1 ответ

Я действительно взрывал с EF 6.x как это:

using(var db = new ProFormDbContext())
            {
                var Action = 1; 
                var xNTID = "A239333";

                var userPlan = db.Database.SqlQuery<UserPlan>(
                "AD.usp_UserPlanInfo @Action, @NTID", //, @HPID",
                new SqlParameter("Action", Action),
                new SqlParameter("NTID", xNTID)).ToList();


            }

не сгибают на sqlparameter, некоторые люди получают записанное выполнение этого к их переменной

var Action = new SqlParameter("@Action", 1);  // Don't do this, as it is set below already.
0
ответ дан 23 November 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: