简体   繁体   中英

Locale for CUDA kernel printf

I am trying to print out some information within a CUDA kernel using printf s to write code into the console that I can paste into another program to draw the geometric setup that I am working with. I have, however, trouble getting the locale to work. I am working under Linux Mint 18.1 with CUDA 9.0. When I printf from the C++ part of my program the numbers get printed as follows:

printf("my value: %.3f\n", my_value); // prints 1.234 for example

but using it from a CUDA kernel I get

printf("my value: %.3f\n", my_value); // prints 1,234

This is the format used in Germany, but obviously computers don't understand the latter format. I need it to print with the . instead of the comma. I have tried manually setting my locale by putting the line

export LC_NUMERIC="en_US.UTF-8"

into my .bashrc . My locale command prints:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=de_BE.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=de_BE.UTF-8
LC_NAME=de_BE.UTF-8
LC_ADDRESS=de_BE.UTF-8
LC_TELEPHONE=de_BE.UTF-8
LC_MEASUREMENT=de_BE.UTF-8
LC_IDENTIFICATION=de_BE.UTF-8
LC_ALL=

But that does not change the output from the CUDA kernel. I am not sure which other values to overwrite, without messing up default currency and so on. I also cannot find any information on setting locales within CUDA, so I assume it fetches that information from somewhere else. Does anyone know where that is and how to make it do what I want?

It seems like Linux is very adamant on keeping the current language configuration as it is. I managed to get the printout to be like I want it by uninstalling all other language packages that were installed, putting

export LANG=en_US.utf8

in my .bashrc and then rebooting the machine. Not sure if all of those steps were necessary, but it fixed my problem.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM