异常:设备内核映像无效

Exception: device kernel image is invalid

我是 omnisci 开源社区的新手。我已按照说明 (https://www.omnisci.com/docs/latest/4_ubuntu-apt-gpu-os-recipe.html) 将 omnisci(开源版本)安装到我的 ubuntu 18.04LTS

~$ sudo systemctl start omnisci_server
~$ $OMNISCI_PATH/bin/omnisql
Password:
User mapd connected to database maps
omnisql> 

我也安装了 CUDA 驱动 10.0

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 415.27       Driver Version: 415.27       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   
0  TITAN V             Off  | 00000000:17:00.0 Off |                  N/A |
| 33%   48C    P8    30W / 250W |    421MiB / 12036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   
1  GeForce GTX 108...  Off  | 00000000:65:00.0 Off |                  N/A |
| 30%   53C    P8    20W / 250W |    172MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   
2  GeForce GTX 108...  Off  | 00000000:66:00.0  On |                  N/A |
| 63%   81C    P0    70W / 250W |    829MiB / 11175MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

但是,当我运行对样本数据集进行简单查询时,报错:

omnisql> \t   
omnisci_states   
omnisci_counties   
omnisci_countries    
nyc_trees_2015_683k    
omnisql> select * from omnisci_counties;
Exception: device kernel image is invalid

我和朋友就这个问题进行了讨论。我们认为这是因为我的机器上有 2 种不同类型的 GPU。我需要在启动 omnisql 服务器时指定一种类型的 GPU,因为 omnisci 的查询引擎会混淆为板载的两种不同类型的卡初始化参数。

有没有人有什么想法或建议?

我自己才发现的。 omn​​isci 服务器的 GPU 设备必须一致。您可以使用多张卡片,但它们必须是同一类型。 例如,在我的例子中,在 omnisci.conf

中设置参数
port = 6274
http-port = 6278
calcite-port = 6279
data = "/var/lib/omnisci/data"
null-div-by-zero = true
num-gpus = 2
start-gpu = 1

使用$sudo systemctl start omnisci_server启动服务器时,会自动加载文件omnisci.conf

使用多个 GPU 时,它们需要是同一型号。根据 OmniSci 常见问题解答:

https://www.omnisci.com/docs/latest/7_faq.html#multi-gpus

Does OmniSci support a single server with different GPUs? For example, can I install OmniSci on one server with two NVIDIA GTX 760 GPUs and two NVIDIA GTX TITAN GPUs?

OmniSci does not support mixing different GPU models. Initially, you might not notice many issues with that configuration because the GPUs are the same generation. However, in this case you should consider removing the GTX 760 GPUs, or configure OmniSci to not use them.

To configure OmniSci to use specific GPUs:

Run the nvidia-smi command to see the GPU IDs of the GTX 760s. Most likely, the GPUs are grouped together by type. Edit the omnisci_server config file as follows: If the GTX 760 GPUs are 0,1, configure omnisci_server with the option start-gpu=2 to use the remaining two TITAN GPUs. If the GTX 760s are 2,3, add the option num-gpus=2 to the config file. The location of the config file depends on how you installed OmniSci.