cuDF - не использует ядра GPU - PullRequest
0 голосов
/ 21 апреля 2020

Ниже приведен фрагмент кода в python с cuDF для ускорения процесса. Но я не вижу никакой разницы в скорости по сравнению с моим 4-ядерным процессором на локальной машине. Конфигурация GPU - 4 x NVIDIA Tesla T4

def arima(train):
    h = []
    for each in train:
        model = pm.auto_arima(np.array(ast.literal_eval(each)))
        p = model.predict(1).item(0)
        h.append(p)
    return h


for t_df in pd.read_csv("testset.csv",chunksize=1000):
    t_df = cudf.DataFrame.from_pandas(t_df)
    t_df['predicted'] = arima(t_df['prev_sales'])

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 29 апреля 2020

Хотя я помогу вам решить проблему, связанную с отсутствием доступа ко всем графическим процессорам, я поделюсь с вами советами по производительности: если все ваши данные помещаются на одном графическом процессоре, вам следует использовать флешку для обработки с одним графическим процессором, используя cudf так как это намного быстрее, так как не требует никаких затрат на оркестровку. Если нет, то читайте дальше:)

Причина, по которой вы не используете 4 графических процессора, заключается в том, что вы не используете dask-cudf. cudf - это одна библиотека графического процессора. dask-cudf позволяет масштабировать его до нескольких графических процессоров и нескольких узлов или обрабатывать наборы данных с размерами, превышающими объем памяти GPU.

Вот отличное место для начала: https://docs.rapids.ai/api/cudf/stable/10min.html

Что касается вашей скорости, вы должны читать CSV напрямую в GPU через cudf, если это возможно. В вашем коде вы читаете данные дважды - один раз на хост [CPU] с pandas и один раз на cudf [GPU] с pandas. Это не нужно - и вы теряете все преимущества ускорения графического процессора при чтении. В больших наборах данных cudf даст вам довольно хорошее ускорение чтения файлов по сравнению с pandas.

import dask_cudf
df = dask_cudf.read_csv("testset.csv", npartitions=4) # or whatever multiples of the # of GPUs that you have

, а затем go оттуда. Обязательно настройте клиента. https://docs.rapids.ai/api/cudf/stable/10min.html#Dask -Performance-Tips . Эта информация также содержится в этой ссылке, которая находится на той же странице, что и выше. Нет для петли требуется :).

В остальном, я предполагаю, что вы используете cuml для ваших алгоритмов машинного обучения, таких как ARIMA. https://docs.rapids.ai/api/cuml/stable/api.html?highlight=arima#cuml .tsa.ARIMA . Вот пример записной книжки: https://github.com/rapidsai/cuml/blob/branch-0.14/notebooks/arima_demo.ipynb

...